비행기

개발/코딩 2013. 10. 11. 17:54

 

package shooting;

public class Enemy {
 private EnemyMissile[] missiles;
 
 public Enemy() {
 missiles=new EnemyMissile[100];
}
 
}
======================================

package shooting;

public class EnemyMissile {

}
=====================================

package shooting;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;

public class Fighter {
 private UserMissile missiles[];
 private Image img;
 private int x,y;  //뱅기 좌표
 private int speed;
 public Fighter() {
  
  missiles=new UserMissile[100]; //미사일 보유
  x=170;
  y=500;
  speed=5; //스피드 만큼 좌표를 바꾼다
  Toolkit tk=Toolkit.getDefaultToolkit();  //윈도우 제공
  img=tk.getImage("res/fighter.png");  //이미지 불러오는거
 }
 
 public void paint(Graphics g,GameBoard parent) {
  g.drawImage(img,x,y,parent);  //게임 보드에 그림을 그려달라
  }

 public void move(int key) {
 switch(key){
 case KeyEvent.VK_LEFT:
  x -= speed;
  break;
 case KeyEvent.VK_RIGHT:
  x += speed;
  break;
 case KeyEvent.VK_DOWN:
  y += speed;
  break;
 case KeyEvent.VK_UP:
  y -= speed;
  break;
 }
  
 }
}

====================================

package shooting;

import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class GameBoard extends Canvas { // 겜보드가 세가지를 가지고 있다.
 private Fighter fighter; // Canvas는 윈도우가 제공해주는거(도화지 역할)
 private Enemy[] enemies;
 private StatusBar statusBar; // 정의만 한다
 private Image img; // 함수를 구현할때 필요한 이미지

 public GameBoard() {
  fighter = new Fighter(); // 객체 생성
  enemies = new Enemy[100]; // 참조할수 있게 배열 선언,객체 생성은 안됐다.
  statusBar = new StatusBar();

  Toolkit tk = Toolkit.getDefaultToolkit(); // 윈도우 제공
  img = tk.getImage("res/우주.jpg"); // 이미지 불러오는거
  addKeyListener(new KeyAdapter() {  //KeyListener와 달리 어탭더 안에 세가지 기능이 있다.
                                                       //public void keyPressed(KeyEvent e)
                                                       //public void keyReleased(KeyEvent e) { } 
                                                       //public void keyTyped(KeyEvent e) { }
  public void keyPressed(KeyEvent e) {
   int key = e.getKeyCode();

   switch (key) {
   case KeyEvent.VK_LEFT: // 비행기를 왼쪽으로
   case KeyEvent.VK_RIGHT:
   case KeyEvent.VK_DOWN:
   case KeyEvent.VK_UP:

   fighter.move(key); // key 가 눌리면 무브함수가 바꿔주지만 그림은 바뀌지않는다.
   break;
   }
   repaint(); // 화면을 다시 그리게 한다.

   }
  });

 }

 public void paint(Graphics g) {

  super.paint(g);
  g.drawImage(img, 0, 0, this); // 그림을 그려달라
  fighter.paint(g, this);    // 파이터에 그림을 그려달라(그림 그리는 도구,도화지)
 }
}


/*
 * MyKeyListener클래스를 처음에는 생성했는데 필요 없다. //public class MyKeyListener implements
 * KeyListener { //키입력받는 기능을 구현하겠다 //내부 클래스
 * public void keyPressed(KeyEvent e) {
 * // 키가 눌리는거에 관심
 *
 * final int LEFT=37;final int RIGHT=39; //상수형 변수는 대문자로
 *
 * int key = e.getKeyCode();
 *
 * switch (key) {
 * case KeyEvent.VK_LEFT: //비행기를 왼쪽으로
 * case KeyEvent.VK_RIGHT:
 * case KeyEvent.VK_DOWN:
 * case KeyEvent.VK_UP:
 *
 * fighter.move(key); //key 가 눌리면 무브함수가 바꿔주지만 그림은 바뀌지않는다.
 * break; }
 * repaint();
 * //화면을 다시 그리게 한다. }
 *
 * public void keyReleased(KeyEvent arg0) { // 키가 떼는거에 관심
 * }
 * public void keyTyped(KeyEvent arg0) { // 어떤 문자가 눌렸는지 관심(화살표 누르면 실행X)
 *
 * } }
 */
/*
 * -------------------------------------------------------------------
 *
 * addKeyListener(new KeyListener() { //클래스를 생성할 필요 없다.
 *          한번만 객체 생성하면 되기때문에,익명클래스
 * public void keyPressed(KeyEvent e) {
 *
 * int key = e.getKeyCode();
 *
 * switch (key) {
 * case KeyEvent.VK_LEFT: // 비행기를 왼쪽으로
 * case KeyEvent.VK_RIGHT:
 * case KeyEvent.VK_DOWN:
 * case KeyEvent.VK_UP:
 *
 * fighter.move(key); // key 가 눌리면 무브함수가 바꿔주지만 그림은 바뀌지않는다. break; } repaint();
 * // 화면을 다시 그리게 한다. }
 *
 * public void keyReleased(KeyEvent e) { }
 * public void keyTyped(KeyEvent e) { }
 * });
 */
============================================================================

 

package shooting;

import java.awt.Frame;

public class MainFrame extends Frame//윈도우가 제공
 //private SplashBoard splashBoard;  //게임 전 스페이스를 눌러 게임시작하는거
 private GameBoard gameBoard;
 //private RankingBoard rankingBoard;
 
 public MainFrame() {
  gameBoard=new GameBoard();
  this.add(gameBoard); //이걸 해줘야 게임이 뜬다. add는 프레임에 보드 붙여준다.
 }
}
=====================================

package shooting;

public class Program {
 public static void main(String[] args){
  //GameBoard gameBoard=new GameBoard(); 안된다 Frame부터 띄워야한다.
  MainFrame frm=new MainFrame();
  frm.setSize(420,500);
  frm.setVisible(true);
 }
}
==========================================

package shooting;

public class StatusBar {

}
================================

package shooting;

public class UserMissile {

}

'개발 > 코딩' 카테고리의 다른 글

비행기 겜 완성  (0) 2013.10.21
숫자 맞추기 겜  (0) 2013.10.11
삽입 정렬  (0) 2013.10.11
그림 파일불러오기  (0) 2013.10.10
캡슐 이해 (오목)  (0) 2013.10.07