我正在使用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):
创建一个D1xD2地图
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)位置绘制D1xD2地图。 grass.gif代表1个草箱。地图包含D1xD2草箱。
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)更改它。我怎么能这样做?
答案 0 :(得分:0)
您可以通过获取当前鼠标位置,然后检查它是否在框的边界内来实现。这是一个无关的示例:
mouse_pos = pygame.mouse.get_pos()
for rectange in my_objects_list:
if rectangle.collidepoint(mouse_pos):
#do something ...