製作一個在視窗彈跳的小球
int ballX=300,ballY=300;
int vx = -2;
int vy = -2;
void setup(){
size(700,400);
}
void draw(){
background(255);
ellipse(ballX,ballY,30,30);
ballX += vx;
ballY += vy;
if(ballX<0) vx = +2;
if(ballX>700) vx =-2;
if(ballY<0) vy = +2;
if(ballY>400) vy =-2;
}
製作一個在地板有拋物線的小球
float ballX=300,ballY=300;
float vx = -2;
float vy = -10;
void setup(){
size(700,400);
}
void draw(){
background(255);
ellipse(ballX,ballY,30,30);
ballX += vx;
ballY += vy;
vy+=0.98;
if(ballX<0) vx = -vx;
if(ballX>700) vx =vx;
if(ballY<0) vy = -vy;
if(ballY>400) vy =-vy;
}
符合牛頓定理的彈跳
float ballX=300, ballY=300;
float vx = -2;
float vy = -10;
void setup() {
size(700, 400);
}
void draw() {
//background(255);
ellipse(ballX, ballY, 30, 30);
ballX += vx;
ballY += vy;
if (ballX<0+15) vx = -vx*0.9;
if (ballX>700-15) vx =-vx*0.9;
if (ballY<0+15) vy = -vy*0.9;
if (ballY>400-15) {
vy =-vy*0.9;
vx =vx*0.9;
ballY=400-15;
}
vy+=0.98;
}
彈跳的馬力歐
PImage imgMario;
float mx=50, my=100;
float mvx=0, mvy=0;
void setup() {
size(1000, 500);
imgMario = loadImage("Mario.png");
}
void draw() {
background(0);
rect(0, 200, 1000, 100);
image(imgMario, mx, my, 110, 110);
mx += mvx;
my += mvy;
if (my<=100)mvy+=0.9;
else my =100;
}
void keyPressed() {
if (keyCode==RIGHT)mx+=3;
if (keyCode==LEFT)mx-=3;
if (keyCode==UP) {
mvy =-15;
}
沒有留言:
張貼留言