クリックでダウンロード

Javaでゲーム
11074173
山本拓弥
Javaとは
• オブジェクト指向のプログラミング言語のひと
つ。
• さまざまなプラットフォームで実行可能なのが
特徴。
• 携帯電話のアプリケーションは、ほとんどこの
言語で書かれてある。
Windows
Mac OS
Windows
Mac OS
○
×
○
○
プログラム
他の言語
プログラム
Java
ゲームの作成
Javaを用いて、シューティングゲームを作成した。
ソースコードは、以下のHPのものを参考にさせ
ていただいた。
「 Javaでシューティングゲームを作ろう」
http://ponk.jp/old/java_shoot/index.php
どんなゲームを作るか
• 目標は、単純でやりやすい
ゲームを作成すること。
• 自分はJava初心者であるから、
複雑なゲームを目指すことは
控えた。
• 以後、プログラミングを行う
機会があれば、より面白みの
あるゲームを作ってみたい。
ゲームの内容
• 画面の上から落ちてくる敵を、弾を発射して撃
ち落とすゲーム。
• 敵をひとつ撃ち落とすと、スコアが加算される
。
• 使用するキーは、Enterキー、方向キー、スペー
スキー。
フィールド変数の宣言
• コードは、ひとつのクラスにいくつ
ものメソッドを用いて作成していっ
た。
• ちなみに、右はフィールド変数の一
覧である。
• 参考にしたソースに、プレイヤーが
上下に移動するための変数がなかっ
たので、付け加えた。
Image jiki;
int jx, jy;//自機座標
int bx,by;//弾座標
int ex, ey; //敵座標
int score=0;
int scene;
boolean keyLeft;
boolean keyRight;
boolean keyUp;
boolean keyDown;
boolean keySpace;
boolean bflag;
boolean keyEnter;
Image bullet;//弾画像
Image teki; //敵画像
Image offImage;//仮想画面
Thread gameThread;//ゲームスレッド
使用したpublicメソッドなど
• public class Myshoot1 extends
Applet implements Runnable,
KeyListener {
• public void init() {
• public void start(){
• Public void stop() {
• public void run() {
• public void gameTitle(){
• public void gameMain(){
• public void gameOver(){
• public void
keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
• public void
keyReleased(KeyEvent e) {
switch (e.getKeyCode()) {
• public void
keyTyped(KeyEvent e) {}
• public void paint(Graphics g) {
• public void update(Graphics g)
{
自機の上下左右移動
• Upキー、Downキーも最初に
宣言し、上下左右に自機を動
かせるようにした。
• それによって、自由度が増し
た。
• しかし、敵の動きが単調なた
め、それで面白みが増すこと
はあまりなかった。
=自機
=敵
弾の発射
• 弾のy座標を45ずつ減らすこと
で、弾を飛ばすように見せて
いる。
• 参考にしたソースでは10ずつ
であったが、スピーディにさ
せるために改良した。
弾の発射に関するコード
• スペースキーを押すと、弾の
発射フラグが立っていなけれ
ば、自機中央の座標に弾を設
置。その後弾の発射フラグが
真になる。
• 弾の発射フラグが真ならば、
弾のy座標を45ずつ減らし、0
未満となったところでフラグ
を偽にする。
if (keySpace) {
if(!bflag){
bx = jx + 17;
by = jy;
bflag = true;}
}
if(bflag){by-=45;
if (by < 0){bflag = false;
}
}
ゲームオーバー
• ゲームオーバー画面でエン
ターキーを押すと、スコアや
自機の座標を初期化してメイ
ン画面に戻すコードを追加し
た。
• つまり、やり直しである。
反省
• 自機をさらに自由に動かせるようになったので、
今度は敵の移動パターンを増やし、さらに面白
くしていきたい。
• 弾の動きにスピード感がでたが、弾の連射をで
きるようにして爽快感を出したかった。
Javaに対する理解
• 今回、初めてゲームのプログラミングを行って、
Javaに関する知識も増え、今までは思いもつか
なかった応用の仕方も学ぶことができた。
• htmlも本格的に触れたのは今回が初めてで、大
変良い経験ができたと思う。