ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Javaの課題丸投げコミュのJAVAでゲームを・・・

  • mixiチェック
  • このエントリーをはてなブックマークに追加
誰か下のクラスとインターフェイスを継承してゲームを作っていただけませんでしょうか?
参考にしたいのでよろしくお願いします。

継承するクラス
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
//import java.net.*;
//import java.util.*;
//import javax.accessibility.*;

abstract public class BaseApplet extends Applet
{

//*******************************************************************************
// 初期化のメソッド 自分の目的に応じた世界を設定するように継承先で上書きが必要
//*******************************************************************************

abstract public void init();//<<自分のWorldを設定するように継承先で上書きすること

//*******************************************************************************
// 以下は継承先で上書き不可
//

/*--------------------------------------------------------------
* (1) 表示対象のWorldの設定やメソッド呼び出しなど
* Worldを設定するときWorldのinitを呼び出す
* 設定済みの既存Worldがある場合は 既存Worldの設定を解除して新Worldを設定する
* 設定解除するときWorldのdestroyを呼び出す
-----------------------------------------------------------------*/
protected World world=null;

//Worldの設定(再設定可)
public final void setWorld(World world)
{
if(this.world==world)return;
if(this.world!=null){
this.world.stop();
this.world.destroy();
}
this.world=world;
if(this.world!=null)this.world.init();
}
//Worldの取得
public final World getWorld()
{
return world;
}
public final void start()
{
super.start();
world.start();
}
public final void stop()
{
world.stop();
super.stop();
}
public final void destroy()
{
setWorld(null);
super.destroy();
}

/*--------------------------------------------------------------
* (2)ダブルバッファリング
* 画面のちらつき防止の為に
* 裏面に画像を完成してからいっきに表示面にコピーする技法を使う
-----------------------------------------------------------------*/
private Image bufferImage=null;//裏画面
private Graphics bufferImageGraphics=null;//裏画面用の絵筆
public final void update(Graphics g)
{
//裏画面が無かったり、表画面と大きさが異なる場合は裏画面を作り直す
int w=getWidth();//表画面の幅
int h=getHeight();//表画面の高さ
if(bufferImage==null || w!=bufferImage.getWidth(this) || h!=bufferImage.getHeight(this)){
bufferImage=createImage(w,h);
bufferImageGraphics=bufferImage.getGraphics();
}

//裏画面を背景色で塗りつぶす
Color back=getBackground();
if(back!=null){ //背景色が指定されていれば
bufferImageGraphics.setColor(getBackground());//絵筆の色を背景色にし
bufferImageGraphics.fillRect(0,0,w,h);//塗りつぶす
}
bufferImageGraphics.setColor(getForeground());//絵筆の色を規定値に戻す

//裏画面に描画
paint(bufferImageGraphics);//ここで下のpaintを呼ぶ

//裏画面を表画面にコピー
g.drawImage(bufferImage, 0, 0, this);
}

/*--------------------------------------------------------------
* (3)worldの描画
* worldの描画はworldに任せる為に
* worldに対してgを使って自身を描画するように依頼している
* (上のupdateから呼ばれるのでgはbufferImageGraphicsである)
-----------------------------------------------------------------*/
public final void paint(Graphics g)
{
world.paint(g);
}
}



これより下、インターフェイス
import java.awt.*;

/*
BaseAppletで見ることのできる世界のインターフェイス

自分の作った世界でこれを実装すればBaseAppletで見ることができる
*/

public interface World
{
public void init();

public void start();//init後からdestroy前の間 複数回呼び出し

public void stop();

public void destroy();

public void paint(Graphics g);
}

コメント(2)

赤い■を書くゲームを作りました!

==========MyWorld.java==========
import java.awt.Color;
import java.awt.Graphics;

public class MyWorld implements World {

@Override
public void destroy() {
}

@Override
public void init() {
}

@Override
public void paint(Graphics g) {
g.setColor(Color.RED);
g.fillRect(10, 10, 10, 10);
}

@Override
public void start() {
}

@Override
public void stop() {
}

}


==========MyApplet.java==========
public class MyApplet extends BaseApplet {

@Override
public void init() {
world = new MyWorld();
}

}

いしかわさん

ありがとうございます。とても参考になります。

でも、もっと複雑そうなゲーム(もぐらたたきやテトリスのようなもの)を作らないといけないらしいんです。

それでも本当にありがとうございました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Javaの課題丸投げ 更新情報

Javaの課題丸投げのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング