SlideShare uma empresa Scribd logo
1 de 18
© 2016 Embarcadero Technologies, Inc.
All rights reserved. Proprietary and confidential.
第5回
‟イベントに合わせて動かしてみよう„
シーズン1:わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!
2© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
Delphi / C++Builder Starter チュートリアルシリーズ
シーズン1 :2016年10月24日 ~ 12月26日 全10回
時間 :毎週 月曜 17時00分~17時30分
ねらい :一から学んでゲーム制作まで
シーズン1
第1回 2016年10月24日 無料で始めよう アプリ作成
第2回 10月31日 ユーザーインターフェイス パーツ基礎
第3回 11月7日 ユーザーインターフェイス パーツの配置
第4回 11月14日 UI アニメーションの設定
第5回 11月21日 イベントに合わせて動かしてみよう
第6回 11月28日 ミニゲームを作ってみよう
第7回 12月5日 シューティングゲーム キャラクターを貼り付けよう そして動かそう
第8回 12月12日 シューティングゲーム 敵を動かしてみよう
第9回 12月19日 シューティングゲーム 敵を攻撃しよう そして完成
第10回 12月26日 あなたの近くのコミュニティ - 勉強会に参加してみよう
セミナー情報 : 下記のWebサイト
http://forms.embarcadero.com/starter-tutorial-webinar
3© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
第5回 「イベントにあわせて動かしてみよう」
 今日のねらい
• イベントとイベントハンドラについて知る
• イベントの種類について知る
 実施内容
• イベントに紐づくイベントハンドラを書いてみる
• 一つのコンポーネントで発生する
複数のイベントを使い分けてみる。
• キー入力に伴うイベントハンドラを書いてみる。
• 定期的な処理を行ってみる。
 注意事項
• コードの説明はDelphi (Object Pascal) で行っていますが、最後にC++向け
の補講があります。
4© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
無料版 Delphi 10.1 Berlin Starter Edition 入手方法
• シリアルキーを知らせるメール内にも再ダウンロードリンク有
エンバ
Web
製品 Delphi
Starter
バナー
登録 Get
 無料で使える開発環境をダウンロード
EDN*に登録済の方はEDNアカウントでダウンロード可
登録完了後、自動でインストーラーのダウンロード開始
インストール時にシリアルキーを入力
登録時のメールアドレスにシリアルキーが配信される
5© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
イベントとは何か?
 辞書の説明では……
1. 出来事。催し物。行事。
2. 競技種目。試合。「メーンイベント」
3. キーボードやマウスからの入力や、実行中のプログラムからの処理要求
のこと。これをきっかけにしてプログラムを動作させることをイベント
ドリブンという。
(出典: 小学館 デジタル大辞泉)
6© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
コンピュータプログラムにおけるイベント
 キー操作
• キーを押した
• 元に戻った
 マウス操作
• シングルクリック
• ダブルクリック
• ドラッグ&ドロップ
• 押し下げた
• 戻った
• 動いた
 フォーム操作
• フォームが生成された
• フォームを終了した
• アプリがアクティブになっ
た
• ウィンドウのリサイズが発
生した
 タイマー処理
7© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
コンピュータプログラムにおけるイベントの例
 実際のイベントの例
クリックすると Click
イベントが発生する。
8© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
コンピュータプログラムにおけるイベントの例
 OnClick イベントに対して「イベントハンドラ」を割り当てると、
イベントに伴って処理が行われる。
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Insert(0, 'ボタン押しましたね?');
end;
9© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
演習1: マウス操作のイベントに処理を書く。
 ボタンを押す
 ダブルクリックする
 マウスボタンの押し下げを検知する
 マウスボタンを離したら検知する
10© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
演習2: キー操作のイベントに処理を書く。
 キー操作のイベントで取得できる
内容や違いを知る
• Key = 文字入力以外のキーの種類に応
じた値(Enter, Shift, Ctrl, Alt, Esc F1 –
F12, カーソルキーなど)を取得できる。
• KeyChar = 押されたキーに対応する文
字が取得できる。
11© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
演習3: 一定時間ごとに発生するタイマーイベントを使う
 TTimer コンポーネントを使うこ
とで、一定時間ごとにイベントを
発生させられることを確かめる。
• Interval の値でイベントの発生間隔を
変えられる。
• 値の単位はミリ秒。
• 初期値は1000ミリ秒 = 1秒。
12© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
演習4:アプリケーション起動や終了時のイベントを使う
 アプリの起動時に1回だけ処理を行う
 アプリの終了時に1回だけ処理を行う
13© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
応用:アナログ時計を作ってみる
 TTimerといくつかのコンポー
ネントを組み合わせれば、ア
ナログ時計のアプリが作れま
す。
14© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
応用:アナログ時計を作ってみる
 アナログ時計のアプリのサンプルコードは以下のURLからダウン
ロードできます。
 https://github.com/kazinoue/2016_StarterTutorial_S1-5/archive/master.zip
 このアーカイブには演習のコードも含みます。
 C++/Delphi 両方のサンプルコードを用意しています。
15© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
参考資料
 イベントとイベントハンドラ
• http://docwiki.embarcadero.com/RADStudio/ja/イベント
• http://docwiki.embarcadero.com/RADStudio/ja/新規イベントハンドラの生成
• http://docwiki.embarcadero.com/RADStudio/ja/イベントとイベント_ハンドラの取り扱い
 コンポーネント
• http://docwiki.embarcadero.com/Libraries/ja/FMX.StdCtrls.TButton
• http://docwiki.embarcadero.com/Libraries/ja/FMX.Memo.TMemo
• http://docwiki.embarcadero.com/Libraries/Berlin/ja/FMX.Edit.TEdit
• http://docwiki.embarcadero.com/Libraries/ja/FMX.Types.TTimer
• http://docwiki.embarcadero.com/Libraries/ja/FMX.Objects.TCircle
• http://docwiki.embarcadero.com/Libraries/ja/FMX.Objects.TRoundRect
16© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
本日のセミナー内容は
弊社ブログに掲載予定
[コミュニティ]
↓
[日本人ブログ]
実施内容の再視聴
 エンバカデロWebサイト : http://forms.embarcadero.com/starter-tutorial-webinar
 [リソース] – [イベント]のページに再視聴(オンデマンド)の情報記載
 実施内容サマリー
• Community embarcadero (コミュニティ エンバカデロ)にWebリンク、サンプルコード情報等
http://community.embarcadero.com/
「エンバカデロ」で検索
17© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
第5回 「イベントにあわせて動かしてみよう」まとめ
 今日のねらい
• イベントとイベントハンドラについて知る
• イベントの種類について知る
 実施内容
• イベントに紐づくイベントハンドラを書いてみる
• 一つのコンポーネントで発生する
複数のイベントを使い分けてみる。
• キー入力に伴うイベントハンドラを書いてみる。
• 定期的な処理を行ってみる。
 注意事項
• コードの説明はDelphi (Object Pascal) で行っていますが、最後にC++向け
の補講があります。
18© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
 次回は
11月28日(月)17:00より
“ミニゲームを作ってみよう„

Mais conteúdo relacionado

Destaque

Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介Shinya Okano
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„Kaz Aiso
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口Sunao Tomita
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときRyunosuke SATO
 
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Yoshito Tabuchi
 

Destaque (6)

Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
 
Node.js入門
Node.js入門Node.js入門
Node.js入門
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
 
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
 

Semelhante a 【Delphi / C++Builder Starter チュートリアルシリーズ】 第5回 ‟イベントに合わせて動かしてみよう„

20120416 3年後のeラーニング予想大会 中嶋さん
20120416 3年後のeラーニング予想大会 中嶋さん20120416 3年後のeラーニング予想大会 中嶋さん
20120416 3年後のeラーニング予想大会 中嶋さんVisso株式会社
 
ジェスチャ認識・物体形状取得がもたらす新たな未来
ジェスチャ認識・物体形状取得がもたらす新たな未来ジェスチャ認識・物体形状取得がもたらす新たな未来
ジェスチャ認識・物体形状取得がもたらす新たな未来Kaoru NAKAMURA
 
re:Invent 行ってきた
re:Invent 行ってきたre:Invent 行ってきた
re:Invent 行ってきたYusuke Komahara
 
心地良さのインタラクションデザイン ワークショップ
心地良さのインタラクションデザイン ワークショップ心地良さのインタラクションデザイン ワークショップ
心地良さのインタラクションデザイン ワークショップYuichi Yazaki
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1MinGeun Park
 
デジタルインク技術のご紹介(Developers Summit 2014)
デジタルインク技術のご紹介(Developers Summit 2014)デジタルインク技術のご紹介(Developers Summit 2014)
デジタルインク技術のご紹介(Developers Summit 2014)Takeshi Shinmura
 
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1Takuya Mukohira
 
iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3codeal
 
