Shuttle Space(穿越太空)
标签:microbit
冰儿burning 发布于 2017-11-24 15:59
            
                    
            
            
                    
            
            
                    
            
            
            2333年,地球能源枯竭,人类为寻找新能,开启了大航天时代。
        宇航员zka,在利益的驱使下独身前往m78星云探索永恒的能源。但由于技术(智商)的限制,zka误入可陨石海......
        游戏流程: 1.屏幕出现shuttle space的滚动字幕(可按a或b跳过)
                           2.屏幕出现飞船向前飞行画面(可按a或b跳过)
                           3.屏幕出现模拟飞船躲避陨石(10次后自动跳入下一阶段,可按a或b跳过)
                           4.屏幕底部中央飞船,每隔5个时间间隔会随机出现1-3个陨石从顶部向下运动
                           5.为了躲避陨石,操作者可用a建控制飞船左移动,用b控制飞船向右移动
                           6.若飞船被陨石击中,则屏幕中出现“died”滚动字幕(可跳过)
                           7.屏幕出现飞船图标,若操作者按a会进入4. 若操作者按b进入8.
                           8.屏幕出现level滚动字幕(可跳过),屏幕中出现level的值。按a 可增加level大小,最大为3,若超过3则level回到1,按b则设定完成进入4.
登录以发表评论
            想购买micro:bit的相关产品,可以搜索淘宝店“恩孚电子“,优惠多多哦!
                
                
                本游戏编写作者:黄智梵(温州中学高三6班)
因为文件太大了,只能用mu下载,如果用BXY,得注释音乐。
from microbit import *
import random
#import music
def switch(List,num):    
    from random import randint
    switchList=[]
    alist = []
    for i in List:
        alist.append(i)
    for i in range(num):
        x = randint(0,len(alist)-1)
        switchList.append(alist[x])
        alist.pop(x)
    return switchList
def waitAB(waitTime):
    lastTime =running_time()
    while True:
        time =running_time()
        if button_a.is_pressed() or button_b.is_pressed() :
            break
        if time - lastTime>=waitTime:
            break
rocksTime=200
allTimes = 10
waitTime = 120
level = 1
lastTime = 0
times = 0
display.scroll('Shuttle Space',wait= False)
#music.play(music.NYAN,wait=False,loop=True)
waitAB(12000)
black = Image("00000:00000:00000:00000:00000")
CGList = [Image("00900:09990:09990:99999:09990"),black,Image("09990:09990:99999:09990:00500"),black,Image("09990:99999:09990:00500:00300"),black,Image("99999:09990:00500:00300:00100"),black,Image("09990:00500:00300:00100:00000"),black]
CGTime = [500,200,500,200,500,200,500,200,500,1000]
for i in range(10):
    display.show(CGList[i])
    sleep(CGTime[i])
    if button_a.is_pressed() or button_b.is_pressed() : 
break
y1 = -2
x1 = 0
xS = 2
time = 0
lastTime = 0
times = 0
display.set_pixel(xS-1,4,9)
display.set_pixel(xS,4,9)
display.set_pixel(xS+1,4,9)
display.set_pixel(xS,3,9)
while True:
    if button_a.is_pressed() or button_b.is_pressed():
        break
    y1 = y1 + 1
    try:
        display.set_pixel(x1,y1,9)
        display.set_pixel(x1+1,y1,9)
    except:
        None
    try:
        display.set_pixel(x1,y1+1,9)
        display.set_pixel(x1+1,y1+1,9)
    except:
        None
    try:    
        display.set_pixel(x1,y1-1,0)
        display.set_pixel(x1+1,y1-1,0)
    except:
        None
    if display.get_pixel(0,2)==9 or display.get_pixel(0,3)==9 :
        if xS == 3:
            pass
        else:
            xS=xS+1
            display.set_pixel(xS-1,4,9)
            display.set_pixel(xS,4,9)
            display.set_pixel(xS+1,4,9)
            display.set_pixel(xS,3,9)
            try:
                display.set_pixel(xS-1,3,0)
                display.set_pixel(xS-2,4,0)
            except:
                None
    elif display.get_pixel(4,2)==9 or display.get_pixel(4,3)==9 :         
        if xS == 1:
            pass
        else:
            xS=xS-1
            display.set_pixel(xS-1,4,9)
            display.set_pixel(xS,4,9)
            display.set_pixel(xS+1,4,9)
            display.set_pixel(xS,3,9)        
            display.set_pixel(xS+1,3,0)
            display.set_pixel(xS+2,4,0)
    else:
        pass
    sleep(waitTime)
    if y1 == 4:
        display.set_pixel(x1,y1,0)
        display.set_pixel(x1+1,y1,0)
        x1 = 3*random.randint(0,1)
        y1 = -2
        times = times + 1
    if times == allTimes:
        break
display.show(black)
time = running_time()
lastTime = time
state = 0
lastPressed = 0
pressedTime = 0
sleep(500)
display.show(Image("00900:09990:09990:99999:09990"))
rocksList=[0,1,2,3,4]
while True:
#game begin    
    while state == 1 :
#rocks move
        time = running_time()
        if time - lastTime >=rocksTime:           
            if y == 4:
                y = 0
                for z in rocksY:
                    display.set_pixel(z,4,0)                
                rocksY = switch(rocksList,random.randint(1,3))
                for z in rocksY:                   
                    display.set_pixel(z,y,5)         
            else:
                y = y + 1
                for z in rocksY:
                    display.set_pixel(z,y-1,0)
                    display.set_pixel(z,y,5)
            lastTime = time        
#ship move
        if button_b.is_pressed():
            if lastPressed =="b":
                pass
            else:
                pressedTime = running_time()
                lastPressed ="b"
                if x == 4 :
                    pass
                else:
                    x = x +1
                    display.set_pixel(x,4,9)
                    display.set_pixel(x-1,4,0)
        if button_a.is_pressed():
            if lastPressed ==1:
                pass
            else:
                pressedTime = running_time()
                lastPressed =1            
                if x == 0 :
                    pass
                else:
                    x = x -1
                    display.set_pixel(x,4,9)
                    display.set_pixel(x+1,4,0)
        if time -pressedTime >=200:
            lastPressed = 0
#  dead       
        if display.get_pixel(x,4) != 9:                    
            display.scroll('DIED',wait=False)
            waitAB(3600)
            display.show(Image("00900:09990:09990:99999:09990"))
            sleep(500)
            state = 0
#setting
    while state == 2:
        display.show(str(level))
        if button_a.is_pressed():
            sleep(200)
            level = level +1
            if level == 4:
                level = 1
        if button_b.is_pressed():
            sleep(200)           
            rocksTime = 250 -50*level
            state = 1
            display.show(black)
            x = 2
            y = 0
            rocksY = switch(rocksList,random.randint(1,3))
            display.set_pixel(x,4,9)
            sleep(500)
# about state
    if button_a.is_pressed():    
        #music.play(music.NYAN,wait=False,loop=True)
        state = 1
        display.show(black)
        x = 2
        y = 0
        rocksY = switch(rocksList,random.randint(1,3))
        display.set_pixel(x,4,9)
        sleep(200)
    if  button_b.is_pressed():
        display.scroll("level",wait= False)           
        waitAB(4200)
        state = 2
        sleep(300)
阅读数: 8693 
