第6回:得点を表示しよう! (文字の表示、乱数)

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

1 例題 ex3b ( 配列 ) 科学科プログラミング. 2 例題 : ex3b  以下の 3 つについて例題を進める ステップ 1 :配列 ステップ 2 :最小と最大 ステップ 3 :文字型の配列.
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
エクセル(1)の目次 起動法、ブック、シート、セル ブックの開き方 エクセル画面 マウスポインターの種類 シート数の調節 データの入力法
プログラムのパタン演習 解説.
第3回:ボールを上下に動かそう! (オブジェクトの移動、一次元)
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
情報理論2 注意!! 11月26日(火)は休講 (小林が学会出張のため) 湘南工科大学情報工学科 准教授 小林 学 湘南工科大学
HSPでのミニゲーム作成 早稲田実業学校PC班 Y氏.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
演習00-0 “Hello,world![改行]”を表示するプログラムを作成せよ. 1 1.
アルゴリズムとプログラミング (Algorithms and Programming)
エクセル(1)の目次 起動法、ブック、シート、セル ブックの開き方 エクセル画面 マウスポインターの種類 シート数の調節 データの入力法
第四回 VB講座 画像とタイマー.
基礎プログラミングおよび演習 第8回.
文字配列の課題1 解説 /* a */ #include <stdio.h> main( ) { int i;
第4回:ボールを画面内で弾ませよう! (オブジェクトの移動、二次元)
C言語 配列 2016年 吉田研究室.
第3回 スプライトと音楽 05A1030 佐々木和也.
第6章 2重ループ&配列 2重ループと配列をやります.
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
第3回:ボールを上下に動かそう! (オブジェクトの移動、一次元)
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
コンピュータと情報 第15回 Excelの使い方 その4.
基礎プログラミング演習 第7回 繰り返し.
コンピュータと情報 第14回 Excelの使い方 その4.
第7回 条件による繰り返し.
Handel-Cを用いた ちょっとレトロ な 「よけゲー」 の設計
CGと形状モデリング 授業資料 長井 超慧(東京大学)
C 言語について 補足資料 資料および授業の情報は :
実例で学ぶプログラミング VBAを用いて簡単なゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング序論 2. n人のインディアン.
今までの練習問題の復習.
前回の練習問題.
第7回 条件による繰り返し.
第6回:ラケットを動かそう! (キーボードによる物体の操作)
ゲームプログラミング講習  第3章 ゲーム作成 ブロック崩しを作ります ゲームプログラミング講習 第3章 ゲーム作成.
デジタル画像とC言語.
高度プログラミング演習 (05).
プロジェクト演習Ⅱ インタラクティブゲーム制作
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
疑似乱数, モンテカルロ法によるシミュレーション
プログラムの基本構造と 構造化チャート(PAD)
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
プログラミングⅠ 平成31年1月7日 森田 彦.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
アルゴリズムとプログラミング (Algorithms and Programming)
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
第6回レポート解説 条件1 条件2 条件3 月の入力 月、日、曜日の表示 日の入力 曜日の入力
アルゴリズムとプログラミング (Algorithms and Programming)
復習 if ~ 選択制御文(条件分岐) カッコが必要 true 条件 false 真(true)なら この中が aを2倍する 実行される
モグラたたき.
Cプログラミング演習 ニュートン法による方程式の求解.
Q q 情報セキュリティ 第8回:2004年5月28日(金) の補足 q q.
3.1 シューティングゲームの当たり判定 当たったら死亡.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
湘南工科大学 2013年10月22日 情報理論2 湘南工科大学情報工学科 准教授 小林 学.
プログラミング入門2 第5回 配列 変数宣言、初期化について
CGと形状モデリング 授業資料 1,2限: 大竹豊(東京大学) 3,4限: 俵 丈展(理化学研究所)
情報処理Ⅱ 小テスト 2005年2月1日(火).
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
プログラミング演習I 補講用課題
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

第6回:得点を表示しよう! (文字の表示、乱数) 2006年度ゲームプログラミング ゲームプログラミング 第6回:得点を表示しよう!  (文字の表示、乱数)

文字の表示 メソッドdrawStringを使います。 gc.drawString(文字列, x, y); 2006年度ゲームプログラミング 文字の表示 メソッドdrawStringを使います。  gc.drawString(文字列, x, y);  文字列:表示したい文字を“ ”で囲います。 画面左上に「A」という文字を表示させる gc.drawString(“A”,0,0);

GAME OVERと表示 ゲームがストップしている状態→gameState==1の時 2006年度ゲームプログラミング GAME OVERと表示 ゲームがストップしている状態→gameState==1の時 paintメソッドの中で、gameStateが1の時のみGAME OVERと表示する   if(gameState==1){ GAMEOVERと表示   }