最近使ってみて便利だと感じたアプリ・サービス
最近使ってみて便利だと感じたアプリ・サービス最近使ってみて便利だと感じたアプリ・サービス
最近使ってみて便利だと感じたアプリ・サービスStudy Group by SciencePark Corp.
 
Windows 10 RS4 Insider Preview
Windows 10 RS4 Insider PreviewWindows 10 RS4 Insider Preview
Windows 10 RS4 Insider PreviewTomokazu Kizawa
 
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!Hiroko Umetsu
 
devsumi17 d-2
devsumi17 d-2devsumi17 d-2
devsumi17 d-2dikehara
 
HTML5 ゲームフレームワーク開発について
HTML5 ゲームフレームワーク開発についてHTML5 ゲームフレームワーク開発について
HTML5 ゲームフレームワーク開発についてDrecom Co., Ltd.
 
IBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121aIBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121aMaho Takara
 
初心者向けMacユーザー勉強会
初心者向けMacユーザー勉強会初心者向けMacユーザー勉強会
初心者向けMacユーザー勉強会Takuma Morikawa
 

Semelhante a 【Delphi / C++Builder Starter チュートリアルシリーズ】 第5回 ‟イベントに合わせて動かしてみよう„ (20)

Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
 
3
33
3
 
20120416 3年後のeラーニング予想大会 中嶋さん
20120416 3年後のeラーニング予想大会 中嶋さん20120416 3年後のeラーニング予想大会 中嶋さん
20120416 3年後のeラーニング予想大会 中嶋さん
 
ジェスチャ認識・物体形状取得がもたらす新たな未来
ジェスチャ認識・物体形状取得がもたらす新たな未来ジェスチャ認識・物体形状取得がもたらす新たな未来
ジェスチャ認識・物体形状取得がもたらす新たな未来
 
re:Invent 行ってきた
re:Invent 行ってきたre:Invent 行ってきた
re:Invent 行ってきた
 
心地良さのインタラクションデザイン ワークショップ
心地良さのインタラクションデザイン ワークショップ心地良さのインタラクションデザイン ワークショップ
心地良さのインタラクションデザイン ワークショップ
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
FxugWP7
FxugWP7FxugWP7
FxugWP7
 
デジタルインク技術のご紹介(Developers Summit 2014)
デジタルインク技術のご紹介(Developers Summit 2014)デジタルインク技術のご紹介(Developers Summit 2014)
デジタルインク技術のご紹介(Developers Summit 2014)
 
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1
 
iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3
 
最近使ってみて便利だと感じたアプリ・サービス
最近使ってみて便利だと感じたアプリ・サービス最近使ってみて便利だと感じたアプリ・サービス
最近使ってみて便利だと感じたアプリ・サービス
 
Windows 10 RS4 Insider Preview
Windows 10 RS4 Insider PreviewWindows 10 RS4 Insider Preview
Windows 10 RS4 Insider Preview
 
FIO-KeyBOforBBT
FIO-KeyBOforBBTFIO-KeyBOforBBT
FIO-KeyBOforBBT
 
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
 
Devsumi 17 d-2
Devsumi 17 d-2Devsumi 17 d-2
Devsumi 17 d-2
 
devsumi17 d-2
devsumi17 d-2devsumi17 d-2
devsumi17 d-2
 
HTML5 ゲームフレームワーク開発について
HTML5 ゲームフレームワーク開発についてHTML5 ゲームフレームワーク開発について
HTML5 ゲームフレームワーク開発について
 
IBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121aIBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121a
 
初心者向けMacユーザー勉強会
初心者向けMacユーザー勉強会初心者向けMacユーザー勉強会
初心者向けMacユーザー勉強会
 

Mais de 和弘 井之上

【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第7回 ‟オブジェクト指向„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第7回 ‟オブジェクト指向„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第7回 ‟オブジェクト指向„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第7回 ‟オブジェクト指向„和弘 井之上
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„和弘 井之上
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„和弘 井之上
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„和弘 井之上
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„和弘 井之上
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„和弘 井之上
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„和弘 井之上
 

Mais de 和弘 井之上 (7)

【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第7回 ‟オブジェクト指向„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第7回 ‟オブジェクト指向„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第7回 ‟オブジェクト指向„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第7回 ‟オブジェクト指向„
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
 

