26
2004 年年年年年年年年年年年年 年年年年年年年年年年 年年年年年年年年年年 年年 年年年年年年年年年年年年 2:! 年年年年年年年年年年年 年年年年 (、)

ゲームプログラミング

Embed Size (px)

DESCRIPTION

ゲームプログラミング. 第2回:画面上にボールを描こう!  (プログラム環境の導入、静止画). 開発環境の導入.  以下4ステップでラップトップがプログラム開発マシンに    1、JAVAコンパイラの導入    2、携帯電話用拡張JAVAの導入    3、電話会社のツールを導入    4、画像、テストプログラムをセット. 1、コンパイラの導入. プログラミング言語は、機械にさせる処理を  人間が理解しやすいように記述している。  それを機械が実行しやすい形(機械語)に  変換するのがコンパイラの役目. 2、 携帯電話用JAVA導入. - PowerPoint PPT Presentation

Citation preview

Page 1: ゲームプログラミング

2004年度ゲームプログラミング

ゲームプログラミングゲームプログラミング

第2回:画面上にボールを描こう! (プログラム環境の導入、静止画)

Page 2: ゲームプログラミング

2004年度ゲームプログラミング

開発環境の導入開発環境の導入

 以下4ステップでラップトップがプログラム開発マシンに

   1、JAVAコンパイラの導入   2、携帯電話用拡張JAVAの導入   3、電話会社のツールを導入   4、画像、テストプログラムをセット

Page 3: ゲームプログラミング

2004年度ゲームプログラミング

1、コンパイラの導入1、コンパイラの導入プログラミング言語は、機械にさせ

る処理を 人間が理解しやすいように記述して

いる。 それを機械が実行しやすい形(機械

語)に 変換するのがコンパイラの役目

Page 4: ゲームプログラミング

2004年度ゲームプログラミング

2、2、携帯電話用JAVA導携帯電話用JAVA導入入コンパイラだけではWEBブラウザ

で動くアプリケーションまでしか作れない

ワイヤレスツールキットを導入すると携帯電話で動くJAVAアプリが作れるようになる

Page 5: ゲームプログラミング

2004年度ゲームプログラミング

3、3、電話会社のツールを導電話会社のツールを導入入プログラムの中身はほぼ同じでも、最終的な実

行ファイルの内容は電話会社ごとに異なるので電話会社ごとにツールを導入することが必要。

KDDI のツールにはコンパイル支援ソフト、エミュレータ-が入っている

vodafone 、 docomo のツールもある (授業後半で使用)

Page 6: ゲームプログラミング

2004年度ゲームプログラミング

4、画像、テストプログラム4、画像、テストプログラムgp2k4_100.lzh を解凍すると

gp2004 というフォルダが出来るので、c:\home\  に移動する。

KDDI の設定ファイル、実行ファイル、テストプロジェクト(プログラムと画像)が入っている。

ツール等をインストールする際にフォルダ名を変えなければ、そのまま実行可能。

Page 7: ゲームプログラミング

2004年度ゲームプログラミング

サンプルプログラムを動かそサンプルプログラムを動かそううgp2004 の下の cmdtools.bat を実行すると

AU のコンパイル支援ソフトが起動するFile→OpenProject で test を選ぶBuild ボタンを押すと自動的にコンパイルそ

の他の処理を行い、実行ファイルが出来るgp2004/project/test/bin に test.kjx という

ファイルができる。これが実行ファイルである。

Page 8: ゲームプログラミング

2004年度ゲームプログラミング

テストプログラムの実行テストプログラムの実行スタートメニューの kddi にエミュ

レータ-があるので、起動する。

実行ファイル test.kjx を一番上の欄にドラッグ&ドロップ

RUN ボタンを押すと実行

Page 9: ゲームプログラミング

2004年度ゲームプログラミング

(参考)(参考) buildbuild でやっているこでやっていることと コンパイル  プログラム言語→機械が理解できる言語   XXX.java → XXX.class プリベリファイ   java 環境で動作するか事前検証 アーカイブ  クラスファイルやリソース(画像や音のデータ)を  一つにまとめる。   XXX.class  →  XXX.jar  →  XXX.kjx ( a

u )

Page 10: ゲームプログラミング

2004年度ゲームプログラミング

プログラムとは?プログラムとは?命令の集まり  式( a=b+1 ;)や  メソッド( wait ();)などがある。文末  命令の終わりには「 ; 」をつけよう  日本語における「。」にあたる

Page 11: ゲームプログラミング

2004年度ゲームプログラミング

命令の基本形、メソッド命令の基本形、メソッド 様々な処理をしてくれる 実行時のパラメータを指定できる(引数) 計算結果を返してくれる(返り値) 引数、返り値は省略可能

      パラメータ(引数)          ↓     [  様々な処理を実行 ] (メソッド)          ↓      計算結果(返り値)

Page 12: ゲームプログラミング

2004年度ゲームプログラミング

処理の流れ(全部で3種類)処理の流れ(全部で3種類)上から下へ   最も基本的な処理の流れです。メソッドを   実行すると、メソッドの中を上から下に、   一つずつ順番に命令を実行します繰り返し( for,while )   指定された処理を何度も繰り返します分岐( if,else )   条件によって分岐します

