Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- brotli
- 랜선아미안해
- cache-control
- cross parameter
- 워드프레스
- 지수반등
- jsr380
- 클래스레벨밸리데이션
- 알게뭐냐
- Kotlin
- 리얼월드HTTP
- HTTP
- 지뢰찾기
- LastModified
- 이렇게살아야되나자괴감이
- i18n
- 스프링
- 코드스피츠
- kotliln
- etag
- jsr303
- Spring
- 브로틀리
- 개미수열
- 알고리즘
Archives
- Today
- Total
취미개발 블로그와 마음수양
자바 우주선, 미사일, 적 코드 본문
재밌네?ㅋ 천인국님, 하상호님 공저의 파워 자바를 참고했습니다 ~ ㅎ
package 챕23스레드; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; class GraphicObject{ BufferedImage img = null; int x=0, y=0; public GraphicObject(String name){ try{ img = ImageIO.read(new File(name)); }catch(IOException e){ System.out.println(e.getMessage()); System.exit(0); } } public void update(){} public void draw(Graphics g){ g.drawImage(img, x, y, null); } public void keyPressed(KeyEvent event){} } class Missile extends GraphicObject{ boolean launched = false; public Missile(String name){ super(name); y = -200; } public void update(){ if(launched) y-=1; if(y<-100) launched = false; } public void keyPressed(KeyEvent event, int x, int y){ if(event.getKeyCode()==KeyEvent.VK_SPACE){ launched = true; this.x =x; this.y = y; } } } class Enermy extends GraphicObject{ int dx = -10; public Enermy(String name){ super(name); x = 500; y = 0; } public void update(){ x+=dx; if(x<0) dx = +10; if(x>500) dx =-10; } } class SpaceShip extends GraphicObject{ public SpaceShip(String name){ super(name); x = 150; y = 350; } public void keyPressed(KeyEvent event){ if(event.getKeyCode()==KeyEvent.VK_LEFT) { x-=10;} if(event.getKeyCode()==KeyEvent.VK_RIGHT) { x+=10;} if(event.getKeyCode()==KeyEvent.VK_UP) { y-=10;} if(event.getKeyCode()==KeyEvent.VK_DOWN) { y+=10;} } } class MyPanel extends JPanel implements KeyListener{ Enermy enermy; SpaceShip spaceship; Missile missile; public MyPanel(){ super(); this.addKeyListener(this); this.requestFocus(); setFocusable(true); enermy = new Enermy("enermy.png"); spaceship = new SpaceShip("spaceship.png"); missile = new Missile("missile.png"); class MyThread extends Thread{ public void run(){ while(true){ enermy.update(); spaceship.update(); missile.update(); repaint(); try{Thread.sleep(50);} catch(InterruptedException e){} } } } Thread t = new MyThread(); t.start(); } public void paint(Graphics g){ super.paint(g); enermy.draw(g); spaceship.draw(g); missile.draw(g); } public void keyPressed(KeyEvent event){ spaceship.keyPressed(event); missile.keyPressed(event, spaceship.x, spaceship.y); } public void keyReleased(KeyEvent arg0){ } public void keyTyped(KeyEvent arg0){ } } public class MyFrame extends JFrame{ public MyFrame(){ setTitle("My game"); add(new MyPanel()); setSize(500, 500); setVisible(true); } public static void main(String[] args) { new MyFrame(); } }
음
만약 여기서.. 미사일과 부딪히면 사라지게 하고 싶다고 한다면 대충 이런 식으로~
if(!(enermy.xspaceship.
'Language > java소스' 카테고리의 다른 글
자바 - 압축해제 소스 (0) | 2014.04.17 |
---|---|
자바 - 다중 쓰레드 동기화 (0) | 2014.04.17 |
중복되지 않은 난수 6개(로또) 생성하는.. 소스 (0) | 2014.04.16 |
학원에서 했던 첫번째 시험~g (0) | 2014.04.16 |
마우스 움직임 인식 예제 (0) | 2014.04.15 |