【Delphi / C++Builder Starter チュートリアルシリーズ】 第5回 ‟イベントに合わせて動かしてみよう„

  • 1. © 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. 第5回 ‟イベントに合わせて動かしてみよう„ シーズン1:わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!
  • 2. 2© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp Delphi / C++Builder Starter チュートリアルシリーズ シーズン1 :2016年10月24日 ~ 12月26日 全10回 時間 :毎週 月曜 17時00分~17時30分 ねらい :一から学んでゲーム制作まで シーズン1 第1回 2016年10月24日 無料で始めよう アプリ作成 第2回 10月31日 ユーザーインターフェイス パーツ基礎 第3回 11月7日 ユーザーインターフェイス パーツの配置 第4回 11月14日 UI アニメーションの設定 第5回 11月21日 イベントに合わせて動かしてみよう 第6回 11月28日 ミニゲームを作ってみよう 第7回 12月5日 シューティングゲーム キャラクターを貼り付けよう そして動かそう 第8回 12月12日 シューティングゲーム 敵を動かしてみよう 第9回 12月19日 シューティングゲーム 敵を攻撃しよう そして完成 第10回 12月26日 あなたの近くのコミュニティ - 勉強会に参加してみよう セミナー情報 : 下記のWebサイト http://forms.embarcadero.com/starter-tutorial-webinar
  • 3. 3© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 第5回 「イベントにあわせて動かしてみよう」  今日のねらい • イベントとイベントハンドラについて知る • イベントの種類について知る  実施内容 • イベントに紐づくイベントハンドラを書いてみる • 一つのコンポーネントで発生する 複数のイベントを使い分けてみる。 • キー入力に伴うイベントハンドラを書いてみる。 • 定期的な処理を行ってみる。  注意事項 • コードの説明はDelphi (Object Pascal) で行っていますが、最後にC++向け の補講があります。
  • 4. 4© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 無料版 Delphi 10.1 Berlin Starter Edition 入手方法 • シリアルキーを知らせるメール内にも再ダウンロードリンク有 エンバ Web 製品 Delphi Starter バナー 登録 Get  無料で使える開発環境をダウンロード EDN*に登録済の方はEDNアカウントでダウンロード可 登録完了後、自動でインストーラーのダウンロード開始 インストール時にシリアルキーを入力 登録時のメールアドレスにシリアルキーが配信される
  • 5. 5© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp イベントとは何か?  辞書の説明では…… 1. 出来事。催し物。行事。 2. 競技種目。試合。「メーンイベント」 3. キーボードやマウスからの入力や、実行中のプログラムからの処理要求 のこと。これをきっかけにしてプログラムを動作させることをイベント ドリブンという。 (出典: 小学館 デジタル大辞泉)
  • 6. 6© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp コンピュータプログラムにおけるイベント  キー操作 • キーを押した • 元に戻った  マウス操作 • シングルクリック • ダブルクリック • ドラッグ&ドロップ • 押し下げた • 戻った • 動いた  フォーム操作 • フォームが生成された • フォームを終了した • アプリがアクティブになっ た • ウィンドウのリサイズが発 生した  タイマー処理
  • 7. 7© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp コンピュータプログラムにおけるイベントの例  実際のイベントの例 クリックすると Click イベントが発生する。
  • 8. 8© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp コンピュータプログラムにおけるイベントの例  OnClick イベントに対して「イベントハンドラ」を割り当てると、 イベントに伴って処理が行われる。 procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.Insert(0, 'ボタン押しましたね?'); end;
  • 9. 9© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 演習1: マウス操作のイベントに処理を書く。  ボタンを押す  ダブルクリックする  マウスボタンの押し下げを検知する  マウスボタンを離したら検知する
  • 10. 10© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 演習2: キー操作のイベントに処理を書く。  キー操作のイベントで取得できる 内容や違いを知る • Key = 文字入力以外のキーの種類に応 じた値(Enter, Shift, Ctrl, Alt, Esc F1 – F12, カーソルキーなど)を取得できる。 • KeyChar = 押されたキーに対応する文 字が取得できる。
  • 11. 11© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 演習3: 一定時間ごとに発生するタイマーイベントを使う  TTimer コンポーネントを使うこ とで、一定時間ごとにイベントを 発生させられることを確かめる。 • Interval の値でイベントの発生間隔を 変えられる。 • 値の単位はミリ秒。 • 初期値は1000ミリ秒 = 1秒。
  • 12. 12© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 演習4:アプリケーション起動や終了時のイベントを使う  アプリの起動時に1回だけ処理を行う  アプリの終了時に1回だけ処理を行う
  • 13. 13© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 応用:アナログ時計を作ってみる  TTimerといくつかのコンポー ネントを組み合わせれば、ア ナログ時計のアプリが作れま す。
  • 14. 14© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 応用:アナログ時計を作ってみる  アナログ時計のアプリのサンプルコードは以下のURLからダウン ロードできます。  https://github.com/kazinoue/2016_StarterTutorial_S1-5/archive/master.zip  このアーカイブには演習のコードも含みます。  C++/Delphi 両方のサンプルコードを用意しています。
  • 15. 15© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 参考資料  イベントとイベントハンドラ • http://docwiki.embarcadero.com/RADStudio/ja/イベント • http://docwiki.embarcadero.com/RADStudio/ja/新規イベントハンドラの生成 • http://docwiki.embarcadero.com/RADStudio/ja/イベントとイベント_ハンドラの取り扱い  コンポーネント • http://docwiki.embarcadero.com/Libraries/ja/FMX.StdCtrls.TButton • http://docwiki.embarcadero.com/Libraries/ja/FMX.Memo.TMemo • http://docwiki.embarcadero.com/Libraries/Berlin/ja/FMX.Edit.TEdit • http://docwiki.embarcadero.com/Libraries/ja/FMX.Types.TTimer • http://docwiki.embarcadero.com/Libraries/ja/FMX.Objects.TCircle • http://docwiki.embarcadero.com/Libraries/ja/FMX.Objects.TRoundRect
  • 16. 16© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 本日のセミナー内容は 弊社ブログに掲載予定 [コミュニティ] ↓ [日本人ブログ] 実施内容の再視聴  エンバカデロWebサイト : http://forms.embarcadero.com/starter-tutorial-webinar  [リソース] – [イベント]のページに再視聴(オンデマンド)の情報記載  実施内容サマリー • Community embarcadero (コミュニティ エンバカデロ)にWebリンク、サンプルコード情報等 http://community.embarcadero.com/ 「エンバカデロ」で検索
  • 17. 17© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 第5回 「イベントにあわせて動かしてみよう」まとめ  今日のねらい • イベントとイベントハンドラについて知る • イベントの種類について知る  実施内容 • イベントに紐づくイベントハンドラを書いてみる • 一つのコンポーネントで発生する 複数のイベントを使い分けてみる。 • キー入力に伴うイベントハンドラを書いてみる。 • 定期的な処理を行ってみる。  注意事項 • コードの説明はDelphi (Object Pascal) で行っていますが、最後にC++向け の補講があります。
  • 18. 18© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp  次回は 11月28日(月)17:00より “ミニゲームを作ってみよう„

