Loops 重置p5.js中的动画
在p5js中,我在一个正在进行的循环中有一个3个角色的动画,但我希望他们在5秒后回到他们的原始位置。我还想让他们返回到他们的初始位置按下一个键,无论多少时间已经过去。我是个新手,不知道怎么做。这是完整程序的第一步。有什么想法吗?提前谢谢Loops 重置p5.js中的动画,loops,animation,reset,p5.js,Loops,Animation,Reset,P5.js,在p5js中,我在一个正在进行的循环中有一个3个角色的动画,但我希望他们在5秒后回到他们的原始位置。我还想让他们返回到他们的初始位置按下一个键,无论多少时间已经过去。我是个新手,不知道怎么做。这是完整程序的第一步。有什么想法吗?提前谢谢 var Ax = canvasW/2 - 125, Ay = canvasH/2; var speedAx = 5, speedAy = 6; var Bx = canvasW/2, By = canvasH/2; var speedB
var Ax = canvasW/2 - 125,
Ay = canvasH/2;
var speedAx = 5,
speedAy = 6;
var Bx = canvasW/2,
By = canvasH/2;
var speedBx = 6;
var Cx = canvasW/2 + 125,
Cy = canvasH/2;
var Cy1 = 50,
Cy2 = canvasH - 50;
var t = 0;
var startTime = 0;
var interval = 400; // miliseconds
function setup() {
createCanvas(canvasW, canvasH);
textAlign(CENTER, CENTER);
textFont('Fredoka One');
abcSize = 150;
}
function draw() {
textSize(abcSize);
text('A', Ax, Ay);
Ax = Ax + speedAx;
Ay = Ay + speedAy;
if(Ax<abcSize/2 || Ax>width-abcSize/2){
speedAx*=-1
}
if(Ay<abcSize/2 || Ay>height- abcSize/2){
speedAy*=-1
}
fill('magenta');
text('B', Bx, By);
Bx = Bx + speedBx
if (Bx > canvasW-45) {
speedBx = -speedBx;
}
if (Bx < 0+45) {
speedBx = speedBx * -1;
}
fill('yellow');
textSize(150);
text('C', Cx, Cy);
t = map(millis(), startTime, startTime + interval, 0.0, 1.0);
t = constrain (t, 0, 1);
Cy = Cy1 * (1 - t) + Cy2 * t;
if (t >= 1) {
t = 0;
startTime = millis();
// update Cx1 and Cx2 here with new values from an array
Cy1 = Cy2;
Cy2 = random(100, 500);
}
}
var Ax=canvasW/2-125,
Ay=canvasH/2;
var speedAx=5,
speedAy=6;
var Bx=canvasW/2,
By=canvasH/2;
var-speedBx=6;
变量Cx=canvasW/2+125,
Cy=canvasH/2;
var Cy1=50,
Cy2=canvasH-50;
var t=0;
var startTime=0;
var间隔=400;//毫秒
函数设置(){
创建画布(canvasW,canvasH);
textAlign(居中,居中);
textFont('Fredoka One');
abcSize=150;
}
函数绘图(){
textSize(abcSize);
文本('A',Ax,Ay);
Ax=Ax+speedAx;
Ay=Ay+speedAy;
如果(Axwidth abcSize/2){
speedAx*=-1
}
如果(Ayheight-abcSize/2){
speedAy*=-1
}
填充(“洋红”);
文本('B',Bx,By);
Bx=Bx+速度Bx
如果(Bx>canvasW-45){
speedBx=-speedBx;
}
如果(Bx<0+45){
speedBx=speedBx*-1;
}
填充(“黄色”);
文本大小(150);
文本('C',Cx,Cy);
t=映射(毫秒(),起始时间,起始时间+间隔,0.0,1.0);
t=约束(t,0,1);
Cy=Cy1*(1-t)+Cy2*t;
如果(t>=1){
t=0;
开始时间=毫秒();
//在此处使用阵列中的新值更新Cx1和Cx2
Cy1=Cy2;
Cy2=随机(100500);
}
}
您似乎已经了解了如何根据链接使角色在5秒后返回其原始位置。您可以使用功能keyPressed()
检测按键。阅读更多。使用按键()
function keyPressed() {
Ax = canvasW / 2 - 125;
Ay = canvasH / 2;
Bx = canvasW / 2;
By = canvasH / 2;
Cx = canvasW / 2 + 125;
Cy = canvasH / 2;
resetTime = millis();
}
在您的代码结束时重置字符在按键上的位置