pygame在重新初始化后不会收到滚动事件



我正在为学校项目制作一个游戏,游戏中有滚动的内容。我需要重新安装pygame以确保每个都被重置。但不知何故,在重新启动pygame后,滚动就停止了。

我制作了一个简单的脚本来测试是否真的是这样,事实确实如此。

import pygame
def main():
while True:
pygame.init()

screen = pygame.display.set_mode([1280, 720])
pygame.display.set_caption("PYGAME DOES NOT RECEIVE SCROLL EVENT AFTER RE-INIT?")

frame = pygame.time.Clock()

running = True

while running:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
print("left click")
elif event.button == 4:
print("scroll up")
elif event.button == 5:
print("scroll down")
if event.type == pygame.QUIT:
running = False
frame.tick(30)
pygame.quit()
if __name__ == "__main__":
main()

它得到左键点击事件,但没有滚动事件。有什么办法解决这个问题吗?

不要使用pygame.MOUSEBUTTONDOWN进行滚动。

我为您找到了另一种使用pygame.MOUSEWHEEL进行地图滚动的方法。

这是修改后的代码:

import pygame
def main():
while True:

pygame.init()
screen = pygame.display.set_mode([1280, 720])
pygame.display.set_caption("PYGAME DOES NOT RECEIVE SCROLL EVENT AFTER RE-INIT?")

frame = pygame.time.Clock()

running = True

while running:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
print("left click")
if event.button == 3:
print("right click")
if event.type == pygame.MOUSEWHEEL:
if event.y == 1:
print("scroll up")
if event.y == -1:
print("scroll down")
if event.type == pygame.QUIT:
running = False
frame.tick(60)
pygame.quit()
if __name__ == "__main__":
main()

顺便说一句,新年快乐,好运伴侣~

最新更新