Java ゲームプログラム

 


1)
もぐらたたきゲーム

・Mogura.javaはこちら
・MoguraApp.javaはこちら


・MoguraApp.htmlで実行します。

<html>
<body>
<applet code=MoguraApp.class id=MoguraApp width=320 height=240>
</applet>
</body>
</html>


もぐらたたきゲーム 解説

もぐらを叩けば10点。まちがえるとマイナス。

 

 

1)
ブラックジャック、コンソール出力

・Deck.javaはこちら
・Hand.javaはこちら
・Card.javaはこちら
・Dealer.javaはこちら
・Player.javaはこちら

 

・BlackJack.javaは実行

 

 

1)
ブラックジャック、アプレット

プログラムのソースコード
全部で、BlackJackAppクラス、BlackJackクラス、Dealerクラス、Playerクラス、Handクラス、Deckクラス、Cardクラスの7つ。
第1段階では、BlackJackクラスを使用しましたが、今回はBlackJackクラスは使用していない。

解説
乱数を用いて手札を配ることができる。手札の種類・数を管理できるDealerクラスを実装している。
持ち金、掛け金を管理できる。絵札を扱える。Appletを使用した。第1段階(上ブラックジャック)で作ったクラスは利用し、
新たにBlackJackAppクラスを作成した。また、音楽が流れるようにした。 今回はBlackJackクラス

updateメソッドに関して何も指定していないと、アプレットの表示範囲を背景色で塗りつぶされてしまうため、
updateメソッドではrepaintメソッドを呼び出すようにした。
public void update(){
repaint();
}

また、MediaTrackerクラスを使用して、イメージを読み込むまで待つようにした。

・BlackJack.javaはこちら(使用してない)
・BlackJackApp.javaはこちら
・Dealer.javaはこちら
・Player.javaはこちら
・Card.javaはこちら
・Deck.javaはこちら

・Hand.javaはこちら
の6つのクラスで構成される。1つは
使用してない。

・BlackJackApp.htmlは実行

<html>
<body>
<applet code="BlackJackApp.class" width=400 height=320>
</applet>
</body>
</html>


 

 

 

1)
ブロック崩しゲーム

プログラムのソースコード
クラスは全部でModelクラス、Viewクラス、Controlクラス、InfomationクラスViewPanelクラス、Mainクラスの6つから構成される。

 

MVCモデル

 

解説
・ゲームのスタートボタンが押されると、BlockViewクラス内のGame start メソッド内で、スレッドをスタートさせる。
・スレッドがスタートされると、runメソッド内で、ViewクラスのgetViewinfoメソッドを使って、現在の描画するための情報を取得する。
・現在の情報を引数に、ModelクラスのgetNextInfomationメソッドで新しい情報を取得。
・新しい情報を得たら、それを引数に、BlockViewクラスのrepaintViewメソッドで描画命令してます。
・新しい情報を引数に、BlockViewクラスのsetViewInfoメソッドで新しい情報に更新してます。

Modelクラス・・・位置を計算する
Viewクラス・・・キーボード入力を判断
ViewPanelクラス・・・描画処理
Controlクラス・・・クラスの間のやり取りの中継。
Infomationクラス・・・情報格納クラス
Mainクラス・・・メインスレッドクラス



・Modelクラスは、ボール、ラケット、ブロック等の位置をを基に次のボールの位置を計算するクラスです。
・Viewクラスは、目に見える部分のボール、カーソル、ブロック、ボタンの描画。又、キーボード(マウス)からの入力を判断するクラスです。
ViewPanelクラスは、描画のみを行うクラスです。
・ControlクラスはView,Model間のやり取りの中継をするクラスです。(modelに計算指示、Viewに描画命令等)
・Infomationクラスは、ボール、ラケット、ブロック等、の位置情報や幅、高さなどの情報のクラスです。
Mainクラスは、メインスレッドがあるクラス
ViewクラスとModelクラスの間のやり取りをControlクラスが行い、その時の引数はInfomationオブジェクト。

流れ

クラス図

 

反射
1.ラケットの端に当たった時は、反射角が変わるようにしました。
まっすぐ落ちてきたボールがラケットの端に当たった時は、赤色の線のように斜めに跳ね返すようにしました。
斜めに落ちてきたボールがラケットの端に当たった時は、黒色の線の垂直に打ち返すようにしました。

/* ラケットに当たったときの処理 */
if ( by + ballHeight >= ry  &&  by + ballHeight <= ry+raketHeiht && bx + ballWidth >= rx && bx <= rx+raketWidth )
{ラケットに当たった処理}

 



・Blockmain.javaはこちら
・BlockControlThread.javaはこちら
・BlockModel.javaはこちら
・BlockView.javaはこちら
・BlockViewInfo.javaはこちら

・BlockViewPanel.javaはこちら
の6つのクラスで構成される。

Blockmain.javaは実行

 

 

 

 


                                           TOPへ