alanhc 互動技術-week4
alanhc 互動技術-week4
October 3, 2019
打字遊戲
先用一個code的陣列,使用查表
String []code = {
"qwertyuiop",
"asdfghjkl",
"zxcvbnm",
};
使用上週的技巧,陣列儲存

void keyReleased()
{
for (int i=0; i<3; i++) {
int j = code[i].indexOf(key);
if (j>=0) {
table[i][j] = 0;
println(j);
}
}
}
打字上去
text(哪一個字元 , X座標, Y座標);
text(code[i].charAt(j) , 100+j*size+(size/1.5), i*size+150+(size/4));
textSize(16);

速度與加速度
速度 vx
ballX = +vx;
if (ballX<0) vx=+2;
if (ballX>700) vx=-2;


球不會在邊線消失 +15
if (ballX<0+15) vx = +2;
重力加速度
加一點重力加速度 vy+=0.98
void draw()
{
ellipse(ballX, ballY, 30,30);
ballX+=vx; ballY+=vy;
vy+=0.98;
怕跳太高 *0.7
if (ballY<0+15) vy = -vy*0.7;

void draw()
{
//background(255);
ellipse(ballX, ballY, 30,30);
ballX += vx;
ballY += vy;
vy += 0.98;
if (ballX<0+15) vx = -vx*0.9;
if (ballX>600-15) vx = -vx*0.9;
if (ballY<0+15) vy = -vy*0.9;
if (ballY>400-15) vy = -vy*0.9;
println(vy);
}
Q. 解決球不會一直重複彈跳
A. 解決:float ballX=100, ballY=100; 球的型別要是float
跳跳馬力歐

有力的變化,位置: draw()
marioX += marioVX;
marioY += marioVY;
重力,位置: draw()
marioVY += 0.9;
往上跳後會掉下來
位置: keyPressed()if (keyCode==UP&&flying==0) {
marioVY-=30;
flying=1;
}
if (marioY<100) marioVY += 0.9;
else { ///hold on floor
marioY=100;
flying=0;
}
左右跑的摩擦力

位置: keyPressed()
if (keyCode==LEFT) {
marioVX-=3;
softBrake=0;
}
if (keyCode==RIGHT) {
marioVX+=3;
softBrake=0;
}
if (keyCode==RIGHT) softBrake=1;
if (keyCode==LEFT) softBrake=1;
if (softBrake==1) marioVX *=0.9;
*=0.9 慢慢減少
馬力歐跳方塊
位置: draw()
if (marioY<100) {
if (flying==1)marioVY += 0.9;
if (marioVY>0 && marioY>50 && (marioX>100&&marioX<400)) { flying=0; marioY=50;}
} else {
if (marioY<=50 && (marioX>100&&marioX<400)) marioY=50;
else marioY=100;
flying=0;
}