Python中的回合制游戏地图
我正在用Python制作一个回合制游戏,但在游戏地图上遇到了一些问题。
这是我的代码:
import pygame, sys
from pygame.locals import *
pygame.init()
class Map(object):
def __init__(self, x, y, SURF):
self.x = x
self.y = y
self.SURF = SURF
def createNewMap(self, D1, D2):
创建一个D1乘D2的地图。
self.Map = []
self.D1 = D1
self.D2 = D2
for n in range(self.D1):
current = ['']*self.D2
self.Map.append(current)
return self.Map
def drawMap(self):
从(x,y)位置绘制这个D1乘D2的地图。grass.gif代表一个草地方块。这个地图包含D1乘D2个草地方块。
imgObj = pygame.image.load('images\\textures\grass.gif')
imgObj = pygame.transform.scale(imgObj, (40, 40))
xc = self.x
yc = self.y
for itemY in self.Map:
for itemX in self.Map[self.Map.index(itemY)]:
self.SURF.blit(imgObj, (xc, yc))
xc += 40
yc += 40
xc = self.x
我想要当鼠标悬停在某个方块上时,把它换成另一个纹理的方块(grass1.gif)。我该怎么做呢?
1 个回答
0
你可以通过获取当前鼠标的位置,然后检查这个位置是否在框的范围内来实现这个功能。下面是一个不相关的例子:
mouse_pos = pygame.mouse.get_pos()
for rectange in my_objects_list:
if rectangle.collidepoint(mouse_pos):
#do something ...