上星期大家應該是去校外教學了,剛好我又再隔離就完美錯過了這次教學活動,不得不說挺遺憾的,但下星期我就可以結束隔離了。麻煩的是,酒店的網路信號比動感地帶3G還差,所以我現在只能通過臉書社團的存檔照片進行操作,直播畫面經常出現卡頓或者掉線的情形。
回到正題,這星期我們要學習如何匯入圖檔,步驟好像和之前用GLUT差不多,不過要注意的事情是這個功能在3.5.4裡面好像不能執行,我就只能重新回滾到3.5.3版本進行操作,修改視窗大小到和圖片解析度一樣後得到:
程式碼如下:
size(640,640);
PImage img;
img =
loadImage("DEDSEC.png");
image(img,0,0);
要添加第二張圖片也很簡單:
圖片的效果會變成這樣
變更成這幾行就可以了:
size(1280,720);
PImage img;
PImage img2;
img =
loadImage("DEDSEC.png");
img2 =
loadImage("DEDSEC2.png");
image(img2,0,0);
image(img,450,200,400,400);
那假如我們想讓這個圖片有隨滑鼠移動的功能該怎麼辦呢,也不難:
程式碼如下:
PImage img;
PImage img2;
void setup()
{
size(1280,720);
img = loadImage("DEDSEC.png");
img2 = loadImage("DEDSEC2.png");
}
void draw()
{
image(img2, 0 , 0);
image(img,mouseX-150/2,
mouseY-120/2,300,300);
}
既然可以控制滑鼠那自然也可以控制背景,只要稍作調整就可以讓這台經典的LP500在80年代風格的城市中奔馳了,且程式會隨著車輛的開動變更景觀,不過似乎因為我選了一張4K圖執行效率相當緩慢
當成OUTRUN的平面2D版本就行
程式碼如下:
PImage img;
PImage img2;
void setup()
{
size(1920,1080);
img=loadImage("city.jpg");
img2=loadImage("contach.jpg");
}
int x=0;
void draw()
{
if(mouseX>900)x-=20;
image(img,x,0,1920,1080);
image(img2,mouseX-50/2,mouseY-50/2,1000,220);
}
當然了,我們要做的還不止於此,我們可以試著寫下彈弓發射後的物理效果模擬:
不過感覺好像有點假是怎麼回事
感覺有點假就對了,因為現在這個程式只遵循牛頓第一定理,現實生活中應該還要有牛頓第二定理才對,稍作修改後我們得到:
有沒有感覺瞬間真實起來了
程式碼如下:
float x=250,y=200;
float vx=1.3,vy=-14;
void setup()
{
size(1280,720);
}
void draw()
{
ellipse(x,y,25,25);
x+=vx;
y+=vy;
vy += 0.98;
if(x>1280 || x<0) vx = -vx*0.85;
if(y>720 || y<0) vy = -vy*0.85;
}
今天上課的內容大概就是這些,除了讀圖外還學到了一些簡易的遊戲製作和簡易物理模擬,但是感覺要做出可以玩的遊戲還要學很多東西才行。






沒有留言:
張貼留言