モグラたたき.

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
Advertisements

独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
サイボウズ デヂエ 8 新機能ご説明資料 サイボウズ株式会社.
プログラマのレベルアップ.
HSPでのミニゲーム作成 早稲田実業学校PC班 Y氏.
~手続き指向からオブジェクト指向へ(Ⅰ)~
Java言語による シューティングゲーム作成
第5回 iPhoneアプリ開発勉強会 Objective-C 「継承とクラス」
アルゴリズムとデータ構造1 2007年6月12日
アルゴリズムとプログラミング (Algorithms and Programming)
第4回:ボールを画面内で弾ませよう! (オブジェクトの移動、二次元)
Handel-Cによる       エアホッケー.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
第3回:ボールを上下に動かそう! (オブジェクトの移動、一次元)
AR概要とNyARToolkitについて
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
ピカチュウによる オブジェクト指向入門 (新版)
情報 第2回:状態遷移 その2.
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
第四回 ゲーム                 05A1054         前田嵩公.
Handel-Cを用いた ちょっとレトロ な 「よけゲー」 の設計
迷宮師 コードレビュー チームカテキン.
~手続き指向からオブジェクト指向へ[Ⅱ]~
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
実例で学ぶプログラミング VBAを用いて簡単なゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
ソフトウェア工学 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗黙的に型付けされる構造体の Java言語への導入
シューティングゲーム.
プログラミング言語入門.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
第6回:ラケットを動かそう! (キーボードによる物体の操作)
ゲームプログラミング講習  第3章 ゲーム作成 ブロック崩しを作ります ゲームプログラミング講習 第3章 ゲーム作成.
C#言語ソースプログラムの原型 C言語 C#言語 Hello World! Hello Students! オマジナイ! 適当なクラス名
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
プロジェクト演習Ⅱ インタラクティブゲーム制作
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
第8回放送授業.
アルゴリズムとプログラミング (Algorithms and Programming)
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
オブジェクト指向プログラミング クラス 継承
プロジェクト演習 知能情報学部 新田直也.
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
ゲームプログラミング体験演習 :30-14:15 九州産業大学 情報科学部 米元.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
サブゼミ第7回 実装編① オブジェクト型とキャスト.
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
第6回:得点を表示しよう! (文字の表示、乱数)
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
3.1 シューティングゲームの当たり判定 当たったら死亡.
FPS(続き).
C#プログラミング実習 第1回.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
Presentation transcript:

モグラたたき

企画:1 画面のラフ・スケッチ ※ラフ: rough だいたい 640px 360px

企画:2 ゲームのメカニクス(機構) 制限時間がある モグラがランダムに出現する ハンマーでモグラをたたくと 得点が入る モグラがランダムに移動する

企画:3 今回実装しないアイデア 穴が固定された場所にあり、モグラは穴のところに 出現する たたいた効果を表示する 穴が固定された場所にあり、モグラは穴のところに 出現する たたいた効果を表示する たたかないまま、ある時間経過すると、モグラが別 な場所に移動する

プロトタイプ開発 いきなり本気で作らないで、試作してみる プロトタイプのメカニクス 円がランダムな場所に出る ※prototype 試作品 いきなり本気で作らないで、試作してみる プロトタイプのメカニクス 円がランダムな場所に出る 円をクリックすると消えて、ランダムな場所に出る

ランダムな位置に出現 乱数random()を使用

接触判定 円形の当たり範囲 簡単にするため 円の中心との距離で判定 距離はdist()で求められる

プロダクト開発 ※product 製品 プロトタイプをベースに開発 プロトタイプに追加するもの 画像 得点 制限時間

画像の用意 ステージ、モグラ、ハンマーを用意

得点 得点を表す変数を用意 得点を表示 たたいたら、値を増やす

制限時間 現在の時間と制限時間を表す変数を用意 残り時間を表示 制限時間を越えたら、ゲームを止める 残り時間 = 制限時間 - 現在の時間 「GAME OVER」と表示してもいいかも

わかりにくいプログラムとは 「木を見て、森を見ない」 プログラムを素直に書くと、たくさんの木が並んでいるよ うなものになる プログラムを素直に書くと、たくさんの木が並んでいるよ うなものになる 一本一本の木を見るように、最初から最後まで読まない と、何をしているのかわからない そして、人間は、一度にたくさん頭に入らないので、迷う

プログラムをわかりやすくするには 一部分を読んでも、わかるようにする 具体的には、「森」と「木」に分ける 一度にたくさん頭に入らない「人間にやさしい」 具体的には、「森」と「木」に分ける 「森」には、大雑把な流れが書いてある 「木」には、それぞれの木のことが書いてある

プログラムを部品にする オブジェクト指向 オブジェクト指向 今回、具体的には プログラムを部品として使う 「ハンマー」「モグラ」などのオブジェクトを作る メイン・プログラムには、それを使ったシナリオを書く

Javaのオブジェクト指向 クラス(設計図)を宣言 インスタンス(実体)を、クラスから作っ て使う フィールド(データ)とメソッド(操作)を用意 インスタンス(実体)を、クラスから作っ て使う インスタンスは、オブジェクト

ハンマー・クラスの作成 フィールド: データ 画像 x、y座標 メソッド: 操作 移動 表示

ハンマー・クラスのコンストラクタ 初期化するときに行いたいことをコン ストラクタに書く 具体的には 画像の設定

カプセル化 カプセル化とは 今回は、カプセル化は行わない 本当は、外部から行っていい操作だけを見せて、そうでないも のは隠すことが望ましい 本当は、外部から行っていい操作だけを見せて、そうでないも のは隠すことが望ましい private、protected、publicなどの修飾子の活用 一方で、プログラムが長くなる 今回は、カプセル化は行わない 開発時間と安全性のトレードオフ ※tradeoff: 代償

DRY: Don't Repeat Yourself 同じことを何度も書かかない ハンマーとモグラのプログラムは、似 ている 親クラスを作って、共通の部分を吸収 する

スプライト・クラス ゲーム開発では、キャラクターなどの画像オ ブジェクトはスプライトと呼ばれている クラスの設計 フィールド メソッド ※Sprite: 妖精 ゲーム開発では、キャラクターなどの画像オ ブジェクトはスプライトと呼ばれている クラスの設計 フィールド 画像、x、y座標 メソッド 移動、表示、接触判定

ステージ・クラスの作成 メイン・プログラムの整理 継承の限界 メイン・プログラムがシナリオだけに見えるように、ステージ・ク ラスを作って吸収 メイン・プログラムがシナリオだけに見えるように、ステージ・ク ラスを作って吸収 継承の限界 ステージ・クラスもスプライト・クラスを継承させる あんまり共通なところがないので、継承しなくてもいいかも