【发布时间】:2021-03-13 01:45:17
【问题描述】:
我正在尝试构建乒乓球,在球击中球拍 x 次后,会出现圣诞节动画。我不确定如何注册它,以及是否应该使用 if else 切换到动画。 Stackoverflow 不会让我发布我的问题,因为它说它“主要是代码”所以这是我试图占用更多的文本空间。到目前为止,这是我的代码:
function setup() {
createCanvas(windowWidth, windowHeight);
//frameRate(6);
paddleA = createSprite(30, height / 2, 10, 100);
paddleA.immovable = true;
paddleB = createSprite(width - 28, height / 2, 10, 100);
paddleB.immovable = true;
wallTop = createSprite(width / 2, -30 / 2, width, 30);
wallTop.immovable = true;
wallBottom = createSprite(width / 2, height + 30 / 2, width, 30);
wallBottom.immovable = true;
ball = createSprite(width / 2, height / 2, 10, 10);
ball.maxSpeed = MAX_SPEED;
paddleA.shapeColor = paddleB.shapeColor = ball.shapeColor = color(
255,
0,
255
);
ball.setSpeed(MAX_SPEED, -180);
}
function draw() {
background(0);
paddleA.position.y = constrain(
mouseY,
paddleA.height / 2,
height - paddleA.height / 2
);
paddleB.position.y = constrain(
mouseY,
paddleA.height / 2,
height - paddleA.height / 2
);
ball.bounce(wallTop);
ball.bounce(wallBottom);
var swing;
if (ball.bounce(paddleA)) {
swing = (ball.position.y - paddleA.position.y) / 3;
ball.setSpeed(MAX_SPEED, ball.getDirection() + swing);
}
if (ball.bounce(paddleB)) {
swing = (ball.position.y - paddleB.position.y) / 3;
ball.setSpeed(MAX_SPEED, ball.getDirection() - swing);
}
if (ball.position.x < 0) {
ball.position.x = width / 2;
ball.position.y = height / 2;
ball.setSpeed(MAX_SPEED, 0);
}
if (ball.position.x > width) {
ball.position.x = width / 2;
ball.position.y = height / 2;
ball.setSpeed(MAX_SPEED, 180);
}
drawSprites();
//switch to Xmas animation
//if (ball.bounce(paddleA)) {
//background("brown");
【问题讨论】:
-
表示您的问题主要是代码的消息表明您需要提供更多关于您正在做什么的上下文:为什么没有计数器来跟踪球的次数在桨上反弹?你已经有了你的动画代码,它是什么样子的?当动画开始时,你想移除其他精灵还是继续游戏?你是如何尝试展示你的动画的,为什么它不起作用?您设法实现了哪种行为,它与您想要得到的有什么不同?这些是您可以添加的一些有用的细节
-
对不起,这是我的第一堂编程课!我不知道你可以做一个柜台/现在你会怎么做。我还没有动画代码,我想在弄清楚如何使开关工作后将其放入,所以我只是在练习不同颜色的背景,这就是底部注释掉的内容。当它开始时,我希望精灵被移除,但随后能够在没有动画的情况下点击回到游戏,这样它就可以不断重复。我什至不知道使用什么样的 if-else 语句来切换它,所以这就是它不起作用的原因,我基本上只是迷路了哈哈。
-
看看我写的答案。我认为它应该让你知道采取哪个方向来做你想做的事。
标签: sprite p5.js skspritenode glitch-framework