【发布时间】:2019-04-16 07:28:59
【问题描述】:
我正在创建一个玩家位于表面中间的游戏。这个表面移动而不是这个玩家,我希望能够添加诸如剑之类的对象。我有一个问题,当我第一次开始游戏时,我可以将鼠标光标放在对象上,但是当我四处移动时,将鼠标光标放在对象上并没有做任何事情,而在另一个区域,它会做它应该做的事情。我认为随着地图的移动,它会离开屏幕,改变鼠标落在物体上的位置。我创建了这个示例来说明我的意思
import pygame
width,height = 800,600
screen = pygame.display.set_mode((width,height))
world = pygame.Surface((20 * 32, 40 * 32))
itemPos = (4,8)
for x in range(20):
for y in range(40):
pygame.draw.rect(world, (255,0,0), (x * 32,y * 32,32,32), 2)
x,y = 0,0
while True:
screen.fill((0,0,0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
key = pygame.key.get_pressed()
if key[pygame.K_w]:
y += 10
if key[pygame.K_s]:
y -= 10
if key[pygame.K_a]:
x += 10
if key[pygame.K_d]:
x -= 10
screen.blit(world, (x,y))
mouse = pygame.mouse.get_pos()
pygame.draw.rect(world, (0,255,0), (itemPos[0] * 32,itemPos[1] * 32,20,20))
if mouse[0] > itemPos[0] * 32 and mouse[0] < (itemPos[0] * 32) + 32:
if mouse[1] > itemPos[1] * 32 and mouse[1] < (itemPos[1] * 32) + 32:
print("Mouse is over item")
pygame.display.update()
红色的空心方块只是地图。然后较小的绿色方块是我测试光标是否结束的对象。尝试代码并移动一下,然后尝试将光标放在绿色对象上以获取mouse is over item。这基本上是我想要实现但无法弄清楚的目标
【问题讨论】:
-
我不明白我认为我没有使用 HDPI 缩放。如果您可以让程序加载移动一下然后尝试。我四处走动后会出现问题。
-
我在高级显示设置中检查了我的图形,它是 Intel HD Graphics 520。不确定这是否是 HDPI。但如果是这样,如果这是我的问题,我将如何在我的游戏中解决这个问题