Page 13: ゲームプログラミング

2004年度ゲームプログラミング

プログラムの単位、クラスプログラムの単位、クラス プログラムの目的や機能ごとに、メソッドや変

数をまとめたものをクラスと言います。 オブジェクト言語特有の考え方です。 サンプルプロジェクトは以下の2つでできてい

ます。  ・アプリケーション本体のクラス

( test.java ) の test    ・描画を担当するクラス   ( gameCanvas.java )の gameCanvas

Page 14: ゲームプログラミング

2004年度ゲームプログラミング

座標について座標について画面上の場所を数値を用いて表現する為に、座標

を使う。 (画面の大きさは縦が144、横が144ドッ

ト)横方向がX座標(左端が0、右端が143)縦方向がY座標(上端が0、下端が143)左上の座標は(0,0)(X,Y)のように()でくくって表現すること

が多い。

Page 15: ゲームプログラミング

2004年度ゲームプログラミング

課題の進め方課題の進め方

課題は game プロジェクト(最初は test と同じ内容)に  手を加えながら進める。

Game プロジェクトのフォルダの中身   bin フォルダ:最終的な実行ファイルが入る   res フォルダ:データ(画像等)を入れる   src フォルダ:プログラムが入っている   → src フォルダの中のプログラムを書き換えて行く

Page 16: ゲームプログラミング

2004年度ゲームプログラミング

雛型雛型

game.java と gameCanvas.java からできている。 全部の処理を理解する必要はない。  game.java は基本的にはいじらない。 殆どの部分がどんなプログラムを書く時も同じ。おま

じないのようなものである。 (この同じ部分が「雛型」) 雛型以外の部分は、 gameCanvas 内のたったの3箇所。

Page 17: ゲームプログラミング

2004年度ゲームプログラミング

雛型で行われる処理雛型で行われる処理最初に gameCanvas() が1回だけ呼ばれる。  →コンストラクタとも言う

一定時間ごとに paint() が呼ばれる。  →ここに描画の処理を入れておく

動きの処理を入れる為のメソッドや、ゲームごとの初期化の為のメソッド、キー操作の為のメソッドが用意してある。(次回以降で扱う)

Page 18: ゲームプログラミング

2004年度ゲームプログラミング

画像の宣言画像の宣言

   private Image img;// 画像 画像( Image )を扱う変数 img を宣言。

扱う前に宣言することが必要変数の名前( img )は自由につけることが

できる。(ボールを表示するので ball 等でも可)

Page 19: ゲームプログラミング

2004年度ゲームプログラミング

画像の読み込み画像の読み込み try{ // 画像読み込み img = Image.createImage("/ball.png"); } catch(IOException ex){ System.out.println("Cannot read"); }

ball.png を読み込む失敗したらエラーを表示

Page 20: ゲームプログラミング

2004年度ゲームプログラミング

Try-CatchTry-Catch 節節 try{ A ; } catch(IOException ex){

B ; }

Aの実行を試みる。失敗したらBを呼ぶ。一部の命令は try_catch で囲むことが必要

Page 21: ゲームプログラミング

2004年度ゲームプログラミング

画像を表示画像を表示

g.drawImage(img,50,50,g.LEFT|g.TOP);

引数は4個最初の1個で何を表示するかを指定次の2個でどこに表示するかを指定最後の1個が表示オプション(左上)

→ ボールを (50,50) に描く。

Page 22: ゲームプログラミング

2004年度ゲームプログラミング

1、ボールを3個表示しよう1、ボールを3個表示しよう

描画関数を3回呼ぶ。   g.drawImage (…);   g.drawImage (…);   g.drawImage (…);

重ならないよう、座標を変える。

Page 23: ゲームプログラミング

2004年度ゲームプログラミング

2、画面4隅に表示しよう2、画面4隅に表示しよう

4隅なのでボールは4個   →描画関数を4回呼ぶ。左上は(0,0)に表示すればOK。 それ以外の座標の設定は慎重に   →ボールの幅、高さを考えよう

Page 24: ゲームプログラミング

2004年度ゲームプログラミング

3、色違いのボールを表示3、色違いのボールを表示ball.png を開いてみよう。 黄色いボールの画像である。コピーして、ボールの色を青に変え、 ball_bl

ue.png をいうファイルを作って res に置こう。

プログラム中の読み込むファイル名を変えれば、違い色のボールを表示できる。

Bitmap ( bmp )から png への変換は、BTJ32を使おう。( photoshop 等で png を直接編集することも可能)

Page 25: ゲームプログラミング

2004年度ゲームプログラミング

44 、ボールのデザインを変え、ボールのデザインを変えようよう

課題3とほぼ同様。

ボール以外の物体も、何でも好きな物が表示できるようになる。

Page 26: ゲームプログラミング

2004年度ゲームプログラミング

5、2種類の物体を同時に表5、2種類の物体を同時に表示示

Private Image img_a,img_b;画像を扱う変数を2個宣言する。

img_a=Image.createImage("/a.png"); img_b=Image.createImage("/b.png");2種類のファイルを読み込む。・・・