質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.10%

クラス図の分け方が分かりません

受付中

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 1,185

score 10

import java.awt.*;
import java.awt.event.*;
import java.awt.Font;
import java.util.Random;

public class MainFrame extends GameFrame implements KeyListener,MetronomeInterface{
Bgm b1,b2,b3;
Image img,img1,img2,img3,img4,img5,img6,img7;
EnemyZako[] ez = new EnemyZako[50];
Bullet [] tm = new Bullet[1000];
ZBullet [] ztm = new ZBullet[1000];
TBBullet[] tbm = new TBBullet[1000];
Haikei[] h = new Haikei[5];
Player p;
Boss bo;
Bullet b;
int gameMode;//0オープニング 1本編
int to;
int tama;
int ztama;
int baku;
int ta=0;
int bta=0;
int count;
int count2 = 0;
int life = 3;
boolean tu = false;
Metronome mt = new Metronome(0,1000,this);
Metronome2 mo = new Metronome2(0,1000,this);

public MainFrame(){
super("Ex999");

Random rnd = new Random();

img = getToolkit().getImage("Image/c3.png");
for(int z=0;z<ez.length;z++){
int ran = rnd.nextInt(600);
int ran1 = rnd.nextInt(80) - 100;
int ran2 = rnd.nextInt(300) + 20;
ez[z] = new EnemyZako(img,ran,ran1,30,28,ran2);
}

img6 = getToolkit().getImage("Image/自機.gif");
p = new Player(img6,400,500,18,32,50,ez,this);

img7 = getToolkit().getImage("Image/弾.PNG");
for(int i=0;i<tm.length;i++){
tm[i] = new Bullet(img7,-100,-100,15,20,50,ez,this);
}

img4 = getToolkit().getImage("Image/s.PNG");
for(int m=0;m<ztm.length;m++){
ztm[m] = new ZBullet(img4,-100,-100,20,19,50,ez,this);
}

img4 = getToolkit().getImage("Image/s.PNG");
for(int l=0;l<tbm.length;l++){
tbm[l] = new TBBullet(img4,-100,-100,20,19,50,ez,this);
}

img2 = getToolkit().getImage("Image/haikei.gif");
h[0] = new Haikei(img2,0,0,800,600,50);
h[1] = new Haikei(img2,0,-600,800,600,50);
h[2] = new Haikei(img2,0,-1200,800,600,50);
h[3] = new Haikei(img2,0,-1800,800,600,50);
h[4] = new Haikei(img2,0,-2400,800,600,50);

img5 = getToolkit().getImage("Image/tb.PNG");//中ボス
bo = new Boss(img5,300,40,128,200,10);

img3 = getToolkit().getImage("Image/GameOver.gif");

addKeyListener(this);
p.start();
for(Haikei he:h)he.start();
for(Bullet ze:tm)ze.start();
gameMode = 0;//オープニング
start();
}

public void paint(Graphics g){
if(gameMode==0){//オープニング
g.setColor(Color.black);
g.fillRect(0,0,800,600);
g.setColor(Color.white);
Font font = new Font("Dialog",Font.BOLD,30);
g.setFont(font);
g.drawString("マリオの逆襲",300,200);
g.drawString("ENTER START",285,380);
}else if(gameMode==1){//本編
for(int d=0;d<h.length;d++)h[d].draw(g);
g.setColor(Color.white);
g.setFont(new Font("Monospaced" , Font.PLAIN, 13));
g.drawString("TIME:"+count,740,50);
g.setColor(Color.white);
g.drawString("残機:"+life,8,50);
if(tu == true)bo.draw(g);
for(int z=0;z<ez.length;z++)ez[z].draw(g);
p.draw(g);
for(int i=0;i<tm.length;i++)tm[i].draw(g);
for(int i=0;i<ztm.length;i++)ztm[i].draw(g);
for(int i=0;i<tbm.length;i++)tbm[i].draw(g);
}else if(gameMode==2){//ゲームオーバー
g.fillRect(0,0,800,600);
g.setColor(Color.white);
Font font = new Font("Dialog",Font.BOLD,80);
g.setFont(font);
g.drawString("Game Over",190,250);
}
}
public void call(){
if(gameMode==1){
count--;
if((count % 2 ==0)&&(count!= 0)){
kougeki();
}
if(count<1){
bo.start();
tu = true;
mt.cancel();
repaint();
}
}
}

public void call2(){
if(count == 0){
//zako();
count2++;
if((count2 % 1 ==0)&&(count2!= 0)){
kougeki2();
}
}
}

/*public void zako(){
Random rnd = new Random();
img = getToolkit().getImage("Image/c3.png");
for(int z=0;z<ez.length;z++){
int ran = rnd.nextInt(600);
int ran1 = rnd.nextInt(80) - 100;
int ran2 = rnd.nextInt(300) + 20;
ez[z] = new EnemyZako(img,ran,ran1,30,28,ran2);
repaint();
}
}*/

public void kougeki(){
for(int i=0;i<ez.length;i++){
if(ez[i].rectangle.y%20==0){
ztm[ta].flg=true;
ztm[ta].rectangle.x = ez[i].rectangle.x;
ztm[ta].rectangle.y = ez[i].rectangle.y;
ztm[ta].start();
ta+=1;
if(ta>=ztm.length){
ta=0;
}
}
}
}

public void kougeki2(){
tbm[bta].flg=true;
tbm[bta].rectangle.x = bo.rectangle.x;
tbm[bta].rectangle.y = bo.rectangle.y;
tbm[bta].start();
bta+=1;
if(bta>=tbm.length){
bta=0;
}
}

/**
*キーを押しているときの処理を記述
*/
public void keyPressed(KeyEvent z) {
if(z.getKeyCode()==KeyEvent.VK_ENTER){
if(gameMode==0){
gameMode = 1;
count = 40;
for(EnemyZako we:ez)we.start();
}
}
if(gameMode==1){
if(z.getKeyCode()==KeyEvent.VK_UP){
p.isUp=true;
}
if(z.getKeyCode()==KeyEvent.VK_DOWN){
p.isDown=true;
}
if(z.getKeyCode()==KeyEvent.VK_LEFT){
p.isLeft=true;
}               
if(z.getKeyCode()==KeyEvent.VK_RIGHT){
p.isRight=true;
}
if(z.getKeyCode()==KeyEvent.VK_SPACE){
tm[tama].isUp=true;
tm[tama].flg=true;
tm[tama].rectangle.x = p.rectangle.x+15;
tm[tama].rectangle.y = p.rectangle.y+5;
tama+=1;
if(tama>=tm.length){
tama=0;
}
}
}
if(z.getKeyCode()==KeyEvent.VK_ESCAPE&&gameMode==2){
System.exit(0);
}
if(z.getKeyCode()==KeyEvent.VK_CONTROL&&gameMode==2){
gameMode=0;
}
}
/**
*キーを離したときの処理を記述
*/
public void keyReleased(KeyEvent z){
if(z.getKeyCode()==KeyEvent.VK_UP){
p.isUp=false;
}
if(z.getKeyCode()==KeyEvent.VK_DOWN){
p.isDown=false;
}
if(z.getKeyCode()==KeyEvent.VK_LEFT){
p.isLeft=false;
}
if(z.getKeyCode()==KeyEvent.VK_RIGHT){
p.isRight=false;
}
}
/**
*キーをタイプしたときの処理を記述
*/
public void keyTyped(KeyEvent z){
}
//分けた図を書いてください>_<

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • s.t.

    2017/06/06 15:53

    まずは自分で書いてみてください。

    キャンセル

  • A-pZ

    2017/06/06 16:49

    コードはコードブロックで囲いましょう。

    キャンセル

  • m.ts10806

    2017/06/06 16:50

    >>「分けた図を書いてください>_<」 丸投げはご法度ですよ。

    キャンセル

  • 退会済みユーザー

    2017/06/07 17:53

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 1

+3

正直に言います。あなたはプログラマに向いていません。もし職業にしようとしているのなら他の職業をオススメします。挫折するだけですよ。

まずは自分で考えましょう。そして、何が分からないのかを明確にしましょう。それがプログラマの本質にも当てはまります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る