赞
踩
大家好,我是辣条
记得很久之前有发布过这么一篇: 30个Python小游戏,上班摸鱼我能玩一天【内附源码】不能说是爆火,只能说是口口相传了。不过终究还是有不少刚开始接触Python的人还是一脸蒙圈,于是乎我就只能今天再来上一篇练手小游戏了 |
# @Author : 辣条 ''' 多行注释 本程序运行后会有一只小猫向前走 安装模块 pip install sprites ''' # 从精灵模块导入所有命令 from sprites import * # 新建角色,造型序列为images images = 'res/cat1.png','res/cat2.png' # 新建角色 cat = Sprite(shape=images) # 播放喵声 cat.play('喵.wav') # 当成立的时候(重复执行) while True: # 前进10 cat.fd(10) # 下一个造型 cat.nextcostume() # 等待0.3秒 cat.wait(0.3)
# @Author : 辣条
"""
弹球,本程序主要演示碰到边缘就反弹这个命令
"""
# 从精灵模块导入所有命令
from sprites import *
# 1代表弹球
ball = Sprite(1)
while True:
# 前进0.1
ball.fd(0.1)
# 碰到边缘就反弹
ball.bounce_on_edge()
# @Author : 大海 from sprites import * # 新建虫子精灵 bug=Sprite() # 绘画延时为10毫秒 bug.screen.delay(10) # 画笔尺寸 bug.pensize(4) # 画笔颜色 # 宝蓝 bug.color('dodger blue') # 落笔 bug.pendown() # 重复4次 for _ in range(4): # 前进100 bug.fd(100) # 右转90 bug.rt(90) # 抬笔 bug.penup()
# @Author : 大海 ''' 彩点实验 ''' import time from sprites import * d = Sprite(shape='black',visible=False) d.screen.bgcolor('black') while True: d.randompos() d.randomcolor() time.sleep(0.1) d.dot(random.randint(10,100))
from sprites import *
d = Sprite(shape='blank',visible=False)
d.screen.bgcolor('black')
radius = 200
while True:
d.randomcolor()
d.randomheading()
d.fd(random.randint(1,radius))
d.dot(10)
d.home()
'''
6.彩点实验下三角
'''
from sprites import *
d = Sprite(shape='blank',visible=False)
d.screen.bgcolor('black')
while True:
d.randompos()
if d.xcor() > d.ycor():
d.randomcolor()
d.dot(10)
'''
7.彩点实验抛物线
'''
from sprites import *
d = Sprite(shape='blank',visible=False)
d.screen.bgcolor('black')
while True:
d.randompos()
if d.ycor() > 0.5 * d.xcor() * d.xcor() /100:
d.randomcolor()
d.dot(10)
''' 8.彩点实验椭圆形 ''' from sprites import * d = Sprite(shape='blank',visible=False) d.screen.bgcolor('black') dot1 = (-100,0) dot2 = (100,0) while True: d.randompos() d1 = d.distance(dot1) d2 = d.distance(dot2) if d1 + d2 < 300: d.randomcolor() d.dot(10)
from sprites import * # 新建屏幕 screen = Screen() # 设定背景颜色 screen.bgcolor('dodger blue') # 设定标题 screen.title('旋转的文字') # 新建不可见的角色 t=Sprite(visible=False) # 设定角色为白色 t.color('white') # a是一个全局变量,这里代表角度 a= 0 # 要旋转的文字 info = '大海老师大帅比' # 定义字体样式 ft = ('黑体',32,'normal') # 定义rotate函数 def rotate(): # 申明a为全局变量 global a # 清除以前所写内容 t.clear() t.write(info,align='center',font=ft,angle=a) a = a + 10 screen.ontimer(rotate,50) rotate() screen.mainloop()
""" 大迷宫游戏.py 小老鼠在一个偌大的迷宫中迷失了方向,请按上下左右方向箭头操作它移动。 找到出口,走出迷宫。 本程序需要python精灵模块1.35版本以上支持。 安装最新版本请用cmd打开命令提示符管理员窗口输入以下命令: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sprites --upgrade 本程序主要演示的像素级碰撞检测命令pixelcollide。它返回碰撞点坐标, 主碰方(在这里是老鼠)碰撞点的像素值,被碰方(这时是迷宫),重叠区域矩形。就像下面这样: ((14.0, 3.0), (45, 45, 45), (104, 104, 104), (-17.0, 9.0, 18.0, -9.0, 630.0)) 最后重叠区域是一个五元组,这个五元组最后一个值是重叠区域的面积。 问题是,小老鼠最后找到了绿色的出口,可怎么也无法进门! 当你理解了pixelcollide的返回值后,相信你能对此程序进行修改,从而解决小老鼠的问题。 """ from sprites import * # 从精灵模块导入所有命令 from pygame import mixer # 从pygame模块导入混音器 screen = Screen() screen.setup(480,360) screen.title('大迷宫游戏') mixer.init() mixer.music.load('胡伟立 - 周旋过场.mp3') mixer.music.play(-1,0) # 从头开始循环播放 maze = Sprite('1.png') # 新建迷宫 maze.scale(2) # 迷宫长宽扩大为原来2倍 maze.ondrag(None) # 让迷宫不可拖动,(maze.draggable()能让它重新可拖动) # 新建有两个造型的老鼠角色 rat = Sprite(['res/rat1.png','res/rat2.png']) rat.shapesize(0.5,0.6) leftkey = Key("Left") # 向左方向箭头 rightkey = Key("Right") # 向右方向箭头 upkey = Key("Up") # 向上方向箭头 downkey = Key("Down") # 向下方向箭头 screen.listen() # 监听屏幕按键 r = None while True: if leftkey.down(): # 按左方向箭头往左移 rat.nextcostume() rat.setheading(180) maze.addx(5) r = rat.pixelcollide(maze) if r:maze.addx(-5) if rightkey.down(): # 按右方向箭头往左移 rat.nextcostume() rat.setheading(0) maze.addx(-5) r = rat.pixelcollide(maze) if r:maze.addx(5) if upkey.down(): # 按上方向箭头往左移 rat.nextcostume() rat.setheading(90) maze.addy(-5) r = rat.pixelcollide(maze) if r:maze.addy(5) if downkey.down(): # 按下方向箭头往左移 rat.nextcostume() rat.setheading(-90) maze.addy(5) r = rat.pixelcollide(maze) # 对rat和maze进行像素极碰撞检测 if r:maze.addy(-5) if r: print(r) screen.update()
``
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。