Week12
這周主要規劃期末作品内容,每周逐步完成。
1.小人移動網址
https://openprocessing.org/sketch/911326
2.sprite animation人物移動
PImage img;
void setup(){
size(500,500);
img=loadImage("img.jpg");
imageMode(CENTER);
}
int a=0, b=0, x=250, y=250;//ab用於更換行列圖片
void draw(){
background(255);
//image( img, 0,0);
image( img.get(141*a, 211*b, 141,211), x,y);//選擇所需圖片
if(frameCount%30==0) a = (a+1)%4;
}
void keyPressed(){
if(keyCode==RIGHT){ b=3; x++; }//可通過改變x大小調整速度
if(keyCode==LEFT) { b=2; x--; }
if(keyCode==UP) { b=1; y--; }
if(keyCode==DOWN){ b=0; y++; }
}
3.期末規劃
(1)内容大綱
我們組選擇做出類似Geometry dash的作品,每周都加上調整
(2)示意圖我們將使用滑鼠或是鍵盤控制一個正方形的彈跳,使其不能碰到三角形或其他有傷害的障礙物,在此期間我們會不斷前進,帶來不同位置的障礙物。
| 跳躍的正方形 |
| 躲避三角形 |
https://youtu.be/k90y6PIzIaE
該視頻將會簡單介紹游戲流程
(4)原理,初始程式碼1.準備陷阱和背景
float []badx;//陷阱
void setup(){
size(600,400);
badx=new float[100];//準備100個陷阱
badx[0]=random(200,300);
for(int i=0;i<100;i++){
badx[i]=badx[i-1]+random(200,250);//陷阱間隔
}
}
void draw(){
background(#FF0A7D);
}
float []badx;//陷阱
void setup(){
size(600,400);
badx=new float[100];//準備100個陷阱
badx[0]=300+random(200,300);//預留距離
for(int i=1;i<100;i++){
badx[i]=badx[i-1]+random(200,250);//陷阱間隔
}
}
float usery=300, bgx=0;//方塊y坐標,三角形背景x的移動
void draw(){
background(#FF0A7D);
fill(#F5ADCF);
for(int i=0;i<100;i++){
triangle(badx[i]-bgx,300,badx[i]-25-bgx,350,badx[i]+25-bgx,350);
}
fill(#AD0051); rect(0,350,600,400);//地面
rect(150,usery,50,50);
bgx+=3;//移動
}
3.跳躍float []badx;//陷阱
void setup(){
size(600,400);
badx=new float[100];//準備100個陷阱
badx[0]=300+random(200,300);//預留距離
for(int i=1;i<100;i++){
badx[i]=badx[i-1]+random(200,250);//陷阱間隔
}
}
float usery=300, vy=0, bgx=0;//方塊y坐標,三角形背景x的移動
void draw(){
background(#FF0A7D);
fill(#F5ADCF);
for(int i=0;i<100;i++){
triangle(badx[i]-bgx,300,badx[i]-25-bgx,350,badx[i]+25-bgx,350);
}
fill(#AD0051); rect(0,350,600,400);//地面
rect(150,usery,50,50);
if(jumping){
usery+=vy;
vy+=0.98/2;//重力加速度
if(usery>300){//停留在地面
jumping=false;
usery=300;
}
}
bgx+=3;//移動
}
boolean jumping=false;
void keyPressed(){
if(jumping==false){
jumping=true;//true時跳躍
vy=-10;//往上跳
}
}
4.方塊后影子float []badx,bubblex,bubbley;//陷阱
void setup(){
size(600,400);
badx=new float[100];//準備100個陷阱
badx[0]=300+random(200,300);//預留距離
for(int i=1;i<100;i++){
badx[i]=badx[i-1]+random(200,250);//陷阱間隔
}
bubblex=new float[10];
bubbley=new float[10];
for(int i=0;i<10;i++){
bubblex[i]=0;
bubbley[i]=300;//準備影子
}
}
float usery=300, vy=0, bgx=0;//方塊y坐標,三角形背景x的移動
void draw(){
background(#FF0A7D);
fill(#F5ADCF);
for(int i=0;i<100;i++){
triangle(badx[i]-bgx,300,badx[i]-25-bgx,350,badx[i]+25-bgx,350);
}
fill(#AD0051); rect(0,350,600,400);//地面
rect(150,usery,50,50);
if(jumping){
usery+=vy;
vy+=0.98/2;//重力加速度
if(usery>300){//停留在地面
jumping=false;
usery=300;
}
}
for(int i=9;i>0;i--){
bubblex[i]=bubblex[i-1];
bubbley[i]=bubbley[i-1];
ellipse(bubblex[i]+150-bgx,bubbley[i],10,10);
}
bubblex[0]=bgx;
bubbley[0]=usery;
bgx+=3;//移動
}
boolean jumping=false;
void keyPressed(){
if(jumping==false){
jumping=true;//true時跳躍
vy=-10;//往上跳
}
}
沒有留言:
張貼留言