python实验过程⼼得体会_20192416实验四《Python程序设
计》综合实践报告
20192416 实验四 《Python程序设计》 综合实践报告
课程:《Python程序设计》
班级:1924
姓名:不愿透露姓名的はんたくさん
你是我的城池营垒小说txt百度云学号:20192416
实验教师:王志强⽼师
实验⽇期:2020年6⽉11⽇
必修/选修: 公选课
1.实验分析
相较之下个⼈对游戏⽐较感兴趣,于是选择了趣味性较强且容易上⼿的pygame作为综合实践的内容。
通过观看嵩天教授的视频进⾏⾃学,在事件处理机制中学会了通过键盘、⿏标进⾏交互以及时间的计算⽅法。
于是想把所学到的结合起来,制作⼀个可以通过键盘与⿏标操纵、并根据通关时间结算最终得分的⼩游戏,恰好想起上次考科⽬三没过,于是以考试线路为地图进⾏制作。
2.实验设计
第⼀步:设计地图
这⾥以科⽬三考试线路为原型,最终得出了⼀个1400×900的地图
将障碍分为横竖两类,分别导⼊各⾃的位置上。
第⼆步:操纵⼩飞船
键盘上通过KEYDOWN、KEYUP事件实现⼩飞船的加速减速
⿏标通过MOUSEBUTTONDOWN、MOUSEBUTTONUP以及MOUSEMOTION事件使⼩飞船能在⿏标按下的时候随⿏标移动
这是⼩飞船:
第三步:判断失败及成功条件
失败条件判断:既⼩飞船与障碍重合时,可以通过循环分别判断各个障碍是否与⼩飞船有重合部分成功条件判断:当⼩飞船完全进⼊右下⽅区域时成功
位置判断⽤.left .right 等属性进⾏分析
第四步:结果
成功与失败都有各⾃的图⽚出现在屏幕中央,点击图⽚退出游戏,退出前打印游戏结果
图⽚的点击利⽤MOUSEBUTTONDOWN事件的.button属性判断左键的按下。
.pos[]返回的⿏标位置在图⽚范围内来确定游戏的退出。
循环中递增的num值计算当前时间以计算得分。
3.实验内容
爬⾍、数据处理、可视化、机器学习、神经⽹络、游戏、⽹络安全等。
我选择⽤pygame制作了⼀个飞船⼩游戏纸花瓶
4. 实验过程及结果
功能
飞船⼩游戏
能通过键盘和⿏标操控飞船
碰到障碍则失败,弹出失败图⽚,点击图⽚退出游戏
到达右下⾓的终点则成功,弹出成功图⽚,点击图⽚退出游戏
根据通关的时间决定分数
代码
import pygame,sys #将pygame库导⼊到python程序中搬迁补偿的方式
from pygame.locals import * #然后需要引⼊pygame中的所有常量
pygame.init() #初始化
size = width,height = 1400,900
screen = pygame.display.set_mode(size) #定义窗⼝⼤⼩
pygame.display.set_caption("我的第⼀个pygame") #设置窗⼝标题
speed = [0,0] #初始速度
nspeed = [0,5]
WHITE = 255,255,255
num = 0
n = 0
n1 = 33 #障碍数
n2 = 39
still = False #以上均为对各变量的初始定义
car = pygame.image.load(r'D:/abiancheng/. python/tu/car.jpg')
lose = pygame.image.load(r'D:/abiancheng/. python/tu/lose.jpg')
win = pygame.image.load(r'D:/abiancheng/. python/tu/win.gif')
mod = {} #导⼊障碍物的图像
mod[0] = pygame.image.load(r'D:/abiancheng/. python/tu/横障碍.png') #横障碍物mod[1] = pygame.image.load(r'D:/abiancheng/. python/tu/竖障碍.png') #竖障碍物carrect = _rect() #返回矩形图像
carrect = ve(10,420)
loserect = _rect()
loserect = ve(1000,1000)
winrect = _rect()
winrect = ve(1000,1000)
fps = 50
fclock = pygame.time.Clock()
HENG = {}
i=0
while i<=n1:
HENG[i] = mod[0].get_rect()
i+=1
SHU = {}
i=0
while i<=n2:
SHU[i] = mod[1].get_rect()
i+=1
i = 0
while i<=8:
HENG[i] = HENG[i].move((i+1)*100,0)
i+=1
while i<=13:
HENG[i] = HENG[i].move((i-6)*100,100) i+=1
while i<=18:
HENG[i] = HENG[i].move((i-11)*100,200) i+=1
HENG[19] = HENG[19].move(0,400) HENG[20] = HENG[20].move(0,500)
i = 21
while i<=24:
HENG[i] = HENG[i].move((i-11)*100,700) i+=1
while i<=30:
HENG[i] = HENG[i].move((i-17)*100,895) i+=1
while i<=33:
HENG[i] = HENG[i].move((i-21)*100,800) i+=1
i=0
while i<=3:
SHU[i] = SHU[i].move(100,i*100)
i+=1
while i<=7:
SHU[i] = SHU[i].move(100,(i+1)*100)
i+=1
while i<=13:
湖南凤凰古城旅游SHU[i] = SHU[i].move(200,(i-6)*100)
i+=1
while i<=20:
SHU[i] = SHU[i].move(300,(i-12)*100)素锦扮演者
i+=1
while i<=27:
SHU[i] = SHU[i].move(800,(i-19)*100)
i+=1
while i<=32:
SHU[i] = SHU[i].move(900,(i-26)*100)
i+=1
while i<=39:
SHU[i] = SHU[i].move(1000,(i-33)*100)
i+=1
#以上均为各单位的初始位置设置
while True: #⽆限循环,直到游戏结束时退出
for event in (): #从pygame的事件队列中取出事件,并从队列中删除该事件pe == pygame.QUIT: #pygame.QUIT是pygame中定义的事件常量
pe == pygame.KEYDOWN: #键盘的松放进⾏对应⽅向速度的增加
if event.key == pygame.K_LEFT:
speed[0] = speed[0] - 1
elif event.key == pygame.K_RIGHT:
speed[0] = speed[0] + 1
elif event.key == pygame.K_UP:
鼠标加速speed[1] = speed[1] - 1
elif event.key == pygame.K_DOWN:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论