1 / 18

ゲームプログラミング

ゲームプログラミング. 第3回:ボールを上下に動かそう!  (オブジェクトの移動、一次元). 物体を動かすしくみ. 少しずつ座標をずらして表示すると、   動いているように見える 座標をずらして表示する為に   変数を使う。. 変数(1). 数値を入れておくための箱   整数( int )、少数( float,double )、   文字列 (char) などの種類(型)がある。 使用する前に型の宣言が必要 int x; ( 整数型の変数xの宣言 ) 宣言は関数の最初に( java と違う点). 変数(2). 変数の数値を「値」と呼ぶ 値の入れかた

yael-kirby
Télécharger la présentation

ゲームプログラミング

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2002年度ゲームプログラミング ゲームプログラミング 第3回:ボールを上下に動かそう!  (オブジェクトの移動、一次元)

  2. 2002年度ゲームプログラミング 物体を動かすしくみ • 少しずつ座標をずらして表示すると、   動いているように見える • 座標をずらして表示する為に   変数を使う。

  3. 2002年度ゲームプログラミング 変数(1) • 数値を入れておくための箱   整数(int)、少数(float,double)、   文字列(char)などの種類(型)がある。 • 使用する前に型の宣言が必要 int x; (整数型の変数xの宣言) • 宣言は関数の最初に(javaと違う点)

  4. 2002年度ゲームプログラミング 変数(2) • 変数の数値を「値」と呼ぶ • 値の入れかた y = 100; などのように、= の右側に入れる数値を書く。 • 型の宣言と値の設定を初期値を同時に行う   こともできる int y = 100; • 初めて使う前に値(初期値)を入れておこう

  5. 2002年度ゲームプログラミング 変数(3) • 値の使い方   関数の引数に sp_set ( sp , 0 , 100 , y , 1 );   式の右辺に num = y ;   (y の値をnumに入れる)   条件に if ( y < 0 )   (もしy が0未満なら)

  6. 2002年度ゲームプログラミング 1、ボールを動かそう • set_spの y 座標を変数 y を使って指定 • whileの繰り返し(ループ)の中で y の値を少しずつ変えていく y = y + 1 ; (yに1を足す) • 関数の最初で y を宣言することが必要

  7. 2002年度ゲームプログラミング 残像を消そう • ボールの残像が出る理由   →前に描いたボールが残っている • ボールを描く前に毎回画面を   真っ黒に塗りつぶそう • 黒いbitmapを表示して塗りつぶす

  8. 2002年度ゲームプログラミング 真っ黒なビットマップの表示 • 前回の雛型以外の4行(ボール表示の準備と、ボール表示)を流用して、 真っ黒なbitmap(gp2.bmp)を表示させよう。 int bg; bg=load_bmp("gp2.bmp",,,); def_char(bg,,,); sp_set(bg,,,);

  9. 2002年度ゲームプログラミング ひとやすみ • 皆が残像なくボールを動かせるように   なるまで、しばし休憩。 • 元気のある人は先に進んでみましょう

  10. 2002年度ゲームプログラミング 反復運動(1) • 上から下へ、下から上へを繰り返す。 • 下向き(↓)に動かす処理 y = y + 1; • 上向き(↑)に動かす処理 y = y - 1; y = y + (-1);  とも書ける

  11. 2002年度ゲームプログラミング 反復運動(2) • y が変化する量も変数にしてみよう。 int dy;yが変化する量 y = y + dy ; yにdyを足す • dy が1の時、yが1づつ増える   →ボールが下に動く • dy が-1の時、yが1づつ減る   →ボールが上に動く

  12. 2002年度ゲームプログラミング 反復運動(3) • ボールが下まで来たら、dyの符号を反転     dy = -dy; (1だったら-1になる) • ボールが上まで来たら、dyの符号を反転     dy = -dy; (-1だったら1になる) • 「○○だったら××する」という処理   にはif文を使う

  13. 2002年度ゲームプログラミング if 文(条件分岐) • 「条件」を満たす時のみ「命令」を実行する。 if (条件) 命令; • 実行する「命令」が複数ある場合は{}でくくる。 if (条件){    命令1;    命令2; }

  14. 2002年度ゲームプログラミング 様々な条件 • if(A==B) AがBと等しい • if(A>B) AがBより大きい • if(A<B) AがBより小さい • if(A>=B) AがB以上 • if(A<=B) AがB以下   • if(A!=B) AとBが等しくない • if(A) Aが0以外

  15. 2002年度ゲームプログラミング 2、ボールを反復させよう • 以下のような構造になります while ( … ) { y = y + dy ; yが0以下なら dy = - dy; yが448以上なら dy = - dy;     ボール表示; }

  16. 2002年度ゲームプログラミング 3、跳ね返るとスピードUP • yの変化の量を増やすとスピードUP   →dyの絶対値を大きくしていく • 跳ね返った時のみ   →if文{}の中にスピードUPの命令を足す • 上で跳ね返った後のdyは正(+)   →さらに1足す • 下で跳ね返った後のdyは負(ー)   →さらに1引く

  17. 2002年度ゲームプログラミング 4、背景を描こう • gp2.bmpの中身を書き換えてみよう • ボールの四隅が黒く表示されてしまう   →黒い部分を表示しないようにしよう • 黒を透明にする命令 def_trans(sp,0);

  18. 2002年度ゲームプログラミング 5、床で弾んでいるように • 引力を表現   常に下向きに加速する    → dy = dy + 1; • 跳ね返り係数を表現   跳ね返った瞬間にスピードが減少する    → 跳ね返りのif文で dy を遅く

More Related