2020年11月16日 星期一

week04 鄭皓文

           上星期大家應該是去校外教學了,剛好我又再隔離就完美錯過了這次教學活動,不得不說挺遺憾的,但下星期我就可以結束隔離了。麻煩的是,酒店的網路信號比動感地帶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);

} 

    既然可以控制滑鼠那自然也可以控制背景,只要稍作調整就可以讓這台經典的LP50080年代風格的城市中奔馳了,且程式會隨著車輛的開動變更景觀,不過似乎因為我選了一張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;

}

    今天上課的內容大概就是這些,除了讀圖外還學到了一些簡易的遊戲製作和簡易物理模擬,但是感覺要做出可以玩的遊戲還要學很多東西才行。










沒有留言:

張貼留言