第4回:ボールを画面内で弾ませよう! (オブジェクトの移動、二次元)

Slides:



Advertisements
Similar presentations
ファーストイヤー・セミナーⅡ 第13回 2次元グラフィックス(1). 2次元グラフィックス Ultra-C では、これまで利用してきた「標準入出力」 以外に「グラフィックス画面」があり、図形などを 表示できる C 言語のグラフィックスには細かな規定がなく、こ れから学ぶ内容が他の環境、システムでは利用でき.
Advertisements

初年次セミナー 第13回 2次元グラフィックス(1).
上手なプレゼンのための ワンポイント・アドバイス
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
初年次セミナー 第14回 2次元グラフィックス(2).
初年次セミナー 第8回 データの入力.
GridLayout オブジェクト(省略)
第3回:ボールを上下に動かそう! (オブジェクトの移動、一次元)
Imageの描画 画像を読み込んで表示すること。 import java.awt.*;が必要。
HSPでのミニゲーム作成 早稲田実業学校PC班 Y氏.
情 報 の 表 現(3) 情報社会とコンピュータ 第10回.
基礎プログラミングおよび演習 第4回 担当:花岡 5階522/520.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
Javaでゲーム  山本拓弥.
2点A(2,4)、B(-3,1)の距離を求めてみよう。
プロセッシング入門3 初歩のプログラミング.
16.3 関数と構造体 構造体ポインタ 地底探査ゲーム
第四回 VB講座 画像とタイマー.
軌跡とジオメトリー表示プログラム CGVIEW(Ver2.2)の改良
発表課題 インターネット上においての色の表現 調査期間:2012年05月~06月 発表日:2012年06月07日
第6章 2重ループ&配列 2重ループと配列をやります.
第3回:ボールを上下に動かそう! (オブジェクトの移動、一次元)
ゲームプログラミング体験演習
3次元での回転表示について.
第四回 ゲーム                 05A1054         前田嵩公.
CGと形状モデリング 授業資料 長井 超慧(東京大学)
C 言語について 補足資料 資料および授業の情報は :
基礎プログラミング演習 第10回.
JAVA GUIプログラミング 第2回 グラフィックスを使っての演習 グラフを描こう.
グラフィックス、その1 色の表示 フォントを変えて文字を表示 直線、四角形、楕円形の描画 円弧の描画 多角形の描画
DirectX勉強会 第5回.
電界中の電子の運動 シミュレータ作成 精密工学科プログラミング基礎 資料.
TCanvas BCB:TCanvasクラスでグラフィックを扱う。 TFormなどもプロパティとして持っている。
プログラミング演習I 2003年5月7日(第4回) 木村巌.
第6回:ラケットを動かそう! (キーボードによる物体の操作)
3次元での回転表示について.
ゲームプログラミング講習  第3章 ゲーム作成 ブロック崩しを作ります ゲームプログラミング講習 第3章 ゲーム作成.
デジタル画像とC言語.
DirectX勉強会 第2回.
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
プロジェクト演習Ⅱ インタラクティブゲーム制作
CGと形状モデリング 授業資料 1,2限: 大竹豊(東京大学) 3,4限: 俵 丈展(理化学研究所)
SystemKOMACO Jw_cad 基本操作(3) Ver.1
第7回放送授業.
第8回放送授業.
アルゴリズムとプログラミング (Algorithms and Programming)
JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.
C#プログラミング実習 第3回.
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
第6回:得点を表示しよう! (文字の表示、乱数)
IchigoJam(イチゴジャム)入門 上田市マルチメディア情報センター.
バネモデルの シミュレータ作成 精密工学科プログラミング基礎 資料.
C言語講座 制御(選択) 2006年 計算技術研究会.
CGプログラミング論 平成28年5月18日 森田 彦.
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
モグラたたき.
スライドの終わりまでテキストが繰り返しスクロールされます • スライドの終わりまでテキストが繰り返しスクロールされます •
3.1 シューティングゲームの当たり判定 当たったら死亡.
サンプル見出し テキスト 1 行目 テキスト 2 行目 テキスト 3 行目 (中級) 図の背後でタイトルを移動させるアニメーション効果
CGと形状モデリング 授業資料 1,2限: 大竹豊(東京大学) 3,4限: 俵 丈展(理化学研究所)
情報処理Ⅱ 2006年10月20日(金).
CGプログラミング論 平成28年5月11日 森田 彦.
第1章 文字の表示と計算 printfと演算子をやります.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
プログラミングの原理 データ構造とプログラミング (第4回).
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
●IchigoJamを動かしてみよう 最初の画面が出る 電源スイッチを 左へ キーボードで 文字を打ってみよう.
PowerPoint の基本操作 情報機器の操作 (e).
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
Presentation transcript:

第4回:ボールを画面内で弾ませよう! (オブジェクトの移動、二次元) 2003年度ゲームプログラミング ゲームプログラミング 第4回:ボールを画面内で弾ませよう!  (オブジェクトの移動、二次元)

物体を上下左右に移動(1) 前回 変数y,dyを使ってボールを縦方向に移動 今回 変数x,dxを使ってボールを横方向にも移動 2003年度ゲームプログラミング 物体を上下左右に移動(1) 前回   変数y,dyを使ってボールを縦方向に移動 今回   変数x,dxを使ってボールを横方向にも移動    x ボールの横の位置を示す変数   dx ボールがどれだけ横に移動するか、      変化する量を示す変数