Notas do Editor

  1. シーズン1:わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう! 第6回 ミニゲームをつくってみよう です。
  2. Delphi / C++Builder Starter チュートリアルシリーズ 10/24 から全十回でお届けしています。 毎週月曜日17時から約30分でおおくりしています。 いちからまなんでげーむせいさくまで 今日は第5回、イベントに合わせて動かしてみよう、です。
  3. アジェンダなんですが、今日はですね まず、イベントとイベントハンドラについて、あらためて学んでいきましょう。 これまでに学んだ中でイベントを使う話は出ていましたが、ここで改めて確認しましょう。 そのうえで、イベントの種類についても学びましょう。 実際にやってみる内容は、 まずはイベントに紐づくイベントハンドラを書いてみます。 そして、一つのコンポーネントで複数のイベントを使い分けてみましょう。 さらにゲームを作る場合はキー操作やマウス操作などが不可欠ですので、キー入力を使うイベントハンドラも書いてみます。 最後に、定期的に行う処理、というのもやってみましょう。 ゲームではプレイヤーが操作しなくても処理が自動で進んでいくわけですが、そのためにはバックグラウンドで定期的に行う処理が必要な場合があります。 今日は、このようなことを、皆さんと実際にやって、学んでまいりましょう。 なお、今回の回の大半は演習となっています。
  4. さて、今日使う Delphi もしくは C++Builder 10.1 Berlin Starter Edition 入手方法ですが、 弊社エンバカデロのウェブサイトに来ていただいて、上のほうにあるツールバーの製品から、Delphi または C++ Builder を選んでいただいて、右上にあるようなバナーをクリックしていただくと、ダウンロードページに飛ぶことができます。 実際のダウンロード方法やインストール方法については、本セミナーの第1回で詳しく紹介していますので、まだダウンロードしていないよ、とか、まだインストールしていないよ、という方は、ぜひ、第1回の内容を見てインストールしてください。 それでは本日の内容に行きましょう。
  5. さて、イベントとは何でしょうか。 これまでにプログラミングの経験がある方なら「何をいまさら」という話なのですが、このチュートリアルシリーズをご覧の方の中には、今回初めてプログラミングを経験する方もいらっしゃるかもしれません。 そこで、あらためて、イベントとは何か、という話をしたいと思います。 まずは、この言葉について、辞書を引いてみることにしましょう。するとこんな説明が出ています。 出来事。催し物。行事。 競技種目。試合。「メーンイベント」 キーボードやマウスからの入力や、実行中のプログラムからの処理要求のこと。これをきっかけにしてプログラムを動作させることをイベントドリブンという。 (出典: 小学館 デジタル大辞泉) では、イベントの種類にはどんなものがあるでしょうか?
  6. コンピュータプログラムにおけるイベントは、先ほどの辞書の内容にもありましたが「キーボードやマウスからの入力」や「実行中のプログラム」からの、さまざまな処理要求です。 ここに挙げているものはイベントの一例ですが、キー操作は単にキーを押した、だけではなく、押している状態がもとに戻った、というのもイベントです。 また、マウス操作では、シングルクリック、ダブルクリック、ドラック&ドロップ、などの普通に思いつく動作に加えて、ボタンを押し下げた状態、ボタンを離して戻した状態、マウスを動かした、などもイベントです。 また、フォームが生成されたり、終了したり、あるいはウィンドウがアクティブになった、などの操作もイベントになります。 そして、ユーザの操作によらず自動的に発生するものとして、タイマー処理、というイベントがあります。 コンピュータプログラムでは、これらのイベントに対して必要な処理を紐づけていきます。
  7. ここでボタンをクリックすると、クリックイベントが発生します。
  8. ここでボタンの OnClick イベントに対してイベントハンドラを割り当てると、ボタンをクリックした操作に対応する処理が行われるようになるわけです。
  9. さて、それでは実際にやってみましょう。 マウス操作のイベントに対して、処理を書いてみましょう。 早速、以下の4種類に対応するイベントを書いてみます。
  10. このように、キー操作のイベントでは、Enter や Shift などの特殊キーが押された場合と、文字入力用のキーが押された場合では、その状態の取得方法が違うことを学習しました。
  11. このように、Ttimer を使うと定期的に行いたい処理を書けることがわかりました。 そして、その周期は interval で変えることができます。 値の単位はミリ秒単位で、初期値は1000ミリ秒、つまり1秒単位です。
  12. さて、次にまいりましょう。 4つ目の演習です。 アプリの起動時や終了時のイベントを使ってみましょう。 先ほど作成した時刻表示のアプリに対して、これらの処理を付け加えてみます。
  13. さて、ここからは応用の話です。 ここまでの内容を応用すれば、たとえばアナログ時計を表示するアプリを作ることもできます。 複雑な処理が必要のように思えるかもしれませんが、コードの分量は案外少ないです。 このスクリーンショットのサンプルは、実質的なコードの分量は20行もありません。 ただしこのコード量で書くには、コンポーネントの種類を調べたり、あるいはプロパティについての知識が必要です。
  14. ここで紹介したアナログ時計のサンプルコードは、以下のURLからダウンロードできるようにしてあります。
  15. そして、本日学んだ、イベントとイベントハンドラに関する情報や、使用したコンポーネントの説明は、以下のURLで読むことができます。
  16. さて、これまでの実施内容の再視聴のご案内です。 過去の放送分を改めて見直したい場合は、エンバカデロテクノロジーズのウェブサイトより、リソース、イベントのページにて、再視聴の情報を掲載しています。 また本日の実施内容のサマリについては、弊社のウェブサイトのうち、コミュニティ、エンバカデロ、ドットコムにも掲載いたします。エンバカデロのホームページから、コミュニティ > 日本人ブログ の順に進んでください。
  17. 本日の内容のまとめです。 本日の狙いは、イベントとイベントハンドラについて知ること、イベントの種類について知ることでした。 そして実施した内容は、イベントに紐づくハンドラを書いてみたり、1つのコンポーネントで複数のイベントを発生させてみたりしました。またキー入力では、文字入力用のキーと特殊キーの違いを学びました。最後に、定期的な処理も行ってみました。 以上で本日の第6回「イベントにあわせて動かしてみよう」の内容はすべて終了となります。最後までご視聴いただきありがとうございます。