代码
# 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()