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){
}
//分けた図を書いてください>_<