더보기
쿠키런 프로젝트 시리즈
1.준비
https://ondolroom.tistory.com/297
2.전역공간
https://ondolroom.tistory.com/298
3.JPanel생성자
https://ondolroom.tistory.com/299
4.mapMove메서드
https://ondolroom.tistory.com/300
5.hit메서드
https://ondolroom.tistory.com/301
6.fall메서드
https://ondolroom.tistory.com/302
7.jump메서드
https://ondolroom.tistory.com/303
8.paintComponent 및 결과
https://ondolroom.tistory.com/304
준비물
이미지 파일이다.
그림판으로 만든 테스트용 이미지임.
아래는 기본 클래스 파일들이다. 더보기로 볼 수 있다.
생성자 및 게터 세터는 lombok 라이브러리를 이용하였다.(모르시는 분들은 인터넷 검색 )
더보기
배경
package Test4;
import java.awt.Image;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Back {
private Image image;
private int x;
private int y;
private int width;
private int height;
}
쿠키
package Test4;
import java.awt.Image;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Cookie {
private Image image; // 쿠키 이미지
// 쿠키의 좌표와 넓이 높이
private int x = 160;
private int y = 0;
private int width = 80;
private int height = 120;
// 쿠키의 투명도 (0이 투명, 255가 완전 불투명)
private int alpha = 255;
// 쿠키의 체력
private int health = 1000;
// 쿠키의 상태 (거대화와 가속화 미구현)
private int big = 0; // 거대화 남은 시간
private int fast = 0; // 가속화 남은 시간
private int countJump = 0; // 점프 횟수
private boolean invincible = false; // 무적 여부
private boolean fall = false; // 낙하 여부
private boolean jump = false; // 점프 여부
public Cookie(Image image){ // 이미지만 넣어주자
this.image = image;
}
}
발판
package Test4;
import java.awt.Image;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Field {
private Image image; // 발판 이미지
// 발판의 좌표와 넓이 높이
private int x;
private int y;
private int width;
private int height;
}
젤리
package Test4;
import java.awt.Image;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Jelly {
private Image image; // 젤리 이미지
// 젤리들의 좌표와 크기
private int x;
private int y;
private int width;
private int height;
// 젤리의 점수
private int score;
}
장애물
package Test4;
import java.awt.Image;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Tacle {
private Image image; // 장애물 이미지
// 장애물의 좌표와 넓이 높이
private int x;
private int y;
private int width;
private int height;
// 장애물 상태
private int state;
}
유틸
package Test4;
import java.awt.image.BufferedImage;
import java.awt.image.PixelGrabber;
import java.io.File;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import javax.imageio.ImageIO;
public class Util {
// 이미지의 사이즈 가져오기
public static int[] getSize(String src) throws Exception {
File imgf = new File(src);
BufferedImage img = ImageIO.read(imgf);
int width = img.getWidth();
int height = img.getHeight();
int[] tempSize = {width, height};
return tempSize;
}
// 이미지의 픽셀값 가져오기
public static int[][] getPic(String src) throws Exception{
File imgf = new File(src);
BufferedImage img = ImageIO.read(imgf);
int width = img.getWidth();
int height = img.getHeight();
int[] pixels=new int[width*height];
PixelGrabber grab = new PixelGrabber(img, 0, 0, width, height, pixels, 0,width);
grab.grabPixels();
int[][] picture=new int[width][height];
for(int i=0;i<pixels.length;i++)
picture[i%width][i/width]=pixels[i] + 16777216;
return picture;
}
// 현재시간 가져오기
public static long getTime() {
return Timestamp.valueOf(LocalDateTime.now()).getTime();
}
// substring으로 발판 정보 검색
// 배열로 장판 및 젤리 배치 할 때 사용 (현재 미사용)
// public static int getGround(String ground, int index) {
// return Integer.parseInt(ground.substring(index, index + 1));
// }
}
'Programming Language > Java' 카테고리의 다른 글
자바 스윙 쿠키런 만들기 MyPanel 생성자 수정 (프로젝트 진행) (2) | 2020.05.06 |
---|---|
자바 스윙 쿠키런 만들기 전역 변수 선언하기 (프로젝트 진행) (2) | 2020.05.05 |
자바 스윙 이미지로 발판 및 젤리 구현하기 (프로젝트 대비) (0) | 2020.05.03 |
자바 스윙 2중 for문 없이 다중발판 구현하기 (프로젝트 대비) (0) | 2020.05.02 |
자바 스윙 다중 발판 구현하기 (프로젝트 대비) (0) | 2020.05.02 |