2002
This presentation is the property of its rightful owner.
Sponsored Links
1 / 18

ゲームプログラミング PowerPoint PPT Presentation


  • 42 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

ゲームプログラミング

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


6009174

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

ゲームプログラミング

第3回:ボールを上下に動かそう!

 (オブジェクトの移動、一次元)


6009174

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

物体を動かすしくみ

  • 少しずつ座標をずらして表示すると、

      動いているように見える

  • 座標をずらして表示する為に

      変数を使う。


6009174

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

変数(1)

  • 数値を入れておくための箱

      整数(int)、少数(float,double)、

      文字列(char)などの種類(型)がある。

  • 使用する前に型の宣言が必要

    int x; (整数型の変数xの宣言)

  • 宣言は関数の最初に(javaと違う点)


6009174

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

変数(2)

  • 変数の数値を「値」と呼ぶ

  • 値の入れかた

    y = 100;

    などのように、= の右側に入れる数値を書く。

  • 型の宣言と値の設定を初期値を同時に行う

      こともできる

    int y = 100;

  • 初めて使う前に値(初期値)を入れておこう


6009174

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

変数(3)

  • 値の使い方

      関数の引数に

    sp_set ( sp , 0 , 100 , y , 1 );

      式の右辺に

    num = y ;   (y の値をnumに入れる)

      条件に

    if ( y < 0 )   (もしy が0未満なら)


6009174

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

1、ボールを動かそう

  • set_spの y 座標を変数 y を使って指定

  • whileの繰り返し(ループ)の中で

    y の値を少しずつ変えていく

    y = y + 1 ; (yに1を足す)

  • 関数の最初で y を宣言することが必要


6009174

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

残像を消そう

  • ボールの残像が出る理由

      →前に描いたボールが残っている

  • ボールを描く前に毎回画面を

      真っ黒に塗りつぶそう

  • 黒いbitmapを表示して塗りつぶす


6009174

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

真っ黒なビットマップの表示

  • 前回の雛型以外の4行(ボール表示の準備と、ボール表示)を流用して、

    真っ黒なbitmap(gp2.bmp)を表示させよう。

    int bg;

    bg=load_bmp("gp2.bmp",,,);

    def_char(bg,,,);

    sp_set(bg,,,);


6009174

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

ひとやすみ

  • 皆が残像なくボールを動かせるように

      なるまで、しばし休憩。

  • 元気のある人は先に進んでみましょう


6009174

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

反復運動(1)

  • 上から下へ、下から上へを繰り返す。

  • 下向き(↓)に動かす処理

    y = y + 1;

  • 上向き(↑)に動かす処理

    y = y - 1;

    y = y + (-1);  とも書ける


6009174

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

反復運動(2)

  • y が変化する量も変数にしてみよう。

    int dy;yが変化する量

    y = y + dy ; yにdyを足す

  • dy が1の時、yが1づつ増える

      →ボールが下に動く

  • dy が-1の時、yが1づつ減る

      →ボールが上に動く


6009174

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

反復運動(3)

  • ボールが下まで来たら、dyの符号を反転

        dy = -dy; (1だったら-1になる)

  • ボールが上まで来たら、dyの符号を反転

        dy = -dy; (-1だったら1になる)

  • 「○○だったら××する」という処理

      にはif文を使う


6009174

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

if 文(条件分岐)

  • 「条件」を満たす時のみ「命令」を実行する。

    if (条件) 命令;

  • 実行する「命令」が複数ある場合は{}でくくる。

    if (条件){

       命令1;

       命令2;

    }


6009174

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以外


6009174

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

2、ボールを反復させよう

  • 以下のような構造になります

    while ( … ) {

    y = y + dy ;

    yが0以下なら dy = - dy;

    yが448以上なら dy = - dy;

        ボール表示;

    }


6009174

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

3、跳ね返るとスピードUP

  • yの変化の量を増やすとスピードUP

      →dyの絶対値を大きくしていく

  • 跳ね返った時のみ

      →if文{}の中にスピードUPの命令を足す

  • 上で跳ね返った後のdyは正(+)

      →さらに1足す

  • 下で跳ね返った後のdyは負(ー)

      →さらに1引く


6009174

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

4、背景を描こう

  • gp2.bmpの中身を書き換えてみよう

  • ボールの四隅が黒く表示されてしまう

      →黒い部分を表示しないようにしよう

  • 黒を透明にする命令

    def_trans(sp,0);


6009174

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

5、床で弾んでいるように

  • 引力を表現

      常に下向きに加速する

       → dy = dy + 1;

  • 跳ね返り係数を表現

      跳ね返った瞬間にスピードが減少する

       → 跳ね返りのif文で dy を遅く


  • Login