__________________________________________________________________________
今天的課程是「主角走動」及「發射子彈」。
主角走動
首先,先讓我們來創建角色。先至小畫家畫出想要的角色,分別讓他向左、向右、面向前,
但因為在小畫家畫出來的角色是沒有去背的,所以我們必須先幫他去背。
老師教了我們一個簡單快速的方法,開啟內建的預覽程式(老師是使用ppt),點選魔術棒將不要的區塊刪除,再儲存即可。
創建完角色接下來就能開始進入寫程式的階段了。(要記得先將剛剛的那3張圖放進Processing內!)
現在我們先讓角色出現在Processing~~
PImage img0,img1,img2; ///能輸入3張圖
void setup(){
size(800,600); ///設定畫布大小
img0 = loadImage("1拷貝.png"); ///設定圖片
img1 = loadImage("2.png"); ///設定圖片
img2 = loadImage("3.png"); ///設定圖片
}
void draw(){
int userX=370,userY=200; ///設定位置
background(128); ///背景顏色
if(keyPressed && keyCode==LEFT){ ///如果按鍵盤左鍵
image( img1, userX, userY); ///出現向左的角色
}else if( keyPressed && keyCode==RIGHT){ ///如果按鍵盤右鍵
image( img2, userX, userY); ///出現向右角色
}else{ ///如果做其他動作
image( img0, userX, userY); ///出現角色面向前
}
}
既然他出現,那我們就讓它動起來吧!
PImage img0,img1,img2;
void setup(){
size(800,600);
img0 = loadImage("1拷貝.png");
img1 = loadImage("2.png");
img2 = loadImage("3.png");
}
int userX=370,userY=200;
void draw(){
background(128);
if(keyPressed && keyCode==LEFT){
image( img1, userX, userY);
userX--; ///角色位置向左移動
}else if( keyPressed && keyCode==RIGHT){
image( img2, userX, userY);
userX++; ///角色位置向右移動
}else{
image( img0, userX, userY);
}
}
________________________________________________________________________
發射子彈
先選擇你要的背景,一樣先拉進Processing~
PImage img;
void setup(){
size(400,600); ///背景和畫布大小需一致
img = loadImage("background.png");
}
void draw(){
background(img);
}
創建一個戰艇,並讓他能發射子彈
PImage img;
void setup(){
size(400,600);
img = loadImage("background.png");
}
int userX= 50,userY=500; ///戰艇位置
int bulletX, bulletY, bulletFlying=0; ///設定子彈 ,bulletFlying = 0(子彈不發射)
void draw(){
background(img);
ellipse(userX,userY, 55 , 40 ); ///戰艇位置、大小
if(keyPressed && keyCode == UP) userY--; ///控制戰艇的指令
if(keyPressed && keyCode == RIGHT) userX++; ///控制戰艇的指令
if(bulletFlying==1){ ///bulletFlying = 1(子彈發射)
ellipse(bulletX, bulletY, 5, 10); ///子彈位置、大小
bulletY-=2;
}
}
void mousePressed(){
bulletX = userX;
bulletY = userY;
bulletFlying=1; ///按下滑鼠,發射子彈
}
子彈發射的出去了,但都只能有一顆,如何讓子彈有很多顆呢?
PImage img;
void setup(){
size(400,600);
img = loadImage("background.png");
}
int userX= 50,userY=500;
int []bulletX={0,0,0,0,0,0,0,0,0,0};
int []bulletY={0,0,0,0,0,0,0,0,0,0};
int []bulletFlying={0,0,0,0,0,0,0,0,0,0}; ///上週的方法
int n=0; /// 0顆子彈
void draw(){
background(img);
ellipse(userX,userY, 55 , 40 );
if(keyPressed && keyCode == UP) userY--;
if(keyPressed && keyCode == RIGHT) userX++;
for(int i=0; i<n ;i++){
if(bulletFlying[i]==1){
ellipse(bulletX[i], bulletY[i], 5, 10);
bulletY[i]-=2;
}
}
}
void mousePressed(){
bulletX[n] = userX;
bulletY[n] = userY;
bulletFlying[n]=1;
n++;
}
課程結束。
沒有留言:
張貼留言