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

2004年度ゲームプログラミング
ゲームプログラミング
第2回:画面上にボールを描こう!
(プログラム環境の導入、静止画)
2004年度ゲームプログラミング
開発環境の導入
以下4ステップでラップトップがプログラム開発
マシンに
1、JAVAコンパイラの導入
2、携帯電話用拡張JAVAの導入
3、電話会社のツールを導入
4、画像、テストプログラムをセット
2004年度ゲームプログラミング
1、コンパイラの導入
 プログラミング言語は、機械にさせる処
理を
人間が理解しやすいように記述している。
それを機械が実行しやすい形(機械語)
に
変換するのがコンパイラの役目
2004年度ゲームプログラミング
2、携帯電話用JAVA導入
 コンパイラだけではWEBブラウザで動く
アプリケーションまでしか作れない
 ワイヤレスツールキットを導入すると携
帯電話で動くJAVAアプリが作れるよう
になる
2004年度ゲームプログラミング
3、電話会社のツールを導入

プログラムの中身はほぼ同じでも、最終的な実
行ファイルの内容は電話会社ごとに異なるので
電話会社ごとにツールを導入することが必要。

KDDIのツールにはコンパイル支援ソフト、エ
ミュレータ-が入っている

vodafone、docomoのツールもある
(授業後半で使用)
2004年度ゲームプログラミング
4、画像、テストプログラム

gp2k4_100.lzhを解凍すると
gp2004というフォルダが出来るので、
c:\home\ に移動する。

KDDIの設定ファイル、実行ファイル、テストプ
ロジェクト(プログラムと画像)が入っている。

ツール等をインストールする際にフォルダ名
を変えなければ、そのまま実行可能。
2004年度ゲームプログラミング
サンプルプログラムを動かそう




gp2004の下のcmdtools.batを実行すると
AUのコンパイル支援ソフトが起動する
File→OpenProjectでtestを選ぶ
Buildボタンを押すと自動的にコンパイルそ
の他の処理を行い、実行ファイルが出来る
gp2004/project/test/binにtest.kjxという
ファイルができる。これが実行ファイルである。
2004年度ゲームプログラミング
テストプログラムの実行
 スタートメニューのkddiにエミュレータ-
があるので、起動する。
 実行ファイルtest.kjxを一番上の欄にド
ラッグ&ドロップ
 RUNボタンを押すと実行
2004年度ゲームプログラミング
(参考)buildでやっていること



コンパイル
プログラム言語→機械が理解できる言語
XXX.java → XXX.class
プリベリファイ
java環境で動作するか事前検証
アーカイブ
クラスファイルやリソース(画像や音のデータ)を
一つにまとめる。
XXX.class → XXX.jar → XXX.kjx(au)
2004年度ゲームプログラミング
プログラムとは?
 命令の集まり
式(a=b+1;)や
メソッド(wait();)などがある。
 文末
命令の終わりには「; 」をつけよう
日本語における「。」にあたる
2004年度ゲームプログラミング
命令の基本形、メソッド




様々な処理をしてくれる
実行時のパラメータを指定できる(引数)
計算結果を返してくれる(返り値)
引数、返り値は省略可能
パラメータ(引数)
↓
[ 様々な処理を実行 ] (メソッド)
↓
計算結果(返り値)
2004年度ゲームプログラミング
処理の流れ(全部で3種類)



上から下へ
最も基本的な処理の流れです。メソッドを
実行すると、メソッドの中を上から下に、
一つずつ順番に命令を実行します
繰り返し(for,while)
指定された処理を何度も繰り返します
分岐(if,else)
条件によって分岐します
2004年度ゲームプログラミング
プログラムの単位、クラス



