티스토리 뷰
반응형
영재원에서 만들었던 게임이다
간단한 벽돌깨기 게임이다. 이컴에는 프로세싱이 없어서 완성은 못했지만 그래도 게임 구성은 다 있어서 플레이 정도는 할 수 있다.
int angle=0;
float ps=10;
int x=0;
int y=0;
int time=0;
int[][] block = new int[25][25];
int [][] item = new int[25][2];
int score=0;
int dead=0;
void setup() {
size(800,800);
angle=1;
x=400;
y=200;
ps=2;
frameRate(200);
for(int i=0;i<3;i++){
item[i][0]=int(random(800));
item[i][1]=int(random(800));
}
score=0;
}
void draw() {
if(dead==0){
background(0);
strokeWeight(6);
stroke(255);
int left=0;
int right=0;
if(mouseX<100){left=0;right=200;}
else if(mouseX>700){left=600;right=800;}
else{left=mouseX-100;right=mouseX+100;}
line(left,780,right,780);
x+=ps;
y+=angle*ps;
x=constrain(x,0,800);
y=constrain(y,0,800);
fill(100);
ellipse(x,y,20,20);
for(int i=0;i<3;i++){
if(circle(item[i][1],item[i][0],15,x,y,20)==1){
dl();
int ny=int(random(800)),nx=int(random(800));
while(block[ny/40][nx/80]!=0||block[max(0,ny/40-1)][nx/80]!=0||block[ny/40+1][nx/80]!=0||block[ny/40][max(0,nx/80-1)]!=0||block[ny/40][nx/80+1]!=0){ny=int(random(800));nx=int(random(800));}
item[i][0]=ny;
item[i][1]=nx;
}
}
dc();
//y/40,x/80
//(x/80)*80~(x/80+1)*80
//if(y/40*40+20,x*80
//println(y,angle,ps);
if(block[y/40][x/80]==1){block[y/40][x/80]=0;angle*=-1;y=y/40*40+50;}
if((y/40)>=1&&(x/80)*80<=x&&x<=(x/80+1)*80&&y-10<=(y/40-1)*40+40&&(y-10-angle*ps)>=(y/40-1)*40+40&&block[(y/40-1)][x/80]==1){block[(y/40-1)][x/80]=0;y=(y/40-1)*40+50;angle*=-1;score++;}//println(angle);}
if((y/40+1)<=19&&(x/80)*80<=x&&x<=(x/80+1)*80&&y+10>=(y/40+1)*40&&(y+10-angle*ps)<=(y/40+1)*40&&block[y/40+1][x/80]==1){block[y/40+1][x/80]=0;y=(y/40+1)*40-10;angle*=-1;score++;}//println(angle);}
if((x/80)>=1&&(y/40)*40<=y&&y<=(y/40+1)*40&&x-10<=(x/80-1)*80+80&&(x-10-angle*ps)<=(x/80-1)*80+80&&block[y/40][(x/80-1)]==1){block[y/40][(x/80-1)]=0;x=(x/80-1)*80+90;angle*=-1;ps=2;score++;}
if((x/80+1)<=9&&(y/40)*40<=y&&y<=(y/40+1)*40&&x+10>=(x/80+1)*80&&(x+10-angle*ps)>=(x/80+1)*80&&block[y/40][(x/80+1)]==1){block[y/40][(x/80+1)]=0;x=(x/80+1)*80-10;angle*=-1;ps=-2;score++;}
//println(y);
//delay(10);
if(time%200==0)bk();
time++;
pt();
for(int i=0;i<3;i++){
if(block[item[i][0]/40][item[i][1]/80]==1){
int ny=int(random(800)),nx=int(random(800));
while(block[ny/40][nx/80]!=0||block[max(0,ny/40-1)][nx/80]!=0||block[ny/40+1][nx/80]!=0||block[ny/40][max(0,nx/80-1)]!=0||block[ny/40][nx/80+1]!=0){ny=int(random(800));nx=int(random(800));}
item[i][0]=ny;
item[i][1]=nx;
}
}
for(int i=0;i<10;i++){
if(block[19][i]==1){dead=1;break;}
}
//println(left,right,x);
if(left<=x&&x<=right&&(y-10-angle*ps)<=780&&780<=y+10){y=770;angle*=-1;}//&&(y-angle*ps)<=600&&600<=y
else{
if(x<=10){x=10;ps=2;angle*=-1;}
if(x>=790){x=790;ps=-2;angle*=-1;}
if(y<=10){y=10;angle*=-1;}
if(y>=790){
//String strVal = String.valueOf(score);
dead=1;
//delay(3000);
//exit();
}//y=790;angle*=-1;}
}
}else{
fill(255,120,0);
textSize(50);
text("Game over you score is "+score,50,400);
}
}
void bk(){
for(int i=19;i>=0;i--){
for(int g=0;g<10;g++){
block[i+1][g]=block[i][g];
block[i][g]=0;
}
}
for(int i=0;i<20;i++)block[0][i]=1;
}
void pt(){
for(int i=0;i<20;i++){
for(int g=0;g<10;g++){
if(block[i][g]==1){
fill(100);
stroke(255);
rect(80*g,i*40,80,40);
}
}
}
}
void dc(){
for(int i=0;i<3;i++){
fill(255,212,0);
noStroke();
ellipse(item[i][1],item[i][0],15,15);
}
}
void dl(){
for(int i=0;i<10;i++){
int gh=0;
for(int g=19;g>=0;g--){
if(block[g][i]==1){block[g][i]=0;gh++;score++;}
if(gh==3)break;
}
}
}
int circle(int a,int b,int c,int d,int e,int f){
if(sqrt(abs(a-d)*abs(a-d)+abs(b-e)*abs(b-e))<=c+f)return 1;
else return 0;
}
https://joseph0528.tistory.com/78?category=951868
이 게임도 이 게임을 만들고 나서 만들고 싶어 져서 만든 것이다.
반응형
'개발' 카테고리의 다른 글
2023 KCC 한국 컴퓨터 종합 학술 대회 후기 (1) | 2023.07.17 |
---|---|
Surviv.io 를 모티브로 한 게임 제작(영재원 산출물) (0) | 2021.11.07 |
스와이프 벽돌깨기 게임 제작 (0) | 2021.09.15 |
개발일지 1. 디스코드 봇 Solved_Coin 제작 (2) | 2021.09.03 |
오랜만에 올리는 디코 봇 현황 (1) | 2021.08.08 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 이분매칭
- KOI
- 느리게 갱신되는 세그먼트 트리
- 완전 탐색
- 그래프 탐색
- 수학
- 그래프 이론
- 구현
- 세그먼트 트리
- codeforces
- 깊이 우선 탐색
- 자료구조
- 개발
- 선분 교차 판정
- Python
- BOJ
- 알고리즘
- 이분 탐색
- 그리디 알고리즘
- A Dance of Fire and Ice
- C++
- 트리에서의 다이나믹 프로그래밍
- 최소 스패닝 트리
- 다이나믹 프로그래밍
- discord bot
- 누적 합
- 잡봇
- 정렬
- 트리
- 자료 구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함