我的屏幕设置使用:
DisplayHeight = 0
DisplayWidth = 0
pygame.display.set_mode = ((DisplayWidth, DisplayHeight), pygame.FULLSCREEN)
然后我尝试使用:
设置边界if imgx <= DisplayWidth:
Right = False
Left = False
if imgy <= DisplayHeight:
Up = False
Down = False
这导致两个问题。 1.当我点击屏幕左侧或顶部时,图像才会停止。任何其他方式,它只是继续前进。
我试过找到这个问题的答案,但我找不到任何相关信息。
答案 0 :(得分:1)
您的变量DisplayWidth
和0
都设置为if imgx <= DisplayWidth:
Right = False
Left = False
if imgy <= DisplayHeight:
Up = False
Down = False
,因此您的代码
imgx
只检查imgy
或0
是否小于pygame.display.set_mode = ((DisplayWidth, DisplayHeight), pygame.FULLSCREEN)
。
此外,而不是
pygame.display.set_mode((DisplayWidth, DisplayHeight), pygame.FULLSCREEN)
你可能想用
set_mode
因为clamp(Rect) -> Rect Returns
是一个函数。
如果您想阻止移动物体离开屏幕,请考虑使用clamp
或clamp_ip
功能:
<强>夹具()强>
将矩形移到另一个中your_rect.clamp_ip(the_rect_of_the_screen)
一个新的矩形,它被移动到完全在参数内 矩形。如果矩形太大而无法放入内部,则它居中 在参数Rect内部,但其大小不会改变。
像
这样的单行your_rect
足以确保the_rect_of_the_screen
永不离开{{1}}。
答案 1 :(得分:-1)
在
DisplayHeight = 0
DisplayWidth = 0
pygame.display.set_mode = ((DisplayWidth, DisplayHeight), pygame.FULLSCRE
在任何版本的python
中,一个总能为我工作答案 2 :(得分:-1)
以下是一些可能为您的问题提供帮助的代码。您似乎没有对图像的运动进行适当限制。一定要有0 <= current_pos + image_dimension +/- increment <= display_size
等约束。
DisplayHeight = 500
DisplayWidth = 800
vertical_increment = 10
horizontal_increment = 10
img = pygame.image.load('image/path')
imgx = 0
imgy = 0
imgw = image.get_width()
imgh = image.get_height()
while 1:
key = function to get key
if key == 'up':
if imgy - vertical_increment >= 0:
move_image('up')
elif key == 'down':
if imgy + imgh + vertical_increment <= DisplayHeight:
move_image('down')
#corresponding code for horizontal
一般情况下,当您发布问题时,请提供更详细的源代码,以便其他用户可以准确有效地回答您的问题,并尽可能少地猜测。
我希望这会有所帮助。