プログラムの目的や機能ごとに、メソッドや変数をま
とめたものをクラスと言います。
オブジェクト言語特有の考え方です。
サンプルプロジェクトは以下の2つでできています。
・アプリケーション本体のクラス
(test.java) のtest
・描画を担当するクラス
(gameCanvas.java)のgameCanvas
2004年度ゲームプログラミング
座標について
画面上の場所を数値を用いて表現する為に、
座標を使う。
(画面の大きさは縦が144、横が144ドット)
 横方向がX座標(左端が0、右端が143)
 縦方向がY座標(上端が0、下端が143)
 左上の座標は(0,0)
 (X,Y)のように()でくくって表現することが多い。

2004年度ゲームプログラミング
課題の進め方

課題はgameプロジェクト(最初はtestと同じ内容)に
手を加えながら進める。

Gameプロジェクトのフォルダの中身
binフォルダ:最終的な実行ファイルが入る
resフォルダ:データ(画像等)を入れる
srcフォルダ:プログラムが入っている
→srcフォルダの中のプログラムを書き換えて行く
2004年度ゲームプログラミング
雛型

game.javaとgameCanvas.javaからできている。
 全部の処理を理解する必要はない。
game.javaは基本的にはいじらない。
 殆どの部分がどんなプログラムを書く時も同じ。おまじない
のようなものである。
(この同じ部分が「雛型」)
 雛型以外の部分は、gameCanvas内のたったの3箇所。
2004年度ゲームプログラミング
雛型で行われる処理

最初にgameCanvas()が1回だけ呼ばれる。
→コンストラクタとも言う

一定時間ごとにpaint()が呼ばれる。
→ここに描画の処理を入れておく

動きの処理を入れる為のメソッドや、ゲームごと
の初期化の為のメソッド、キー操作の為のメソッ
ドが用意してある。(次回以降で扱う)
2004年度ゲームプログラミング
画像の宣言
private Image img;//画像

画像(Image)を扱う変数imgを宣言。

扱う前に宣言することが必要
変数の名前(img)は自由につけることができ
る。(ボールを表示するのでball等でも可)

2004年度ゲームプログラミング
画像の読み込み
try{
//画像読み込み
img = Image.createImage("/ball.png");
} catch(IOException ex){
System.out.println("Cannot read");
}
ball.pngを読み込む
失敗したらエラーを表示
2004年度ゲームプログラミング
Try-Catch節
try{
A;
} catch(IOException ex){
B;
}
Aの実行を試みる。失敗したらBを呼ぶ。
一部の命令はtry_catchで囲むことが必要
2004年度ゲームプログラミング
画像を表示
g.drawImage(img,50,50,g.LEFT|g.TOP);
引数は4個
最初の1個で何を表示するかを指定
次の2個でどこに表示するかを指定
最後の1個が表示オプション(左上)
→ボールを(50,50)に描く。
2004年度ゲームプログラミング
1、ボールを3個表示しよう
 描画関数を3回呼ぶ。
g.drawImage (…);
g.drawImage (…);
g.drawImage (…);
 重ならないよう、座標を変える。
2004年度ゲームプログラミング
2、画面4隅に表示しよう
 4隅なのでボールは4個
→描画関数を4回呼ぶ。
 左上は(0,0)に表示すればOK。
それ以外の座標の設定は慎重に
→ボールの幅、高さを考えよう
2004年度ゲームプログラミング
3、色違いのボールを表示

ball.pngを開いてみよう。
黄色いボールの画像である。
 コピーして、ボールの色を青に変え、
ball_blue.pngをいうファイルを作ってresに
置こう。
 プログラム中の読み込むファイル名を変えれ
ば、違い色のボールを表示できる。
 Bitmap(bmp)からpngへの変換は、BTJ3
2を使おう。(photoshop等でpngを直接編
集することも可能)
2004年度ゲームプログラミング
4、ボールのデザインを変えよう
 課題3とほぼ同様。
 ボール以外の物体も、何でも好きな物
が表示できるようになる。
2004年度ゲームプログラミング
5、2種類の物体を同時に表示
Private Image img_a,img_b;
画像を扱う変数を2個宣言する。
img_a=Image.createImage("/a.png");
img_b=Image.createImage("/b.png");
2種類のファイルを読み込む。
・・・