//PImage BG;
int sop=0;
int block[][]=new int [20][16];
PVector boom, bV;
float vX=0, blockX=100;
int t=0;
//float boom=blockX;
void setup() {
size(800, 600);
//BG=loadImage("BG.png");
//BG.loadPixels();
frameRate(60);
boom= new PVector(blockX+40, 545);
bV= new PVector(-3, -3);
}
void Random() {
int x=0;
x=(int)random(12)+3;
for (int j=0; j<x; j++) {
int c=(int)random(15);
if (block[0][c]==1)continue;
else block[0][c]=1;
}
}
void drawTable() {
Random();
for (int i=0; i<19; i++) {
for (int j=0; j<15; j++) {
if (block[i][j]==1) {
fill(#F55134);
rect(10+j*40, 20+i*30, 40, 30);
} else {
fill(255);
rect(10+j*40, 20+i*30, 40, 30);
}
}
}
fill(255);
rect(10+0*40, 20+0*30, 600, 30);
block();
}
void draw() {
if(sop==0){
background(125);
textSize(80);fill(255);
rect(340, 245, 150, 60);
fill(0);text("star",340,300);
if(mousePressed)sop=1;
return;
}
background(#F5C17E);
drawTable();
blockX();
boom();
textSize(50);fill(0);text(t,650,80);
text(bV.x,650,120);
text(bV.y,650,160);
int a,b;
for ( a=0; a<19; a++) {
for ( b=0; b<15; b++) {
if (block[a][b]==1) {
if (
(20+a*30)+10<boom.y && boom.y<(20+a*30)+30+10
&&
(10+b*40)+10<boom.x && boom.x<(10+b*40)+40+10
){
block[a][b]=0;
t++;
if(boom.y<=20+a*30+15){bV.y=-3;}
if(boom.y>=20+a*30+15){bV.y=3;}
if(boom.x<=10+b*40+20){bV.x=-3;}
if(boom.x>=10+b*40+20
){bV.x=3;}
}
}
}
}
}
void boom() {
fill(255, 0, 255);
ellipse(boom.x, boom.y, 20, 20);
if (mouseCode==0)boom.x=blockX+40;
if (mouseCode==1)boom.add(bV);
if (boom.x>600) bV.x=-3;
if (boom.y>=535&&boom.y<=545&&boom.x>=blockX&&boom.x<=blockX+80)bV.y=-3;
if (boom.y>600) {
boom.x=blockX+40;
boom.y=545;
mouseCode=0;
bV.x=-3;
bV.y=-3;
}
if (boom.x<20) bV.x=+3;
if (boom.y<60) bV.y=+3;
}
void block() {
for (int j=19; j>0; j--) {
for (int i=0; i<15; i++) {
if (frameCount%100==0) {
block[j][i]=block[j-1][i];
}
}
}
for (int j=0; j<15; j++) {
block[0][j]=0;
}
println(frameCount);
}
void blockX() {
fill(#0053F5);
rect(blockX, 535, 80, 20);
if (code==1)blockX+=vX;
if (blockX>=525)blockX=525;
if (blockX<=15)blockX=15;
}
int code=0;
void keyPressed() {
if (keyCode==RIGHT) {
vX=4;
code=1;
} else if (keyCode==LEFT) {
vX=-4;
code=1;
}
}
int mouseCode=0;
void mousePressed() {
bV.x=(mouseX-blockX+40)/10;
bV.y=(mouseY-535)/10;
mouseCode=1;
}
void mouseReleased() {
}
void keyReleased() {
code=0;
}
2019年10月30日 星期三
訂閱:
張貼留言 (Atom)
alanhc 互動技術-week17 [final]
回顧這學期的作品: 期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...
-
先把上次的程式覆蓋 void setup(){ pinMode(8,OUTPUT); pinMode(2,INPUT_PULLUP); } void loop(){ if(digitalRead(2)== LOW ) tone(8,520,...
-
1. 複習按住boutton可以發出聲音 void setup(){ pinMode(8, OUTPUT); pinMode(2, INPUT_PULLUP); } void loop(){ if(digitalRead(2)==LOW) tone(8,...
-
第一張圖是讓使用者的圈圈可以自己移動 但他有個缺點 就是圈圈會跑出視窗外面 於是加上了if 假使中心大於350就會使整個圓跑出去 於是就讓他往回彈 就變成成功的彈彈球 自己製作迷宮 先畫一張自己設計的地圖 並先試看看能不能匯入 並且...
沒有留言:
張貼留言