Shuttle Space(穿越太空)

标签:microbit

冰儿burning 发布于 2017-11-24 15:59

0EC7E85BD1FAA9A9E46FA899FEF90FD3.png 03B8458FA36D6669479136DA59B6A39F.png 551795B99EADCA6A21A93C5096B1CB1C.png 5C446327EBB6779A03C84AA02E0D4F2C.png
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.
 
LUCY2018-05-31 09:31:26
想购买micro:bit的相关产品,可以搜索淘宝店“恩孚电子“,优惠多多哦!
冰儿burning2017-11-27 16:18:08
本游戏编写作者:黄智梵(温州中学高三6班)
冰儿burning2017-11-24 16:56:07
因为文件太大了,只能用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)

作者

2粉丝 1作品 0随笔
  关注 私信

作者的最新作品


阅读数: 1601