在 MIT Scratch 上重制的 PONG 中,球总是卡在墙边

问题描述 投票:0回答:1

我正在为一个班级项目设计一款乒乓球游戏重制版,但我的球总是卡在某些墙壁上来回卡住......

这是负责检测墙壁碰撞并反转球方向的模块:

乒乓球翻拍

我尝试以多种方式重新排列逻辑,但无济于事,尽管在纸面上它应该可以工作...不幸的是,Scratch 不允许 >= 等运算符,所以我必须使用 if x > y 或 x = y ...另外,似乎 if 语句没有运行,因为我尝试在碰撞时更改背景,但它也没有触发...

javascript html drag-and-drop boolean mit-scratch
1个回答
0
投票

连续的 IF 语句相互抵消

这是程序逻辑的简化版本。如果您在 Scratch IDE 中运行它,您会发现输出值与输入值相同。为什么大于screen_x时值没有变化?

如果您按照图中的注释进行操作,您会注意到两个“if”语句都被执行。第一个更改值,第二个将其更改回来。所以这个逻辑显然不能帮助我们扭转球的轨迹。您也许可以通过使用 if-then-else 逻辑来解决此问题,但还有更好的方法。

(点击图片可放大)

Scratch programming if statements

幸运的是,Scratch 可以通过 If on Edge, Bounce 块为您处理球的物理特性。请参阅 ScratchTeam 的 Pong Starter 了解简单示例。

Scratch programming Bounce Block

© www.soinside.com 2019 - 2024. All rights reserved.