对不起,如果这个问题很愚蠢的话。我刚刚开始在一个名为pygame zero的库中编写代码。翻译此代码时遇到问题:
if actor.left > WIDTH:
actor.right = 0
而不是它去的权利,然后出现在左边,我希望它能够去左边,然后出现在右边。再次抱歉,如果这是一个新手问题,但任何帮助都是感激的
这是完整的代码
import pgzrun
WIDTH = 1200
HEIGHT = 700
music.play('music1')
chick = Actor('chick')
chick.pos = 100, 550
hippo = Actor('hippo')
hippo.pos = 1100, 550
def draw():
screen.blit('background1', (0,0))
chick.draw()
hippo.draw()
def update():
if chick.left > WIDTH:
chick.right = 0
if hippo.left > WIDTH:
hippo.right = 0
if keyboard.left:
hippo.x = hippo.x - 2 #contols for hippo
hippo.angle += 3 #rotation effect
if keyboard.right:
hippo.x = hippo.x + 2 #contols for hippo
hippo.angle -= 3 #rotation effect
if keyboard.a:
chick.x = chick.x - 2 #contols for chick
chick.angle += 3 #rotation effect
if keyboard.d:
chick.x = chick.x + 2 #contols for chick
chick.angle -= 3 #rotation effect
pgzrun.go()
在现有代码中,您可以在右侧处理退出。要处理从右侧退出,需要为每个参与者添加一个新的if语句。您可以在现有的if语句下面添加id
我认为这张图片有助于理解正在发生的事情。重要的是要理解窗口就像一个坐标系。0位于左侧,宽度位于右侧
如果
actor.right
的坐标小于0(if chick.right < 0:
),则参与者从左侧完全移出。因此,必须将其左值设置为位于右边缘。这样演员就被移到最右边。你可以这样想,就像你有一个真正的矩形,你把矩形的左边缘移动到一个位置。在这种情况下,位置WIDTH
。当您尝试设置除WIDTH
以外的其他值时,这一点应该更加清楚例如
chick.left = WIDTH/2 # move it nearly to the center
或chick.left = 20
要将其精确移动到中心,请执行以下操作:
只要做个实验,你就会明白发生了什么
相关问题 更多 >
编程相关推荐