2019年10月3日 星期四

Week04 葉政翰 馬利歐

1. 彈跳摩擦力




程式碼 :

float ballX = 300, ballY= 300;
float speedX = 2 , speedY = 2;
void setup()
{
  size(800, 600);
}

void draw()
{
  background(128);
  ellipse(ballX, ballY, 30, 30);
  ballX += speedX;
  ballY += speedY;
  if(ballX < 15) speedX = -speedX;
  if(ballX > 785) speedX = -speedX;
  if(ballY < 15) speedY = -speedY*0.9;
  if(ballY > 585) {
    speedY = -speedY*0.9;
    speedX = speedX*0.9;
    ballY=600-15;
  }
  speedY += 0.98;
}


2. 馬力歐移動和跳躍(二段跳)



程式碼:


PImage imgMario;
float marioX =100, marioY =250;
float marioVX =0, marioVY = 0;
void setup()
{
  size(500,500);
  imgMario = loadImage("mario.png");
}
boolean brake = false;
void draw()
{
  background(255);
  rect(0,400,500,50);
  image(imgMario, marioX, marioY, 76,128);
  marioX+= marioVX;
  marioY+= marioVY; 
  if(marioY <=250) marioVY += 0.9;
  else marioY = 250;
  if(brake) marioVX *= 0.9;
  if(!keyPressed && marioVX != 0 && marioX < 400-38 && marioX > 38) brake = true;
  if(marioX > 500-76)
  {
    marioX = 500-76;
    marioVX = 0;
  }
  if(marioX < 0)
  {
    marioVX = 0;
    marioX = 0;
  }
}

void keyPressed()
{
  if(keyCode ==RIGHT && marioVX <10)
  {
    brake = false;
    marioVX +=1;
  }
  if(keyCode ==LEFT&& marioVX >-10)
  {
    brake = false;
    marioVX -=1;
  }
  if(keyCode ==UP && marioY > 100) marioVY = -15;
}

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...