Python中的回合制游戏地图

1 投票
1 回答
1728 浏览
提问于 2025-04-18 00:58

我正在用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 ...

撰写回答