어서와 Java는 처음이지! 제20장 실전프로젝트 #2.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

6 장 객체 - 지향 설계 ③. 목차 GUI 레이아웃  전화기 키 패드 전화기 키 패드 전화기 키 패드 모양의 GUI 를 만드는 Telephone.java, TelephonePanel.java 를 완성해 보자.  주석을 참고하여 TelephonePanel.java.
1 Image Restoration 정은일 멀티미디어설계.
게임엔진 Term Project 학번 : 이름 : 오민형 2D 게임 프로그래밍 Project.
14. 위피 게임: 가위바위보 게임 초기에 점수=0 처음 이기면 10 점 그 다음부터 이기면 점수=현재 점수*2 지면
네트워크 프로그래밍 및 실습.
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
Daily YouTube (131226) 검색 일시 / 업로드 일자 : , 09:00 /
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
순차, 조건, 반복 이점숙 같은 문제 다르게 해결하기 순차, 조건, 반복 이점숙
CHAP 19. 구글맵.
Chap07 상속 Section 1 : 상속의 개요 Section 2 : 멤버 변수의 상속
Java 프로그래밍 - 팩맨(Pacman) -
Power Java 제3장 이클립스 사용하기.
최윤정 Java 프로그래밍 클래스 상속 최윤정
컴퓨터 프로그래밍 실습 #7 제 4 장 GUI 클래스 작성.
Java Seminar Chapter3.
PUzzleAlarm 컴퓨터 응용과학부 최범모.
어서와 Java는 처음이지! 제16장 스레드.
제 4 장 클래스 작성 Lab 4- 2.
8. 객체와 클래스 (기본).
명품 JAVA Programming.
어서와 Java는 처음이지! 제7장 상속.
제12장 다형성과 가상함수 다형성의 개념을 이해한다. 상향 형변환의 개념을 이해한다. 가상 함수의 개념을 이해한다.
[INA470] Java Programming Youn-Hee Han
7장 배열 ②.
자바 5.0 프로그래밍.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
9장 다형성 Lab 9-2.
Lesson 9. 예외처리.
25강. Security-I 보안 관련 프로젝트 생성 보안 관련 라이브러리 추가 보안 관련 설정 파일 만들기
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
어서와 Java는 처음이지! 제7장 상속.
1. C++ 시작하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
CHAP 8. 그래픽.
제4장 클래스와 객체 객체 지향 기법을 이해한다. 클래스를 작성할 수 있다. 클래스에서 객체를 생성할 수 있다.
패키지와 접근 제어 패키지에 대하여 접근 제어에 대하여.
WinCE Device Driver 실습 #3
Lesson 7. 클래스와 메소드 - 1.
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
스크래치 언어 이해 스크래치 이용법 습득 고양이가 말을 하며 움직이는 예제 작성
13. 연산자 오버로딩.
7장 인터페이스와 추상 클래스.
JAVA Canvas Swing.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 Java는 처음이지! 제9장 인터페이스, 패키지.
영상처리 실습 인공지능연구실.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Java Chapter 4 ~ 주차.
프로그래머를 위한 첫걸음 JDBC Lecture 001 BY MINIO
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
자바 5.0 프로그래밍.
Power Java 제11장 상속.
JA A V W. 06.
[ 단원 06 ] 상속과 다형성.
12. 상속 : 고급.
객체기반 SW설계 팀활동지 4.
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
Chapter 13. 템플릿(Template) 1
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
2D 게임프로그래밍 프로젝트 발 록 런 김대호.
6장 클래스(상속).
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
3. 모듈 (5장. 모듈).
자바 프로그래밍 Thread를 이용한 애니메이션 서울호서전문학교 게임프로그램개발과.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
자바 객체 지향 프로그래밍 Ps lab 김윤경.
BoardGame 보드게임 따라가기.
Presentation transcript:

어서와 Java는 처음이지! 제20장 실전프로젝트 #2

LAB: 갤러그 게임 작성 우리는 자바 그래픽을 이용하여 다음과 같은 “갤러그” 유사 게임을 제작할 것이다.

어떤 객체들이 필요한가?

클래스 StarShipSprite 클래스 - 주인공 우주선을 모델링한다. AlienSprite 클래스 - 외계인 우주선을 모델링한다. ShotSprite 클래스 – 포탄을 모델링한다. GalagaGame 클래스 – 게임 보드를 모델링한다.

상속을 이용한 설계

상속을 이용한 설계

Sprite.java // 소스를 입력하고 Ctrl+Shift+O를 눌러서 필요한 파일을 포함한다. public class Sprite { protected int x; // 현재 위치의 x좌표 protected int y; // 현재 위치의 y좌표 protected int dx; // 단위시간에 움직이는 x방향 거리 protected int dy; // 단위시간에 움직이는 y방향 거리 private Image image; // 스프라이트가 가지고 있는 이미지 // 생성자 public Sprite(Image image, int x, int y) { this.image = image; this.x = x; this.y = y; } // 스프라이트의 가로 길이를 반환한다. public int getWidth() { return image.getWidth(null); // 스프라이트의 세로 길이를 반환한다. public int getHeight() { return image.getHeight(null);

// 스프라이트를 화면에 그린다. public void draw(Graphics g) { g // 스프라이트를 화면에 그린다. public void draw(Graphics g) { g.drawImage(image, x, y, null); } // 스프라이트를 움직인다. public void move() { x += dx; y += dy; // dx를 설정한다. public void setDx(int dx) { this.dx = dx; } // dy를 설정한다. public void setDy(int dy) { this.dy = dy; } // dx를 반환한다. public int getDx() { return dx; } // dy를 반환한다. public int getDy() { return dy; } // x를 반환한다. public int getX() { return x; } // y를 반환한다. public int getY() { return y; }

// 다른 스프라이트와의 충돌 여부를 계산한다. 충돌이면 true를 반환한다 // 다른 스프라이트와의 충돌 여부를 계산한다. 충돌이면 true를 반환한다. public boolean checkCollision(Sprite other) { Rectangle myRect = new Rectangle(); Rectangle otherRect = new Rectangle(); myRect.setBounds(x, y, getWidth(), getHeight()); otherRect.setBounds(other.getX(), other.getY(), other.getWidth(), other.getHeight()); return myRect.intersects(otherRect); } // 충돌을 처리한다. public void handleCollision(Sprite other) {

StarShipSprite.java public class StarShipSprite extends Sprite { private GalagaGame game; public StarShipSprite(GalagaGame game, Image image, int x, int y) { super(image, x, y); this.game = game; dx = 0; dy = 0; } @Override public void move() { if ((dx < 0) && (x < 10)) { return; if ((dx > 0) && (x > 800)) { super.move(); public void handleCollision(Sprite other) { if (other instanceof AlienSprite) { game.endGame();

Q & A