在python中基于回合制的游戏地图

时间:2014-04-02 07:09:10

标签: python pygame

我正在使用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)更改它。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您可以通过获取当前鼠标位置,然后检查它是否在框的边界内来实现。这是一个无关的示例:

mouse_pos = pygame.mouse.get_pos()
for rectange in my_objects_list:
    if rectangle.collidepoint(mouse_pos):
        #do something ...