バーに当たった回数を数える 回数の保存には、変数を使う。int point; 初期値は0 point = 0; 2006年度ゲームプログラミング バーに当たった回数を数える 回数の保存には、変数を使う。int point; 初期値は0    point = 0; 画面下でバーで跳ね返した時に、数を加算    if (バーに当たったら){      跳ね返りの処理      point++; // p=p+1; pを1増やす    }

数字の表示 メソッドdrawStringを使います。 2006年度ゲームプログラミング 数字の表示 メソッドdrawStringを使います。  文字列の指定で「文字列+変数」という形にすると、文字列に続いて変数の値が表示されます。(変数部分は“ ”ではくくりません) gc.drawString(“score:”+point, 0,0); →pointが0の時はscore:0と表示 →pointが10の時はscore:10と表示

乱数を使おう メソッドrand(int min,int max)を呼ぶと、 最小値min~最大値maxのうち、無作為な値が返る。 2006年度ゲームプログラミング 乱数を使おう メソッドrand(int min,int max)を呼ぶと、 最小値min~最大値maxのうち、無作為な値が返る。 何の値が返ってくるかは、実行してみるまで不明。実行するたびに値が変わる  (だから乱数と呼ぶ)

乱反射させよう 乱反射→進む方向をランダム(無作為)に 跳ね返り処理の時に進む方向、つまり dx,dyの値をランダムに指定。 2006年度ゲームプログラミング 乱反射させよう 乱反射→進む方向をランダム(無作為)に 跳ね返り処理の時に進む方向、つまり  dx,dyの値をランダムに指定。 (例:上壁の処理) dx = gc.rand(1,2); →dx が1か2に dy = gc.rand(-1,1); →dy が-1か 0 か 1に dx も dy も0にすると停まってしまうので注意

スコアをランダムで増やそう point=point+1;ではなく、増える値を乱数で指定 →point=point+乱数 範囲は1~10; 2006年度ゲームプログラミング スコアをランダムで増やそう point=point+1;ではなく、増える値を乱数で指定   →point=point+乱数 範囲は1~10;   → gc.rand(1,10);

複数の的を表示しよう 配列変数を使用。(変数の集まり) 配列の宣言 int a[]=new int[3]; →a[0],a[1],a[2]の 2006年度ゲームプログラミング 複数の的を表示しよう 配列変数を使用。(変数の集まり) 配列の宣言   int a[]=new int[3];   →a[0],a[1],a[2]の    3個の変数が使えるようになる。   ※ a[3]は使えないので注意

複数の的の宣言 宣言 static final int BLOCK_NUM = 3; //定数化しておくと数を増減しやすい 2006年度ゲームプログラミング 複数の的の宣言 宣言   static final int BLOCK_NUM = 3;   //定数化しておくと数を増減しやすい   int block_x[]=new int[BLOCK_NUM];   int block_y[]=new int[BLOCK_NUM];   int blockflag[]=new int[BLOCK_NUM];   //座標(x,y)と有無を示す変数を   //BLOCK_NUMの数だけ用意する

For文で配列を効率的に使う for文を使って繰り返し for(int i=0;i<繰り返す回数;i++){ 繰り返す内容。 } 2006年度ゲームプログラミング For文で配列を効率的に使う for文を使って繰り返し   for(int i=0;i<繰り返す回数;i++){    繰り返す内容。   } 指定した回数繰り返され、かつ、  1回繰り返すごとにiが1づつ大きくなる →配列を[i]で指定することで、全ての的に同じ処理を行うことが可能

複数の的の初期化 for文を使って繰り返し for(int i=0;i<3;i++){ 2006年度ゲームプログラミング 複数の的の初期化 for文を使って繰り返し   for(int i=0;i<3;i++){    blockflag[i]=1;//開始時は的がある    block_x[i]= i *20 + 20;    //x座標を20づつずらす。    block_y[i]= 30;//高さは同じ   } ※座標が全く同じだと的が重なって複数にならないので注意(乱数を使っても良い)

複数の的を表示 for文を使って繰り返し for(int i=0;i<3;i++){ if(blockflag[i]==1){ 2006年度ゲームプログラミング 複数の的を表示 for文を使って繰り返し   for(int i=0;i<3;i++){    if(blockflag[i]==1){      i番目の的を書く;      }   } →(block_x[i],block_y[i])に描画

複数の的のあたり判定(1) for文を使って繰り返し for(int i=0;i<3;i++){ if(i番目の的が存在していて、かつ 2006年度ゲームプログラミング 複数の的のあたり判定(1) for文を使って繰り返し   for(int i=0;i<3;i++){    if(i番目の的が存在していて、かつ     i番目の的とボールが接触していたら){      blockflag[i]=0;//的を消す      point++;//得点を入れる    }   }

複数の的のあたり判定(2) ボールと(30,50)にある的が接触する条件 →的(30,50)とx,y座標の差が12以内 2006年度ゲームプログラミング 複数の的のあたり判定(2) ボールと(30,50)にある的が接触する条件   →的(30,50)とx,y座標の差が12以内   x - 30 >= -12 && x - 30 <= 12 &&   y - 50 >= -12 && y - 50 <= 12 ボールとi番目の的が接触する条件   →(x,y)と(block_x[i],block_y[i])を比べる x-block_x[i] >= -12 && x-block_x[i] <= 12 && y-block_y[i] >= -12 && y-block_y[i] >= 12