概述:
在世界田径史上,速度的赛场几乎由黑人所垄断,牙买加、美国的运动员常常夺金。在百米突破极限上,有一种固有观念,亚洲人有着天然的劣势,9秒9是亚洲人不可逾越的鸿沟。但是,在最近举办的东京奥运会男子百米跑步比赛中,32岁的亚洲飞人苏炳添跑出了9秒83的好成绩,获得半决赛第一名,亚洲百米从此进入“9秒8时代”,颠覆了欧美对黄种人速度的认知,完成了历史性的创举。为了致敬这位一直保持着亚洲纪录的黄种人——苏炳添,我们制作了一款小游戏,让苏神和博尔特在掌控板上PK。
材料清单
- 掌控版 X1 链接
设计思路:
1.我们最开始想要只用一个掌控版制作一个简单的跑步游戏。
2.后来,我们想,既然在现实中苏神无法战胜博尔特,那么,我们也可以在虚拟游戏中实现梦想。所以,我们想到用一个掌控版通过python编程,用掌控版操控苏神与人机博尔特比赛,谁的坐标先到终点线,谁就胜利。
步骤1 设定游戏规则;
当游戏开始时,持续点击P键即可奔跑,谁先到达终点,谁就是冠军!!!
步骤2 编辑代码;
代码
# MindPlus
# mpython
from mpython import *
import random
import time
random.seed(time.ticks_cpu())
touch_threshold = {'P': 400, 'Y': 400, 'T': 400, 'H': 400, 'O': 400, 'N': 400}
brightness=9
oled.DispChar("前几天,东京奥运会刚刚", 0, (1-1)*16, 1)
oled.DispChar("结束,苏炳添以9秒83的", 0, (2-1)*16, 1)
oled.DispChar("成绩破亚洲记录进入决赛", 0, (3-1)*16, 1)
oled.DispChar("并在决赛中取得第五名的", 0, (4-1)*16, 1)
oled.show()
time.sleep(4)
oled.fill(0)
oled.DispChar("好成绩。", 0, (1-1)*16, 1)
oled.DispChar("今天,我们再现苏炳添的", 0, (2-1)*16, 1)
oled.DispChar("英姿,通过一场游戏致敬", 0, (3-1)*16, 1)
oled.DispChar("这位32岁的老将!", 0, (4-1)*16, 1)
oled.show()
time.sleep(3.5)
oled.fill(0)
oled.DispChar("游戏规则:", 43, 0, 1)
oled.DispChar("当游戏开始,点击P键即", 0, (2-1)*16, 1)
oled.DispChar("可开始奔跑,与对手隔空", 0, (3-1)*16, 1)
oled.DispChar("对决,先过线者获胜", 0, (4-1)*16, 1)
oled.show()
time.sleep(3.5)
oled.fill(0)
oled.DispChar("3", 60, 22, 1)
oled.show()
time.sleep(1)
oled.fill(0)
oled.DispChar("2", 60, 22, 1)
oled.show()
time.sleep(1)
oled.fill(0)
oled.DispChar("1", 60, 22, 1)
oled.show()
time.sleep(1)
oled.fill(0)
oled.DispChar("开始", 50, 22, 1)
oled.show()
time.sleep(1)
oled.fill(0)
oled.DispChar("苏", 0, (2-1)*16, 1)
oled.DispChar("博", 0, (3-1)*16, 1)
oled.pixel(0,24,1)
oled.hline(0, 18, 128, 1)
oled.hline(0, 30, 128, 1)
oled.hline(0, 42, 128, 1)
oled.show()
DianWei = 0
DianWei2 = 0
while True:
BuChang = (random.randint(1, 2))
YiDong = (DianWei + BuChang)
if touchPad_P.read() < touch_threshold['P']:
oled.hline(0, 18, 128, 1)
oled.hline(0, 30, 128, 1)
oled.hline(0, 42, 128, 1)
oled.vline(120, 18, 24, 1)
oled.DispChar("苏", 0, (2-1)*16, 1)
oled.DispChar("博", 0, (3-1)*16, 1)
oled.pixel(YiDong,24,1)
oled.show()
DianWei = YiDong
BuChang2 = 1
YiDong2 = (DianWei2 + BuChang2)
oled.hline(0, 18, 128, 1)
oled.hline(0, 30, 128, 1)
oled.hline(0, 42, 128, 1)
oled.vline(120, 18, 24, 1)
oled.DispChar("苏", 0, (2-1)*16, 1)
oled.DispChar("博", 0, (3-1)*16, 1)
oled.pixel(YiDong2,36,1)
oled.show()
DianWei2 = YiDong2
if (DianWei2 >= 120):
oled.fill(0)
oled.DispChar("You fail", 42, 22, 1)
oled.show()
brightness=5
rgb.fill((255*brightness//9, 0*brightness//9, 0*brightness//9))
rgb.write()
break
if (DianWei >= 120):
oled.fill(0)
oled.DispChar("You win", 42, 22, 1)
oled.show()
brightness=5
rgb.fill((0*brightness//9, 255*brightness//9, 0*brightness//9))
rgb.write()
break
time.sleep((random.uniform(0.1, 0.2)))
在制作过程中,指导老师给予我们很大的帮助。地下铁老师为我们提供了制作研究的环境,在遇到困难时,又提供技术支持,谢谢老师。
作者:胡传时,李臻飏
指导老师:地下铁
评论