参考打飞机游戏写的贪吃蛇游戏,需要在当前目录下有个tanchishe目录用于存放图片文件即可,还不成熟,但主体已经完成,放这里也有与大家一起探讨的意思。
import pygame
import timeimport random
#程序的开始入口
class She(object):
def __init__(self, screen):
self.x = 0
self.y = 0
self.chuangkou = screen
self.imageFile = './tanchishe/she.JPG'
self.image = pygame.image.load(self.imageFile).convert()
self.fangXiang = 'right'
self.keyValue = ''
# self.lastx = 0
# self.lasty = 0
self.changDu=[(self.x, self.y)]
def draw(self):
for temp in self.changDu:
print (temp)
self.chuangkou.blit(self.image, temp)
def keyHandle(self, keyValue):
self.keyValue = keyValue
if keyValue == 'left':
print("--按下 左键--")
self.x -= 0
elif keyValue == 'right':
print("--按下 右键--")
self.x += 0
elif keyValue == 'down':
print("--按下 下键--")
self.y += 0
elif keyValue == 'up':
print("--按下 上键--")
self.y -= 0
def move(self):
# self.lastx = self.x
# self.lasty = self.y
if self.keyValue == 'right':
self.x += 20
elif self.keyValue == 'left':
self.x -= 20
elif self.keyValue == 'down':
self.y += 20
elif self.keyValue == 'up':
self.y -= 20
if self.x > 780:
self.x = 0
elif self.x <0:
self.x = 780
if self.y > 780:
self.y = 0
elif self.y <0:
self.y = 780
self.changDu.append((self.x,self.y))
self.changDu.remove(self.changDu[0])
class Shiwu(object):
def __init__(self, screen):
self.x = (random.randint(0,39))*20
self.y = (random.randint(0,39))*20
self.chuangkou = screen
self.imageFile = './tanchishe/she.JPG'
self.image = pygame.image.load(self.imageFile).convert()
def draw(self):
self.chuangkou.blit(self.image, (self.x, self.y))
screen = pygame.display.set_mode((800,800),0,32)
bgImageFile = './tanchishe/background.JPG'
background = pygame.image.load(bgImageFile).convert()
sheImage = './tanchishe/she.JPG'
image = pygame.image.load(sheImage).convert()
player = She(screen)
shiwu = Shiwu(screen)
while True:
screen.blit(background,(0,0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
print ("exit")
exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_a or event.key == pygame.K_LEFT:
print('left')
player.keyHandle('left')
elif event.key == pygame.K_d or event.key == pygame.K_RIGHT:
print('right')
player.keyHandle('right')
elif event.key == pygame.K_s or event.key == pygame.K_DOWN:
print('down')
player.keyHandle('down')
elif event.key == pygame.K_w or event.key == pygame.K_UP:
print('up')
player.keyHandle('up')
player.move()
player.draw()
shiwu.draw()
if player.x == shiwu.x and player.y == shiwu.y:
player.changDu.append((player.x,player.y))
shiwu = Shiwu(screen)
shiwu.draw()
pygame.display.update()
time.sleep(0.1)