gpt4 book ai didi

python - 单击矩形时的连续移动(pygame)

转载 作者:行者123 更新时间:2023-12-04 07:14:06 24 4
gpt4 key购买 nike

我已经做了,如果我点击矩形,它会在 X 轴上移动 +1。但我希望运动是无止境的,这样它就会离开屏幕。好吧,主要目标是当我点击矩形时,它会从左向右移动,直到再次点击然后停止。

import pygame
from pygame.constants import MOUSEBUTTONDOWN

pygame.init()

#variables
W, H =500, 500
screen=pygame.display.set_mode((W, H))
surf = pygame.Surface((50,50))
surf.fill('white')
kubiks = surf.get_rect(topleft= (0,0))
fps=60
clock=pygame.time.Clock()

#display shit
def game_display(kubiks):
screen.fill('Red')
screen.blit(surf, (kubiks.x, kubiks.y))
pygame.display.update()

#Cube movement
def cube_movment(kubiks):
kubiks.x +=1

run = True
while run:
clock.tick(fps)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
break
if event.type == pygame.MOUSEBUTTONDOWN:
x, y = event.pos
if kubiks.collidepoint(x, y):
cube_movment(kubiks)

game_display(kubiks)

pygame.quit()

最佳答案

更正 Indentation . MOUSEBUTTONDOWN event 必须在事件循环中进行评估,而不是在应用程序循环中。
单击鼠标按钮时设置状态变量( move )并根据变量的状态移动对象:

move = False

run = True
while run:
clock.tick(fps)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
break

# INDENTATION
#-->|
if event.type == pygame.MOUSEBUTTONDOWN:
x, y = event.pos
if kubiks.collidepoint(x, y):
move = not move

if move:
cube_movment(kubiks)

game_display(kubiks)

pygame.quit()

关于python - 单击矩形时的连续移动(pygame),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68890906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com