第3回:ボールを上下に動かそう! (オブジェクトの移動、一次元)

Slides:



Advertisements
Similar presentations
画像処理・実習 第十四回:パターン認識 東海大学 情報理工学部 情報メディア学科 濱本和彦. 今回の内容 5. パターン認識 5.1 マッチングの原理 5.2 テンプレートマッチング 実習 相互相関とテンプレートマッチング.
Advertisements

ファーストイヤー・セミナーⅡ 第13回 2次元グラフィックス(1). 2次元グラフィックス Ultra-C では、これまで利用してきた「標準入出力」 以外に「グラフィックス画面」があり、図形などを 表示できる C 言語のグラフィックスには細かな規定がなく、こ れから学ぶ内容が他の環境、システムでは利用でき.
初年次セミナー 第13回 2次元グラフィックス(1).
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
初年次セミナー 第14回 2次元グラフィックス(2).
初年次セミナー 第8回 データの入力.
エクセル(7)の目次 関数の書式 関数ウィザードの使い方 四捨五入/切り上げ/切り捨て IF関数 問題(1) 問題(2) 問題(3)
第3回:ボールを上下に動かそう! (オブジェクトの移動、一次元)
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
初年次セミナー 第4回 整数と実数の取り扱い.
基礎プログラミングおよび演習 第4回 担当:花岡 5階522/520.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
6/26 前回復習 for文、while文による繰り返し計算
第四回 VB講座 画像とタイマー.
第4回:ボールを画面内で弾ませよう! (オブジェクトの移動、二次元)
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
情報 第2回:状態遷移 その2.
(Wed) Edited by KON IT講習会 一太郎編.
第7回 条件による繰り返し.
情報基礎及び演習 プログラミング基礎① 電気・佐藤亮一.
ホームページ作成・更新講座 夏のコンピュータ学習会 画像
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
基礎プログラミング演習 第10回.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
JAVA GUIプログラミング 第2回 グラフィックスを使っての演習 グラフを描こう.
グラフィックス、その1 色の表示 フォントを変えて文字を表示 直線、四角形、楕円形の描画 円弧の描画 多角形の描画
行列による画像処理 デジタル表現論 担当者:劉 雪峰 2017年6月1日.
プログラミング応用 printfと変数.
プログラミング入門 電卓を作ろう・パートIV!!.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング演習I 2003年5月7日(第4回) 木村巌.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
関数の書式 ● SUM関数、AVARAGE関数など代表的ないくつかの関数の書式(数式の構文)は、下記のようなものである。 =関数名(引数1,引数2,引数3,・・・・・) ●引数(入力データ)は、数値で入力しても、セル名で指定してもよい。 例: =SUM(A1:A10,B21:B30,C31:C40)
第7回 条件による繰り返し.
第6回:ラケットを動かそう! (キーボードによる物体の操作)
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
デジタル画像とC言語.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
プロジェクト演習Ⅱ インタラクティブゲーム制作
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
C言語 はじめに 2016年 吉田研究室.
統計ソフトウエアRの基礎.
基礎プログラミング演習 第6回.
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
第6回:得点を表示しよう! (文字の表示、乱数)
ウェブデザイン演習 第6回.
復習 if ~ 選択制御文(条件分岐) カッコが必要 true 条件 false 真(true)なら この中が aを2倍する 実行される
C言語講座 制御(選択) 2006年 計算技術研究会.
精密工学科プログラミング基礎 第7回資料 (11/27実施)
標準入出力、変数、演算子、エスケープシーケンス
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
情報処理Ⅱ 2005年11月25日(金).
プログラミング1 プログラミング演習I 第2回.
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
情報処理Ⅱ 小テスト 2005年2月1日(火).
第2章 数値の入力と変数 scanfと変数をやります.
知能情報工学演習I 第9回(後半第3回) 課題の回答
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
情報処理Ⅱ 2006年10月20日(金).
C言語講座 四則演算  if ,  switch 制御文.
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
第1章 文字の表示と計算 printfと演算子をやります.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

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

新しいプロジェクトを作ろう これからは課題ごとにプロジェクトを作って作業します 2005年度ゲームプログラミング 新しいプロジェクトを作ろう これからは課題ごとにプロジェクトを作って作業します 1、コンパイル支援ツールの「file→newproject」で新しいプロジェクトを作成します。 2、srcにプログラムを、resに画像ファイルを入れます。(testプロジェクトからコピー) 3、srcの中の*.javaファイルは全てコンパイルの対象になるので、game.javaのバックアップを別識別子または別フォルダで取れば、game.javaのみを変えて進める事も出来ます。

プログラムの流れ <基本的な流れ> gameCanvas() <割り込み処理> ↓ keyPressed() 2005年度ゲームプログラミング プログラムの流れ <基本的な流れ> gameCanvas()    ↓ updateGame() ←←←    ↓          ↑ drawGame()      ↑ 100ミリ秒待つ →→→↑ <割り込み処理>    keyPressed()

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

変数(1) 数値を入れておくための箱 整数(int)、少数(float,double)、 文字列(char)などの種類(型)がある。 2005年度ゲームプログラミング 変数(1) 数値を入れておくための箱   整数(int)、少数(float,double)、   文字列(char)などの種類(型)がある。 使用する前に型の宣言が必要   int x; (整数型の変数xの宣言) 宣言の場所によって、影響範囲が変わる。

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

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

1、ボールを動かそう drawImageの y 座標を変数 y を使って指定 updateGame()の中で y の値を少しずつ変えていく 2005年度ゲームプログラミング 1、ボールを動かそう drawImageの y 座標を変数 y を使って指定 updateGame()の中で y の値を少しずつ変えていく    y = y + 1 ; (yに1を足す) クラスの最初で y を宣言することが必要

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

白い四角形の表示 色指定。 gc.setColor(0xFFFFFF);//白 塗りつぶし四角形 gc.fillRect(x,y,w,h); 2005年度ゲームプログラミング 白い四角形の表示 色指定。   gc.setColor(0xFFFFFF);//白 塗りつぶし四角形   gc.fillRect(x,y,w,h); (x,y)左上の座標、wは幅、hは高さ   gc.fillRect(0,0,144,147);     (画面一杯の四角形)

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

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

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

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

様々な条件 if(A==B) AがBと等しい if(A>B) AがBより大きい if(A<B) AがBより小さい 2005年度ゲームプログラミング 様々な条件 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以外

2、ボールを反復させよう 以下のような構造になります updateGame() { y = y + dy ; 2005年度ゲームプログラミング 2、ボールを反復させよう 以下のような構造になります   updateGame() {     y = y + dy ;     yが0以下なら dy = - dy;     yが132以上なら dy = - dy; }

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

4、背景を描こう 白く塗りつぶす代わりに画面と同じサイズの画像を表示してみよう。 画面サイズは縦147、横144 2005年度ゲームプログラミング 4、背景を描こう 白く塗りつぶす代わりに画面と同じサイズの画像を表示してみよう。 画面サイズは縦147、横144 表示の方法は、ボールの表示と同じ   →宣言、読み込み、表示の3ステップ

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