代码

# time.time()
# 获取1970年1月1日距现在经过的秒数
import pygame as p
import sys as s
import os as o
import time as t
p.init()
screen = p.display.set_mode((1000, 700))


def insertSort(mylist):
    for i in range(1, len(mylist)):
        for j in range(i, 0, -1):
            if mylist[j] < mylist[j - 1]:
                mylist[j], mylist[j - 1] = mylist[j - 1], mylist[j]
            else:
                break


def createDict(path):
    keys = o.listdir(path)
    gameDict = dict.fromkeys(keys)
    for key in keys:
        gameDict[key] = []
        names = o.listdir(path + key + '/')
        for i in range(len(names)):
            names[i] = int(names[i].replace('.png', ''))
        insertSort(names)
        for name in names:
            img = p.image.load(path + key + '/' + str(name) + '.png')
            gameDict[key].append(img)
    return gameDict


UIDict = createDict('images/UI/')
candyDict = createDict('images/candy/')
iconDict = createDict('images/icon/')
soilDict = {'soil1': {'name': 'blank', 'pos': (190, 330), 'time': 0},
            'soil2': {'name': 'blank', 'pos': (545, 330), 'time': 0},
            'soil3': {'name': 'blank', 'pos': (360, 240), 'time': 0},
            'soil4': {'name': 'blank', 'pos': (370, 425), 'time': 0}}
x, y = 0, 0
candyName = 'c0'


def drawcandy():
    for crop in soilDict.values():
        k = crop['name']
        v = crop['pos']
        lv = (t.time() - crop['time']) // 2
        if lv > 3:
            lv = 3
        screen.blit(candyDict[k][int(lv)], v)


def prop(n):
    if soilDict[n]['name'] == 'blank':
        soilDict[n]['name'] = candyName
        soilDict[n]['time'] = t.time()


while True:
    for e in p.event.get():
        if e.type == p.QUIT:
            s.exit()
        elif e.type == p.MOUSEMOTION:
            x = e.pos[0]
            y = e.pos[1]
        elif e.type == p.MOUSEBUTTONDOWN:
            if 390 < y < 490:
                if 270 < x < 370:
                    print('点击了土地1')
                    prop('soil1')
                elif 615 < x < 715:
                    print('点击了土地2')
                    prop('soil2')
            elif 400 < x < 500:
                if 290 < y < 390:
                    print('点击了土地3')
                    prop('soil3')
                elif 480 < y < 580:
                    print('点击了土地4')
                    prop('soil4')
    screen.blit(UIDict['map'][0], (0, 0))
    drawcandy()
    p.display.update()