python贪吃蛇

参考打飞机游戏写的贪吃蛇游戏,需要在当前目录下有个tanchishe目录用于存放图片文件即可,还不成熟,但主体已经完成,放这里也有与大家一起探讨的意思。

import pygame

import time
import 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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值