物体を上下左右に移動(2) メソッドの最初で宣言、使う前に初期化 int x, dx; x=1;dx=1; xの値をdxだけ変化させる 2003年度ゲームプログラミング 物体を上下左右に移動(2) メソッドの最初で宣言、使う前に初期化    int x, dx;    x=1;dx=1; xの値をdxだけ変化させる    x=x+dx; 跳ね返り処理    if(x>120){ dx= -dx; } //右の壁 xをつかって表示     g.drawImage(img,x,y,…);

枠の表示 塗りつぶさない四角形を描くメソッドを使う。 g.drawRect(x,y,w,h); (x,y) 左上の座標 (w+1) 幅 2003年度ゲームプログラミング 枠の表示 塗りつぶさない四角形を描くメソッドを使う。  g.drawRect(x,y,w,h);   (x,y) 左上の座標   (w+1) 幅    (h+1) 高さ  g.setColor(0x000000);//描画色を黒に  g.drawRect(0,0,131,143); //枠を描く

枠の中でボールを動かそう 枠のところで跳ね返るように、 跳ね返りの条件を変更 枠の幅は1 →判定を1づつ内側に 2003年度ゲームプログラミング 枠の中でボールを動かそう 枠のところで跳ね返るように、   跳ね返りの条件を変更 枠の幅は1    →判定を1づつ内側に

残像を表示させてチェック 背景の表示を切って、残像を出してみよう 壁と残像に隙間があく →当たり判定が手前すぎる 壁にボールがめり込む 2003年度ゲームプログラミング 残像を表示させてチェック 背景の表示を切って、残像を出してみよう 壁と残像に隙間があく    →当たり判定が手前すぎる 壁にボールがめり込む    →当たり判定が奥すぎる、または、    →壁際まで戻す処理を入れていない

枠の色を変えよう 描画色はg.setColor()で変更する g.setColor(0xRRGGBB); 2003年度ゲームプログラミング 枠の色を変えよう 描画色はg.setColor()で変更する    g.setColor(0xRRGGBB); RR,GG,BBに赤(Red)、緑(Green)、青(Blue)の強さを16進数で入れる 00(最小) → 80(中くらい) → FF(最大)

枠の色を変えよう g.setColor(0xFF0000); →赤い要素のみ→赤 g.setColor(0x00FF00); 2003年度ゲームプログラミング 枠の色を変えよう g.setColor(0xFF0000); →赤い要素のみ→赤 g.setColor(0x00FF00); →緑の要素のみ→緑 g.setColor(0xFF00FF); →赤い光と青の光のブレンド→紫

枠に当たるたびに色を変える 枠に何回当たったかを数えて、当たった回数で色を変える →何回当たったかを保存する変数が必要 宣言と初期化 2003年度ゲームプログラミング 枠に当たるたびに色を変える 枠に何回当たったかを数えて、当たった回数で色を変える   →何回当たったかを保存する変数が必要 宣言と初期化   int point;   point=0; 枠に当たった時に回数を増やす   point++;

回数に応じて色を変える 演算子% A%B AをBで割った余り (0~B-1)の範囲の値になる 2003年度ゲームプログラミング 回数に応じて色を変える 演算子%   A%B  AをBで割った余り         (0~B-1)の範囲の値になる if(point%3==0) g.setColor(色1); if(point%3==1) g.setColor(色2); if(point%3==2) g.setColor(色3); g.drawRect();//枠を描く

ボールが当たると消える的(1) ボールが当たったら消える(=表示しない) →表示するかしないかの判断が必要 →的の有無を示すのに変数を使用 2003年度ゲームプログラミング ボールが当たると消える的(1) ボールが当たったら消える(=表示しない)   →表示するかしないかの判断が必要   →的の有無を示すのに変数を使用   値が1の時:的がある(的を表示)   値が0の時:的がない(的を表示しない) このような何かの有無、可否を示す変数を   フラッグと言う

ボールが当たると消える的(2) 変数の宣言 int blockflag; 変数の初期化 →最初は的がある状態なので、初期値は1 2003年度ゲームプログラミング ボールが当たると消える的(2) 変数の宣言    int blockflag; 変数の初期化   →最初は的がある状態なので、初期値は1    blockflag=1; 的の表示   →blockflagが1の時のみ表示する      if (blockflag==1) g.drawImage(…);

ボールが当たると消える的(3) ボールが的に当たったら、ボールを消す →blockflagを0にする if(ボールと的が重なっている){ 2003年度ゲームプログラミング ボールが当たると消える的(3) ボールが的に当たったら、ボールを消す   →blockflagを0にする   if(ボールと的が重なっている){     blockflag=0;   } ボールと的が重なったかは、座標を比較して判断。

ボールが当たると消える的(4) ボール、的の大きさは縦12、横12とする 2003年度ゲームプログラミング ボールが当たると消える的(4) ボール、的の大きさは縦12、横12とする ボールと的が接触している時、ボールと的のx座標の差、y座標の差がそれぞれ12未満   →引き算の結果が-12と12の間     y-50 > -12 かつ y-50 < 12 かつ     x-50 > -12 かつ x-50 < 12    (的を(50,50)に表示した場合) 複数の条件を両方とも満たす必要がある時は「&&」でつなぐ