260 likes | 332 Views
ゲームプログラミング. 第2回:画面上にボールを描こう! (プログラム環境の導入、静止画). 開発環境の導入. 以下4ステップでラップトップがプログラム開発マシンに 1、JAVAコンパイラの導入 2、携帯電話用拡張JAVAの導入 3、電話会社のツールを導入 4、画像、テストプログラムをセット. 1、コンパイラの導入. プログラミング言語は、機械にさせる処理を 人間が理解しやすいように記述している。 それを機械が実行しやすい形(機械語)に 変換するのがコンパイラの役目. 2、 携帯電話用JAVA導入.
E N D
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への変換は、BTJ32を使おう。(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種類のファイルを読み込む。 ・・・