python游戏编程入门游戏代码(python 游戏编程入门)
python有趣的编程代码
class?Point:
??row=0
??col=0
??def?__init__(self,?row,?col):
????self.row=row
????self.col=col
??def?copy(self):
????return?Point(row=self.row,?col=self.col)
#初始框架
import?pygame
import?random
#初始化
pygame.init()
W=800
H=600
ROW=30
COL=40
size=(W,H)
window=pygame.display.set_mode(size)
pygame.display.set_caption('贪吃蛇')
bg_color=(255,255,255)
snake_color=(200,200,200)
head=Point(row=int(ROW/2),?col=int(COL/2))
head_color=(0,128,128)
snakes=[
??Point(row=head.row,?col=head.col+1),
??Point(row=head.row,?col=head.col+2),
??Point(row=head.row,?col=head.col+3)
]
#生成食物
def?gen_food():
??while?1:
????pos=Point(row=random.randint(0,ROW-1),?col=random.randint(0,COL-1))
????#
????is_coll=False
????#是否跟蛇碰上了
????if?head.row==pos.row?and?head.col==pos.col:
??????is_coll=True
????#蛇身子
????for?snake?in?snakes:
??????if?snake.row==pos.row?and?snake.col==pos.col:
????????is_coll=True
????????break
????if?not?is_coll:
??????break
??return?pos
#定义坐标
food=gen_food()
food_color=(255,255,0)
direct='left'???????#left,right,up,down
#
def?rect(point,?color):
??cell_width=W/COL
??cell_height=H/ROW
??left=point.col*cell_width
??top=point.row*cell_height
??pygame.draw.rect(
????window,?color,
????(left,?top,?cell_width,?cell_height)
??)
??pass
#游戏循环
quit=True
clock=pygame.time.Clock()
while?quit:
??#处理事件
??for?event?in?pygame.event.get():
????if?event.type==pygame.QUIT:
??????quit=False
????elif?event.type==pygame.KEYDOWN:
??????if?event.key==273?or?event.key==119:
????????if?direct=='left'?or?direct=='right':
??????????direct='up'
??????elif?event.key==274?or?event.key==115:
????????if?direct?==?'left'?or?direct?==?'right':
??????????direct='down'
??????elif?event.key==276?or?event.key==97:
????????if?direct?==?'up'?or?direct?==?'down':
??????????direct='left'
??????elif?event.key==275?or?event.key==100:
????????if?direct?==?'up'?or?direct?==?'down':
??????????direct='right'
??#吃东西
??eat=(head.row==food.row?and?head.col==food.col)
??#重新产生食物
??if?eat:
????food?=?gen_food()
??#处理身子
??#1.把原来的头,插入到snakes的头上
??snakes.insert(0,?head.copy())
??#2.把snakes的最后一个删掉
??if?not?eat:
????snakes.pop()
??#移动
??if?direct=='left':
????head.col-=1
??elif?direct=='right':
????head.col+=1
??elif?direct=='up':
????head.row-=1
??elif?direct=='down':
????head.row+=1
??#检测
??dead=False
??#1.撞墙
??if?head.col0?or?head.row0?or?head.col=COL?or?head.row=ROW:
????dead=True
??#2.撞自己
??for?snake?in?snakes:
????if?head.col==snake.col?and?head.row==snake.row:
??????dead=True
??????break
??if?dead:
????print('死了')
????quit=False
??#渲染——画出来
??#背景
??pygame.draw.rect(window,?bg_color,?(0,0,W,H))
??#蛇头
??for?snake?in?snakes:
????rect(snake,?snake_color)
??rect(head,?head_color)
??rect(food,?food_color)
??#
??pygame.display.flip()
??#设置帧频(速度)
??clock.tick(8)
#收尾工作
这是一个简易版贪吃蛇的代码,虽然结构简单,但是该有的功能都是完整的,可玩性也不错
用python2.7编的小游戏
帮你搜到了相关教程。
自己用google搜:
用Python和Pygame写游戏-从入门到精通(目录)
就可以找到了。
其是一系列的帖子:
系统学习部分用Python和Pygame写游戏-从入门到精通(1)
Pygame的历史,安装Pygame,第一个Pygame脚本
用Python和Pygame写游戏-从入门到精通(2)
理解游戏中的事件
用Python和Pygame写游戏-从入门到精通(3)
Pygmae的屏幕显示
用Python和Pygame写游戏-从入门到精通(4)
使用字体模块,Pygame 的错误处理
用Python和Pygame写游戏-从入门到精通(5)
像素和颜色
用Python和Pygame写游戏-从入门到精通(6)
使用图像,理解Surface
用Python和Pygame写游戏-从入门到精通(7)
绘制图形
用Python和Pygame写游戏-从入门到精通(8)
产生动画和控制帧率
用Python和Pygame写游戏-从入门到精通(9)
向量基础
用Python和Pygame写游戏-从入门到精通(10)
用户输入
用Python和Pygame写游戏-从入门到精通(11)
使用鼠标控制精灵。一个在鼠标旁不断游动的小鱼的例程。
用Python和Pygame写游戏-从入门到精通(12)
手柄操作,暂无
用Python和Pygame写游戏-从入门到精通(13)
AI初探
用Python和Pygame写游戏-从入门到精通(14)
状态机
用Python和Pygame写游戏-从入门到精通(15)
开始AI编程
用Python和Pygame写游戏-从入门到精通(16)
AI编程总结。一个蚂蚁采集食物,攻击蜘蛛的系统模拟例程。
用Python和Pygame写游戏-从入门到精通(17)
3D基础
用Python和Pygame写游戏-从入门到精通(18)
3D中的概念
用Python和Pygame写游戏-从入门到精通(19)
第一个 3D 程序(伪)。一个空间中的3D立方体的例程。
用Python和Pygame写游戏-从入门到精通(20)
声音原理
用Python和Pygame写游戏-从入门到精通(21)
使用声音,播放音效。一个重力模拟金属球碰撞的例程。
用Python和Pygame写游戏-从入门到精通(22)
播放长时间的背景音乐。一个建议播放器的例程。
额外提高部分用Python和Pygame写游戏-从入门到精通(py2exe编)
使用py2exe将pygame脚本转换为exe可执行文件
用Python和Pygame写游戏-从入门到精通(Sprite篇)
介绍Pygame中不是必须但又很重要的Sprite模块,游戏中的角色实现,大多都要靠它。
实践部分用Python和Pygame写游戏-从入门到精通(实战一:涂鸦画板1)
一个类似于Windows画图板的小玩意儿,精简了很多功能但是有更帅的笔刷。这一次主要是将笔刷的实现。
用Python和Pygame写游戏-从入门到精通(实战一:涂鸦画板2)
加上了按钮,我们的涂鸦画板可以用了!
用Python和Pygame写游戏-从入门到精通(实战二:恶搞俄罗斯方块1)
俄罗斯方块,却有不是普通的俄罗斯方块。
用Python和Pygame写游戏-从入门到精通(实战二:恶搞俄罗斯方块2)
代码构架
用Python和Pygame写游戏-从入门到精通(实战二:恶搞俄罗斯方块3)
实现说明
用Python和Pygame写游戏-从入门到精通(实战二:恶搞俄罗斯方块4)
完成,提供下载
用Python和Pygame写游戏-从入门到精通(实战三:植物大战僵尸1)
自己去一点点学习吧。
python入门可以做的小游戏
1、Python入门拼图小游戏
简单介绍:
将图像分为m×n个矩形块,并将图像右下角的矩形块替换为空白块后,将这些矩形块随机摆放成原图像的形状。
2、Python入门推箱子小游戏
简单介绍:
这是来自日本的一个经典游戏,在狭小的仓库中,要求把木箱放到指定的位置,如果不小心就可能出现箱子无法移动或者通道被堵的情况,所以,如何巧妙利用有限的空间和通道,合理安排移动顺序,就成了这个游戏能否通关的关键。
3、Python入门小游戏之外星人入侵
简单介绍:
玩家可以通过鼠标控制飞船的移动和射击,如果能在敌人达到游戏界面低端之前消灭所有敌人,则游戏胜利,否则游戏失败。
4、Python入门小游戏之吃豆子
简单介绍:
通过键盘方向键,控制游戏的人物吃豆人,吃掉藏在迷宫内的所有豆子,并且不能被敌人抓到。
5、Python入门小游戏之宝石消消乐
简单介绍:
玩家通过鼠标交换相邻的拼图,若交换后,在水平/竖直方向存在连续三个相同的拼图,则这些拼图消失,玩家得分。
6、Python入门小游戏之乒乓球对战
简单介绍:
中间是球网,玩家通过上下键移动球拍,并且这个游戏是可以两个人玩的哦。
7、还有其他四个游戏
它们是:炸弹人小游戏、逃出迷宫、飞扬的小鸟、五子棋
用Python写一个简单的小游戏
相信大家都玩过俄罗斯方块吧,应该是小时候的回忆吧,但是想不想了解一下这个程序是怎么写出来的呢,自己写出来的应该玩起来更有感觉吧!
感觉还是蛮好玩吧!
接下来,我就分享一下这个游戏的源码过程啊!
先用python创建一个py文件
定义这次程序所需要的类
然后写出它所需要的模块
画背景图
画网格线
# 画已经落下的方块
# 画单个方块
# 画得分等信息
这样就可以写出来一个十分简单的俄罗斯方块啦,是不是觉得还不错呢!
python编程应用:小游戏hangman
代码分析:
1.import random导入模块
导入random模块,本程序主要是使用random.randint(0,3)方法生成一个0-3之间的随机的随机数。
2、HANGMAN_PICS常量
Python默认把定义的常量大写,HANGMAN_PICS是一个字符列表常量,字母全部大些也提醒一次赋值之后不再改变,这就是常量的意思。
3、列表格式
animals=['frog','rabbit','owl','peacock'] 列表包含4个元素(item),每一个元素用逗号隔开,左边方括号和右边的方括号是列表必须格式必须带的。
4、列表访问
用索引访问元素animals[0],0就是索引号,以此类推还想访问其他元素...animals[1],animals[2],animals[3],如果继续访问animals[4]就会造成索引越界报indexError的错误。
5、“ + ”连接符
“ + ”号 在程序中除了进行运算,还有就是连接字符串和列表,例1:animals='frog',+'rabbit'就会得到animals = 'frograbbit'. 例2:animals = ['frog','rabbit']和river_animals = ['duck','snake']两个列表通过 “+”连接符 就获得['frog', 'rabbit', 'duck', 'snake']一个合成新列表。
6、用索引赋值来修改列表元素
animals[1] = 'swan' 生成一个新列表 animals = [ 'frog' , 'swan' ]
7、in操作符
in操作符告诉我们in左边的值是否包含在右边列表中,如果该值在列表中它将要返回True;如果该值不在列表中,返回值是False。例1:'dragonfly' in [ 'frog' , 'rabbit' ] 返回值是 False 例2 :'duck' in [ 'duck' , 'snake' ] 返回值是True 。例3: ' bee ' in ' sanke bee bird bear lion owl .'
8、调用方法(method)
8.1针对列表的方法 reverse( ) 和 append( )
reverse() 方法会把列表中的元素顺序反转,numbers = [ 1 , 2 , 3 , 4 , 5 ]然后 numbers.reverse( )会反转列表元素 numbers = [ 5 , 4 , 3 , 2 , 1 ]
append()方法在列表的最后添加一个元素,numbers.append( 6 ) 得到 numbers = [ 1 , 2 , 3 ,4 , 5, 6]
8.2 字符串方法 split( )
程序的51行使用此方法,让字符串 words 反馈一个words = [ 'ant', 'baboon', 'badger', 'bat', 'bear'........] 列表