pygame实现贪吃蛇游戏
作者:DOLPHINちゃん 发布时间:2021-09-23 00:29:21
标签:pygame,贪吃蛇
本文实例为大家分享了pygame实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下
为了简化起见,游戏素材暂定为两张简单的图片(文中用的是30*30)。
大家很方便就能制作。
背景也是纯黑填充。
各种音乐字体特效玩法场景等大家可以自由发挥
import pygame
import sys
import random
fps=6 #设置帧率
move={'up':[-30,0],'down':[30,0],'left':[0,-30],'right':[0,30]} #上下左右映射为值
class MOCCASIN(object): #蛇类
def __init__(self):
self.scheme=pygame.image.load('moccasin.png')
self.x=int(20*random.random())*30
self.y=int(20*random.random())*30
self.body=[[self.x,self.y],[self.x,self.y+30],[self.x,self.y+60]]
self.direct='up'
def update(self):
self.x+=move[self.direct][1]
self.y+=move[self.direct][0]
self.body.insert(0,[self.x,self.y])
class FOOD(object): #食物类
def __init__(self):
self.scheme=pygame.image.load('food.png')
self.coordinate=(int(20*random.random())*30,int(20*random.random())*30)
def updateMap(): #场景更新
screen.fill((0,0,0))
moccasin.update()
screen.blit(food.scheme,food.coordinate)
for x in moccasin.body:
screen.blit(moccasin.scheme,tuple(x)+(30,30))
def bitself(): #是否咬到自己
dct={}
for ll in moccasin.body:
if tuple(ll) in dct :return True
dct[tuple(ll)]=1
return False
if __name__=='__main__':
pygame.init()
pygame.display.set_caption('「moccasin」')
screen=pygame.display.set_mode((600,600))
food=FOOD()
moccasin=MOCCASIN()
clk=pygame.time.Clock()
while True:
clk.tick(fps)
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
elif event.type==pygame.KEYDOWN:
if event.key==pygame.K_UP and moccasin.direct!='down':
moccasin.direct='up'
if event.key==pygame.K_DOWN and moccasin.direct!='up':
moccasin.direct='down'
if event.key==pygame.K_LEFT and moccasin.direct!='right':
moccasin.direct='left'
if event.key==pygame.K_RIGHT and moccasin.direct!='left':
moccasin.direct='right'
if not (0<=moccasin.x<600 and 0<=moccasin.y<600) or bitself():
break; #检测蛇是否死亡
if food.coordinate==tuple(moccasin.body[0]): #是否吃到食物
food=FOOD()
else: moccasin.body.pop()
updateMap() #更新地图
pygame.display.update()
#蛇死亡,游戏结束
screen.fill((0,0,0))
tips="失 败"
tipsFont=pygame.font.Font('C:\Windows\Fonts\msyh.ttc',100)
tipsSurf=tipsFont.render(tips,1,(255,255,255))
screen.blit(tipsSurf,(screen.get_width()/2-tipsSurf.get_width()/2,256))
pygame.display.flip()
来源:https://blog.csdn.net/qq_51449531/article/details/122441860
0
投稿
猜你喜欢
- APNS 是苹果为IOS设备提供的推送服务,全称是(Apple Push Notification service)。 如果你有接触移动互联
- 分形几何学的基本思想:客观事物具有自相似性的层次结构,局部和整体在形态,功能,信息,时间,空间等方面具有统计意义上的相似性,称为自相似性,自
- 如下所示:File–>Settings–>Editor–> Color Scheme–>Language Defau
- 前言在学习Flask框架的蓝图时,遇到导包时用到了`from . 模块 import 对象`,然后试了试直接 import会报错,直接告诉我
- 一、打开一个网页获取所有的内容from urllib import urlopendoc = urlopen("http://ww
- 本文实例讲述了python实现备份目录的方法。分享给大家供大家参考。具体如下:备份脚本1:#!/usr/bin/python# Filena
- 废话不多说,直接开干!需要库pip install openaiimport openai# Set your API keyopenai.
- 在html中引入外部js文件,并调用js文件中的带参函数1 项目结构2 编写a.js、test.html//a.jsfunction abc
- 最近公司产品和百度贴吧合作搞活动,为了增加人气,打算做个自动签到的小程序。这个是测试登录的代码,写的比较随意,仅实现了登录并读取关注贴吧列表
- 网页中使用flash可以增强页面的动态交互效果,特别是用flash来制作广告,效果更好。经常使用flash的人,可能就碰到了flash会遮住
- CSS代码更清晰高效的一些经验是许多网页制作者与开发者都关心的问题。但是大概没有什么魔法,可以保证一下就把你的样式表缩小到百分之多少,合理的
- 什么是WebAPIWebAPI就是 DOM API + BOM APIDOMW3C标准给我们提供了一系列的函数,让我们可以操作:网页内容、网
- 模型VGG,数据集cifar。对照这份代码走一遍,大概就知道整个pytorch的运行机制。 来源 定义模型:'''V
- 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小。这是因为删 除操作后在数据文件中留下碎片所致。Discuz! 在系统数设置
- 一、连接MYSQL格式: mysql -h主机地址 -u用户名 -p用户密码1、 连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录
- 在实际开发中,无论是做PC端、WebApp端还是微信公众号等类型的项目的时候,或多或少都会涉及到微信相关的开发,最近公司项目要求实现微信网页
- 下载地址下载地址: https://dev.mysql.com/downloads/mysql/解压安装将下载好的zip压缩包解压到你的安装
- 在设计主键的时候往往需要考虑以下几点: 1.无意义性:此处无意义是从用户的角度来定义的。这种无意义在一定程度上也会减少数据库的信息冗余。常常
- 链判断运算符(?.)非常好用、常用,搭配Null 判断运算符使用,效果更佳,完美!来,上代码:我们通常获取一个对象多层的属性值时,需要进行多
- 创建测试数据:import pandas as pdimport numpy as np#Create a DataFramedf1 = {