用python制作的游戏,python手机端游戏
制作Python年度第一款真正意义上的手游,3354贪吃蛇游戏_mb628b309d85c3f的技术博客_博客
前言最近有很多同学问能不能用Python做个小游戏,最好能说清楚每一段是干什么用的。
好了,以后我来解释一下如何用Python pygame制作一个吃蛇游戏。
据说贪吃蛇游戏是Gremlin公司在1976年推出的经典街机游戏,所以我们今天用Python做的贪吃蛇游戏是像素版。虽然简单,但还是可以玩的。
我们要做的主要内容是创建一个游戏窗口,绘制饕餮蛇和食蛇吃食饕餮蛇的棋盘模型。
现在开始我们的代码,首先导入模块import pygame。
随机导入
副本1。创建游戏窗口1.1游戏初始化pygame.init()
Clock=pygame.time.Clock() #设置游戏时钟
py game . display . set _ caption( Snake-answer,源码,相关信息可私信)#初始化标题
screen=py game . display . set _ mode((500,500)) #初始化窗口窗体的大小为500 5001.2初始化蛇的位置。蛇的长度是10 ^ 10,这是蛇的x-y坐标snake _ list=[[10,10]]首先设置蛇的一个运行方向。接下来判断键盘事件决定了蛇的运行方向。这条蛇会跑。然后,下一步是通过吃食物来增加它的长度,并在不吃食物的情况下,在不同的位置显示初始的蛇的方向。move_up=False。
move _下移=False
move_left=False
Move_right=True1.3初始化食物的位置x=random.randint(10,490)
y=random.randint(10,490)
Food_point=[x,y]1.4开始游戏循环运行=真
跑步时:
#游戏时钟刷新频率
Clock.tick(20)1.5用白屏填充背景. fill([255,255,255])1.6为范围(0,501,10)内的x绘制背景:
pygame.draw.line(screen,(195,197,199),(x,0),(x,500),1)
pygame.draw.line(screen,(195,197,199),(0,x),(500,x),1)
food _ rect=py game . draw . circle(screen,[255,0,0],food_point,15,0)
1.7 draw snake_rect=[]
对于snake_list中的帖子:
# 1.7.1画蛇的身体
snake _ rect . append(py game . draw . circle(screen,[255,0,0],pos,5,0))
2.画一条贪吃的蛇和食物2.1获取蛇的长度并移动它的身体pos=len(snake_list)-1
当位置0:
snake _ list[pos]=copy . deepcopy(snake _ list[pos-1])
Pos -=12.2如果move_up,改变蛇头的位置:
snake_list[pos][1] -=10
如果snake_list[pos][1] 0:
snake_list[pos][1]=500
如果下移:
蛇形列表[位置][1]=10
如果snake_list[pos][1] 500:
snake_list[pos][1]=0
如果向左移动:
snake_list[pos][0] -=10
如果snake_list[pos][0] 0:
snake_list[pos][0]=500
如果向右移动:
snake_list[pos][0]=10
如果snake_list[pos][0] 500:
snake _ list[pos][0]=02.3 py game . event . get()中事件的键盘控制移动位置:
#打印(事件)
#确定按下了哪个键
if event.type==pygame。按键:
#向上键
if event.key==pygame。kup:
move_up=True
move _下移=False
move_left=False
move_right=False
#向下键
if event.key==pygame。K_DOWN:
move_up=False
向下移动=真
move_left=False
move_right=False
#左键
if event.key==pygame。K_LEFT:
move_up=False
move _下移=False
move_left=True
move_right=False
#向右键
if event.key==pygame。K_RIGHT:
move_up=False
move _下移=False
move_left=False
Move_right=True2.4获取蛇的长度并移动蛇的身体pos=len(snake_list)-1
当位置0:
snake _ list[pos]=copy . deepcopy(snake _ list[pos-1])
位置-=1
3.蛇吃食物3.1碰撞检测如果蛇吃食物如果food_rect.collidepoint(pos):
#蛇吃食物
snake_list.append(食物点)
#重置食物位置
food_point=[random.randint(10,490),random.randint(10,490)]
food _ rect=py game . draw . circle(screen,[255,0,0],food_point,15,0)
3.2如果一条蛇吃了自己head_rect=snake_rect[0]
计数=长度(snake_rect)
当计数1:
if head _ rect . colliderect(snake _ rect[count-1]):
跑步=假
计数-=1
pygame.display.update()
原创作品来自爱吃饼干的博主松鼠,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。