(プログラムと画像)が入っている。

2006年度ゲームプログラミング
ゲームプログラミング
第2回:画面上にボールを描こう!
(プログラム環境の導入、静止画)
2006年度ゲームプログラミング
開発環境の導入
以下3ステップでノートPCがプログラム
開発マシンに
1、JAVAコンパイラの導入
2、電話会社のツールを導入
3、画像、テストプログラムをセット
2006年度ゲームプログラミング
1、コンパイラの導入
 プログラミング言語は、機械にさせる処
理を
人間が理解しやすいように記述している。
それを機械が実行しやすい形(機械語)
に
変換するのがコンパイラの役目
2006年度ゲームプログラミング
2、電話会社のツールを導入

プログラムの中身はほぼ同じでも、最終的な実
行ファイルの内容は電話会社ごとに異なるので
電話会社ごとにツールを導入することが必要。

ドコモのツールにはコンパイル支援ソフト、エ
ミュレータ-が入っている

vodafone、willcomのツールもある
(授業後半で使用)
2006年度ゲームプログラミング
3、画像、テストプログラム

docomo_test_appを解凍すると
gptestというフォルダが出来るので、
C:\iDKDoJa3.5\apps\ に移動する。

ドコモ用携帯アプリのテストプロジェクト(プロ
グラムと画像)が入っている。

指定の場所に設置すれば、そのままビルドや
実行が可能。
2006年度ゲームプログラミング
サンプルプログラムを動かそう





プログラムフォルダから
iAppliToolKit for Doja-4.1を起動
「プロジェクト読み込み」でgptestを選ぶ
「ビルド」ボタンを押すと自動的にコンパイル
その他の処理を行い、実行ファイルが出来る
apps/gptest/binにgptest.jar、gptest.jam
というファイルができる。これが実行ファイル
である。
「起動」ボタンを押すと、アプリが実行される。
2006年度ゲームプログラミング
(参考)buildでやっていること



コンパイル
プログラム言語→機械が理解できる言語
XXX.java → XXX.class
プリベリファイ
java環境で動作するか事前検証
アーカイブ
クラスファイルやリソース(画像や音のデータ)を
一つにまとめる。
XXX.class → XXX.jar
2006年度ゲームプログラミング
プログラムとは?
 命令の集まり
式(a=b+1;)や
メソッド(wait();)などがある。
 文末
命令の終わりには「; 」をつけよう
日本語における「。」にあたる
2006年度ゲームプログラミング
命令の基本形、メソッド




様々な処理をしてくれる
実行時のパラメータを指定できる(引数)
計算結果を返してくれる(返り値)
引数、返り値は省略可能
パラメータ(引数)
↓
[ 様々な処理を実行 ] (メソッド)
↓
計算結果(返り値)
2006年度ゲームプログラミング
処理の流れ(全部で3種類)



上から下へ
最も基本的な処理の流れです。メソッドを
実行すると、メソッドの中を上から下に、
一つずつ順番に命令を実行します
繰り返し(for,while)
指定された処理を何度も繰り返します
分岐(if,else)
条件によって分岐します
2006年度ゲームプログラミング
プログラムの単位、クラス



プログラムの目的や機能ごとに、メソッドや変数をまとめ
たものをクラスと言います。
オブジェクト言語特有の考え方です。
サンプルプロジェクトは以下の3つでできています。
・アプリケーション本体のクラス
(gameApp.java) のgameApp
・描画など電話会社ごとに異なる処理を担当するクラス
(gameCanvas.java)のgameCanvas
・ゲームのアルゴリズムを担当するクラス
(game.java)のgame
2006年度ゲームプログラミング
座標について
画面上の場所を数値を用いて表現する為に、
座標を使う。
(画面の大きさは縦が240、横が240ドット)
 横方向がX座標(左端が0、右端が239)
 縦方向がY座標(上端が0、下端が239)
 左上の座標は(0,0)
 (X,Y)のように()でくくって表現することが多い。

2006年度ゲームプログラミング
課題の進め方

課題は新しいプロジェクト(gptestのコピー)を作って進める。

gptestプロジェクトのフォルダの中身
binフォルダ:最終的な実行ファイルが入る
resフォルダ:データ(画像等)を入れる
srcフォルダ:プログラムが入っている

新規プロジェクトを作成して、
srcとresの中身をgptestからコピー
→主にsrcフォルダの中のプログラムを書き換えて行く
※ADF設定でappNameとappClassを設定する必要あり
2006年度ゲームプログラミング
雛型

game.javaとgameCanvas.java、gameApp.javaから
できている。
 全部の処理を理解する必要はない。
gameApp.javaとgameCanvas.javaは基本的にはいじらな
い。game.javaのみ手を加える。
 殆どの部分がどんなプログラムを書く時も同じ。おまじない
のようなものである。
(この同じ部分が「雛型」)
 雛型以外の部分は、game.java内のたったの2箇所。
2006年度ゲームプログラミング
雛型で行われる処理

最初にgame()が1回だけ呼ばれる。
→コンストラクタとも言う

一定時間ごとにdrawGame()が呼ばれる。
→ここに描画の処理を入れておく

動きの処理を入れる為のメソッドや、キー操作
の為のメソッドが用意してある。(次回以降で扱
う)
2006年度ゲームプログラミング
画像を表示
gc.drawImage(0,10,20);
引数は3個
最初の1個で何を表示するかを指定
(0だとimg0.gifの内容を表示)
次の2個でどこに表示するかを指定
最後の1個が表示オプション(左上)
→ボールを(10,20)に描く。
2006年度ゲームプログラミング
課題1、ボールを3個表示しよう
 描画関数を3回呼ぶ。
gc.drawImage (…);
gc.drawImage (…);
gc.drawImage (…);
 重ならないよう、座標を変える。
2006年度ゲームプログラミング
課題2、画面4隅に表示しよう
 4隅なのでボールは4個
→描画関数を4回呼ぶ。
 左上は(0,0)に表示すればOK。
それ以外の座標の設定は慎重に
→ボールの幅、高さを考えよう
2006年度ゲームプログラミング
課題3、色違いのボールを表示

img0.gifを開いてみよう。
黄色いボールの画像である。
 ボールの色を青に変え、上書き保存しよう。
 ビルドして、実行してみよう。


黄色い画像も名前を変えてバックアップして
おくと(img0_bk.gif等)元に戻すことができる。
Bitmap(bmp)からgifへの変換は、
irFanViewを使おう。(photoshop等でgifを
直接編集することも可能)
2006年度ゲームプログラミング
課題4、ボールのデザインを変えよう
 課題3とほぼ同様。
 ボール以外の物体も、何でも好きな物
が表示できるようになる。
2006年度ゲームプログラミング
課題5、2種類の物体を同時に表示
(1)

読み込む画像の枚数を指定する命令がある。
gc.setImageNum(画像の枚数);

testでは1枚しか画像がないので、
gc.setImageNum(1);となっている。
この(内の)数字(引数と呼ぶ)を変えていく。
2枚だとimg0.gifとimg1.gif、
10枚だとimg0.gif~img9.gifを読み込む。
(※img10.gifは読み込まないので注意)

2006年度ゲームプログラミング
課題5、2種類の物体を同時に表示(2)
2種類(以上)の画像を用意
img0.gif , img1.gif , img2.gif、、、
と順番に名付ける
読み込む枚数を増やす。
gc.setImageNume(…);
描画する。
gc.drawImage(1,…);// img1.gifを表示