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を表示
© Copyright 2025 ExpyDoc