太空飞行游戏

#!NEW SPACEFLIGHT!#############################Ver 8.0.1###########################################
#                                   ###              #                                            #
#          #                  ############# #        #   #######   #######   #######   ##   ##    #
#     ##########              #   ##    ##   #       #        ##   ##   ##        ##   ##   ##    #
#        # #                  #    ######   ##       #   #######   ##   ##   #######   #######    #
#       #     #                      ##              #   ##        ##   ##   ##             ##    #
#     #    #     ##              ##########          #   #######   #######   #######        ##    #
#                                                    #                                            #
#                                                    # ############################################
#                             #       ######         #    Ver                                     #
#    ###########            #   #   ##########       #    #######       #######         ###       #
#            #    #            #         #           #    ##   ##       ##   ##       #####       #
#           #   #           #  #         #           #    #######       ##   ##         ###       #
#            #    #            #      #  #           #    ##   ##       ##   ##         ###       #
#               #                       #            #    #######  ##   ####### ##      ###       #
###################################################################################################


#模块导入--------------------------------------------------------------
import pgzero
import pgzrun
import random as rr
import ybc_box as bb

#pgzero head----------------------------------------------------------
HEIGHT = 700
WIDTH = 400
TITLE = "太空飞行"
#播放音乐--------------------------------------------------------------
music.play('1.mp3')
#定义函数--------------------------------------------------------------
#达到距离
def pas():
    global past,one
    past -= 1
    one += 1
def turn():
    zy.angle += 30
    zy.y += 10
    ball.angle += 30
    ball.y += 10
def num():
    global hhh ,kph
    hhh-= kph
def numy():
    global hhhy,kph
    hhhy-= kph
def num_():
    global balltime,kph
    balltime -= kph
def ball_A():
    global ballst,balltime
    ballst = 'tired'
    clock.schedule_interval(num_,0.09)
def st():
    global frag,ty,yyyy
    frag = True 
    yyyy = True 
    ty = ty*3.5
    clock.schedule_interval(num,0.09)
def end():
    global frag,ty,hhh
    frag = False 

def sty():
    global ftag,ty
    ftag = True 
    zy.image = '3.png'
    clock.schedule_interval(numy,0.09)
    
def endy():
    global ftag,hhhy,ty
    ftag = False 
    if blo>=7:
        zy.image = '2.png'
    elif blo>=1 and blo<7:
        zy.image = '1.png'
    clock.unschedule(numy)
    hhhy = 5
def st1():
    global ty,yyyy,hhh
    ty = ty/3.5
    yyyy = False 
    clock.unschedule(num)
    clock.schedule(end,1)
    hhh = 5

def shurt():
    global rrr
    zy.image = 'hurt.png'
    rrr = True 
    clock.schedule(ehurt,0.12)
def ehurt():
    global rrr,ftag
    rrr = False 
    if blo>=7:
        zy.image = '2.png'
    elif blo>=1 and blo<7:
        zy.image = '1.png'
    if ftag:
        zy.image = '3.png'
def sgood():
    global ppp
    zy.image = '0.png'
    ppp = True 
    clock.schedule(egood,0.12)
def egood():
    global ppp,ftag
    ppp = False 
    if blo>=7:
        zy.image = '2.png'
    elif blo>=1 and blo<7:
        zy.image = '1.png'
    if ftag:
        zy.image = '3.png'
def face():
    if wl[3].image == 'wxr4.png':
        wl[3].image = 'star.png'
    elif wl[3].image == 'star.png':
        wl[3].image = 'wxr4.png'
def none(b = False):
    global  fnag
    fnag = b
#设置变量--------------------------------------------------------------
state = 'ready'
soo = '0'
soo1 = '0'
ballst = 'get'
balltime = 10
wl = []
blo = 10
rrr = False 
ppp = False 
yyyy = False
kill = 0
ty = 1
qc = 0.003
tqcy = 0.000003
m = 0
u = 1
an = 0
hhh = 5
hhhy = 5
kph = 0.1
kc = 50
abc = 0
qabc = 13
past  = 6
one = 1
mdict = {6:'很好,超过100m!',
5:'不错,超过500m!',
4:'可以啊,超过1000m!',
3:'有实力!超过2000m!',
2:'太强了!超过3000m!',
1:'简直超神!!超过5000m!'}
frag = False 
ftag = False 
fnag = False 
#
rakit = False 
rkq = False 
rkp = False 
rk = 0
rkgo = 0
ak  =0
v = ''
vsc = 0
#
#
lop = 0
level = {1:[10,'ball.png',10,50],
         2:[9,'ball.png',9,70],
         3:[8,'ball.png',8,100],
         4:[6,'roball.png',6,150],
         5:[5,'roball.png',5,250]}
sv = 1
ab = [
0.000,0.000,0.001,0.004,0.012,
0.025,0.057,0.102,0.146,0.212,
0.263,0.335,0.401,0.485,0.560,
0.635,0.723,0.819,0.913,1.025,
1.138,1.256,1.398,1.504,1.639,
1.769,1.945,2.101,2.289,2.478,
2.685,2.897,3.106,3.315,3.554,
3.790,4.035,4.286,4.563,4.834,
5.109,5.299,5.601,5.918,6.245,
6.587,6.921,7.272,7.540,7.806,
8.153,8.514,8.980,9.398,9.855,
10.407,10.975,11.435,11.930,12.473,
12.998,13.539,14.051,14.603,15.234,
15.901,16.589,17.315,18.020,18.751,
19.534,20.215,22.013,22.814,23.689,
24.495,25.301,26.137,26.986,27.890,
28.895,29.914,30.959,32.045,33.140,
34.245,35.390,36.587,37.867,39.076,
40.250,41.473,42.841,43.917,45.075,
46.134,47.380,48.585,49.715,50.000,
50.000, 50.285, 51.415, 52.620, 53.866,
54.925, 56.083, 57.159, 58.527, 59.750, 
60.924, 62.133, 63.413, 64.610, 65.755, 
66.860, 67.955, 69.041, 70.086, 71.105, 
72.110, 73.014, 73.863, 74.699, 75.505, 
76.311, 77.186, 77.987, 79.785, 80.466, 
81.249, 81.980, 82.685, 83.411, 84.099, 
84.766, 85.397, 85.949, 86.461, 87.002, 
87.527, 88.070, 88.565, 89.025, 89.593, 
90.145, 90.602, 91.020, 91.486, 91.847, 
92.194, 92.460, 92.728, 93.079, 93.413, 
93.755, 94.082, 94.399, 94.701, 94.891, 
95.166, 95.437, 95.714, 95.965, 96.210, 
96.446, 96.685, 96.894, 97.103, 97.315, 
97.522, 97.711, 97.899, 98.055, 98.231, 
98.361, 98.496, 98.602, 98.744, 98.862, 
98.975, 99.087, 99.181, 99.277, 99.365, 
99.440, 99.515, 99.599, 99.665, 99.737, 
99.788, 99.854, 99.898, 99.943, 99.975, 
99.988, 99.996, 99.998, 99.999, 99.999
]
tip = ''
ake = [ '太空垃圾:旋转的太空垃圾,碰|到减1滴血。特殊点:无。         .',
        '小绿:外星人,碰到减1滴血。特|殊点:可以简单地横向运动。   .',
        '小蓝:外星人,碰到减1滴血。特|殊点:速度特别快。                .',
        '小黄:外星人,碰到减1滴血。特|殊点:常常刷新在壮猿正前方。',
        '星星:闪耀的明星,吃到加1滴血|刷新频率:中速                        .',
        '药水:神奇的药水,喝到无敌5秒|刷新频率:很慢                        .',
        '缩小旗:魔力红旗,碰到缩小5秒|刷新频率:较慢                        .',
        '小金:高级外星人。特殊:出现在|1万米后的结界,喜爱伪装星星   .' ,
        '小青:高级外星人。特殊:出现在|1万米后的结界,可造成2点伤害  .']
tips = [
'彩弹具有穿透性,发射彩弹时,可以找怪物垃圾成群的地方发射彩蛋,效率会更高',
'高级彩弹非常厉害,前期最好杀怪升级彩弹,速度加快时需要靠高级彩弹帮你撑着哟!',
'无敌药瓶不仅无敌,同时增快至3.5倍速度,可以一下飞跃极远的距离,一定要捡!',
'在无敌时刻用彩弹将怪物消灭,怪物再次出现的时间间隔会更长',
'彩弹级别越高,不仅会减少冷却时间,怪物再次出现的时间间隔也会增加',
'可以通过用彩弹消灭怪物的方式升级彩弹,满级5级(消灭50个怪),等级越高越实用!',
'在跑过10000米后,会进入外星人世界,增添不同的外星人,速度的变快会更猛烈',
'绿色外星人可以简单横向运动,攻击范围较大,务必谨慎飞行,观察好其运动走向',
'蓝色外星人的速度极快,是后期的“血量杀手”,趁不注意攻击,最好灵活横向躲开',
'橙色外星人刷新时会刷新在飞船的前方,速度不快,但只有不停躲避才能逃脱追捕!',
'万米后的金色外星人,擅长伪装成不会转动的加血星星,但真正的星星是会转动的!',
'外星人世界中的暗绿色外星人,碰到造成双倍伤害,看到它一定要躲得远远的',
'作者正在研发新版本中,预计2月底下一版本发行,带给更流畅的游戏体验!',
'页面操作飞船时要相对靠后靠下一些,因为你不知道前面会突然刷出一个什么怪物!',
'碰到怪不会立刻减血,而是增加减血积能的分子,每1/60秒分子就会增加1',
'减血积能的分母随着距离的增大变得越来越小,当分子≥分母时,血量才会减1',
'本游戏目前最远记录17518米,等你来战666(刷新记录告诉作者,得截图哈)',
'本游戏还藏着一个秘密,仔细观察代码,说不定你能找到(提示按键功能)!',
'想要飞到万米远,在速度加到非常快时,多吃无敌药瓶、使用高级彩弹是必要之术',
'该游戏目前无尽头,但马上会更新,还需勤加练习!(1万米不算什么,飞到tell作者)'
]
#创建角色--------------------------------------------------------------
a1 = rr.randint(20,380)
a2 = rr.randint(20,380)
b1 = rr.randint(20,380)
b2 = rr.randint(20,380)
a3 = rr.randint(20,380)
b5 = rr.randint(20,380)
bg = Actor('bg.png',[200,0])
zy = Actor('2.png',[200,500])
wxr1 = Actor('wxr1.png',[a1,-140])
wxr2 = Actor('wxr2.png',[a2,-280])
wxr3 = Actor('wxr3.png',[a3,-280])
lit1 = Actor('lj.png',[b1,-560])
lit2 = Actor('lj.png',[b2,-700])
b3 = rr.randint(20,380)
b4 = rr.randint(20,380)
star = Actor('star.png',[b3,-750])
gogo = Actor('prize.png',[b4,-1600])
small = Actor('small.png',[b5,-1300])
lose = Actor('l.png')
win = Actor('w.png')
_star = Actor('star.png',[50,380])
_gogo = Actor('prize.png',[50,450])
_small = Actor('small.png',[50,520])
_lit = Actor('lj.png',[50,100])
_wxr1 = Actor('wxr1.png',[50,170])
_wxr2 = Actor('wxr2.png',[50,240])
_wxr3 = Actor('wxr3.png',[50,310])
_wxr4 = Actor('wxr4.png',[50,590])
_wxr5 = Actor('wxr5.png',[50,660])
ball = Actor('ball.png',zy.pos)
wl.append(wxr1)
wl.append(wxr2)
wl.append(wxr3)
wl.append(lit1)
wl.append(lit2)





#function draw()------------------------------------------------------
def draw():
    global state,frag,hhh,hhhy,rkq,rkp,v,rakit,ty,qc,rkq,blo,rkp,lop,ballst,balltime,abc,qabc,level,sv,kill,tips,tip,one,ake,rk
    #全局绘制
    bg.draw()
    screen.draw.text('Ver 8.0.1',center = [25,690],color = [255,255,255],fontsize = 8)
    star.draw()
    gogo.draw()
    small.draw()
    for i in wl:
        i.draw()
    #说明模式
    if state == 'show':
        _wxr1.draw()
        _wxr2.draw()
        _wxr3.draw()
        _lit.draw()
        _star.draw()
        _gogo.draw()
        _small.draw()
        _wxr4.draw()
        _wxr5.draw()
        screen.draw.text('说明',center = [200,35],color = [255,246,121],fontsize = 35,ocolor = [21,231,21],owidth = 2)
        for i in range(9):
            cen = 85 + i*70 
            args = ake[i].split('|')
            screen.draw.text(args[0],center = [250,cen],color = [221,221,221],fontsize = 18,ocolor = [121,121,121],owidth = 0.2)
            screen.draw.text(args[1],center = [250,cen+30],color = [221,221,221],fontsize = 18,ocolor = [121,121,121],owidth = 0.2)
    #准备模式
    if state == 'ready':
        screen.draw.text('太空飞行',center = [200,230],color = [95,157,245],fontsize = 40,ocolor = [115,207,245],owidth = 1.2)
        screen.draw.text('游戏玩法说明:用光标控制壮猿,尽量',center = [200,280],color = [95,137,245],fontsize = 18,ocolor = [95,137,245],owidth = 0.8)
        screen.draw.text('飞行得更久!!壮猿有10滴血,碰到外',center = [200,300],color = [95,137,245],fontsize = 18,ocolor = [95,137,245],owidth = 0.8)
        screen.draw.text('星人或太空垃圾将会减少一滴血,血条',center = [200,320],color = [95,137,245],fontsize = 18,ocolor = [95,137,245],owidth = 0.8)
        screen.draw.text('归零时游戏失败。加油!                  .',center = [200,340],color = [95,137,245],fontsize = 18,ocolor = [95,137,245],owidth = 0.8)
        screen.draw.text('(点击鼠标开始游戏,空格查看说明)',center = [200,360],color = [95,137,245],fontsize = 18,ocolor = [95,137,245],owidth = 0.8)
    #zy&sv
    zy.draw()
    if ballst != 'tired':
        ball.draw()
    #启动模式
    if state == 'move' or state == 'pause':
        #仪表盘
        screen.draw.text('距离(m):'+str('%.2f'%m),center = [100,30],color = [221,221,221],fontsize = 14,ocolor = [34,34,34],owidth = 0.2)
        screen.draw.text('速度(km·h⁻¹):'+str('%.2f'%(ty*10.8)),center = [100,50],color = [221,221,221],fontsize = 14,ocolor = [34,34,34],owidth = 0.2)
        screen.draw.text('血量:'+str(blo),center = [100,70],color = [255,191,191],fontsize = 14,ocolor = [55,19,19],owidth = 0.2)
        screen.draw.text('减血积能:'+str(abc)+'/'+str(qabc),center = [100,90],color = [255,191,191],fontsize = 14,ocolor = [55,19,19],owidth = 0.2)
        if balltime >= level[sv][0]:
            if ballst == 'get':
                screen.draw.text('彩弹蓄势待发',center = [100,110],color = [255,255,191],fontsize = 14,ocolor = [55,55,19],owidth = 0.2)
            else:
                screen.draw.text('彩弹飞行中',center = [100,110],color = [255,255,191],fontsize = 14,ocolor = [55,55,19],owidth = 0.2)
        else:
            screen.draw.text('彩弹冷却:'+str('%.1f'%balltime)+'s',center = [100,110],color = [255,255,191],fontsize = 14,ocolor = [55,55,19],owidth = 0.2)
        screen.draw.text('消灭数量:'+str(kill),center = [100,130],color = [255,255,191],fontsize = 14,ocolor = [55,55,19],owidth = 0.2)
        screen.draw.text('彩弹等级:'+str(sv)+'级',center = [100,150],color = [255,255,191],fontsize = 14,ocolor = [55,55,19],owidth = 0.2)
        #作弊器
        if fnag == True :
            screen.draw.text('! user cancel !',center = [275,160],color = [205,55,19],fontsize = 20,ocolor = [205,55,19],owidth = 0.2)
        if rakit == True :
            screen.draw.text('RAKIT',center = [380,690],color = [255,255,255],fontsize = 6)
        if rk == 1 :
            screen.draw.text('ty('+'%.2f'%ty+') == '+str(v),center = [275,160],color = [255,255,255],fontsize = 20,ocolor = 'black',owidth = 0.2)
        if rk == 2 :
            screen.draw.text('qc('+'%.4f'%qc+') == '+str(v),center = [275,160],color = [255,255,255],fontsize = 20,ocolor = 'black',owidth = 0.2)
        if rk == 3 :
            screen.draw.text('blo('+str(blo)+') == '+str(v),center = [275,160],color = [255,255,255],fontsize = 20,ocolor = 'black',owidth = 0.2)
        if rk == 4 :
            screen.draw.text('kill('+str(kill)+') == '+str(v),center = [275,160],color = [255,255,255],fontsize = 20,ocolor = 'black',owidth = 0.2)
        if rk == 5 :
            screen.draw.text('rkq('+str(rkq)+') == '+str(v),center = [275,160],color = [255,255,255],fontsize = 20,ocolor = 'black',owidth = 0.2)
        if rk == 6 :
            screen.draw.text('rkp('+str(rkp)+') == '+str(v),center = [275,160],color = [255,255,255],fontsize = 20,ocolor = 'black',owidth = 0.2)
    #buff
    if frag == True and yyyy == True :
        screen.draw.text('[无敌中('+'%.1f'%hhh +'s)]',center = [275,70],color = [255,191,255],fontsize = 20,ocolor = [55,19,55],owidth = 0.2)
    if ftag == True :
        screen.draw.text('[缩小中('+'%.1f'%hhhy+'s)]',center = [275,100],color = [191,255,191],fontsize = 20,ocolor = [19,55,19],owidth = 0.2)
    #米数提醒
    mmm = [100,500,1000,2000,3000,5000]
    colorst = [[95,187,245],[245,187,95],[245,95,95]]
    for i in range(6,0,-1):
        if m >= mmm[-i] and past == i:
            col = colorst[i%2]
            if i == 1:
                col = [245,95,95]
            screen.draw.text(mdict[past],center = [275,130],color = col,fontsize = 15,ocolor = col,owidth = 0.2)
            if one == 1:
                sounds.m.play()
                clock.schedule(pas,2)
                one = 0
    #暂停模式
    if state == 'pause':
        screen.draw.text('[暂停中]',center = [275,40],color = [0,0,0],fontsize = 24,ocolor = [221,221,221],owidth = 0.4)
    #结束模式
    if state == 'stop':
        if m < 10000:
            lose.draw()
        else :
            win.draw()
        screen.draw.text('最终距离(m):'+str('%.2f'%m),center = [200,100],color = [221,221,221],fontsize = 20,ocolor = [221,221,221],owidth = 0.3)
        screen.draw.text('超过了'+str('%.3f'%lop)+'%的玩家!',center = [200,150],color = [221,221,221],fontsize = 20,ocolor = [221,221,221],owidth = 0.3)
        screen.draw.text('Warm Tips: ' ,center = [200,500],color = [255,221,221],fontsize = 24,ocolor = [221,221,221],owidth = 0.1)
        screen.draw.text(tip[:20],center = [200,530],color = [255,221,255],fontsize = 15)
        screen.draw.text(tip[20:],center = [200,550],color = [255,221,255],fontsize = 15)
        screen.draw.text('(点击空格键重来)',center = [200,600],color = [221,221,221],fontsize = 20,ocolor = [221,221,221],owidth = 0.3)





#function on_mouse_down()---------------------------------------------
def on_mouse_down(pos):
    global state,kph,soo
    #运行
    if state == 'ready':
        state = 'move'
    #暂停运行切换
    elif  state == 'move':
        state = 'pause'
        kph = 0
        if soo == '1':
            clock.unschedule(face)
    elif state == 'pause':
        if zy.collidepoint(pos):
            state = 'move'
            kph = 0.1
            clock.schedule_interval(face,3)





#function on_mouse_move()---------------------------------------------
def on_mouse_move(pos):
    global ballst
    #光标移动zy
    if state == 'ready' or state == 'move':
        zy.pos = pos
        if ballst != 'fly' :
            ball.pos = pos





#function on_key_down()-----------------------------------------------
def on_key_down():
    global state,m,ty,blo,kill,rakit,v,qc,wl,rkq,rkp,ballst,soo,kill,sv,ak,rk,rkgo,vsc
    tf = [False ,True ]
    #准备说明切换
    if state == 'ready' and keyboard.K_SPACE:
        state = 'show'
        zy.pos = [-1000,-1000]
        ball.pos = [-1000,-1000]
    elif state == 'show' and keyboard.K_SPACE:
        state = 'ready'
        zy.pos = [200,500]
        ball.pos = [200,500]
    #发射彩弹
    if state  == 'move' and keyboard.K_SPACE and ballst != 'tired':
        ballst = 'fly'
    #作弊器
    if state == 'move' or state == 'pause':
        if keyboard.K_RETURN and keyboard.K_UP and keyboard.K_DOWN :
            if rakit:
                rakit = False 
            else :
                rakit = True 
        kb = [keyboard.K_Q,keyboard.K_W,keyboard.K_E,keyboard.K_R,keyboard.K_T,keyboard.K_Y,]
        for i in range(6):
            if keyboard.K_RETURN and kb[i] and rakit:
                rk = i+1
                rkgo = 1
                ak = 0
        num = ['1','2','3','4','5','6','7','8','9','0']
        kb1 = [keyboard.K_1,keyboard.K_2,keyboard.K_3,keyboard.K_4,keyboard.K_5,keyboard.K_6,keyboard.K_7,keyboard.K_8,keyboard.K_9,keyboard.K_0]
        if rkgo == 1:
            for i in range(10):
                if kb1[i]:
                    v += num[i]
            if keyboard.K_M and ak == 0:
                v += '.'
                ak = 1
            if '.' not in v:
                ak = 0
            if keyboard.K_LEFT and len(v) > 0:
                v = v[0:-1]
            if keyboard.K_A and keyboard.K_Z:
                if v == '' or v == '.':
                    none(True)
                    clock.schedule(none,1)
                    rk = 0
                    v = ''
                else:
                    if rk < 5:
                        if rk == 1:
                            ty = float(v)
                        if rk == 2:
                            qc = float(v)
                        if rk == 3:
                            blo = int(float(v))
                        if rk == 4:
                            kill = int(float(v))
                        v = ''
                    elif rk>=5:
                        if v == '0' or v == '1':
                            if rk == 5:
                                rkq = tf[int(v)]
                            if rk == 6:
                                rkp = tf[int(v)]
                                if v == '0':
                                    vsc = 1
                        else:
                            none(True)
                            clock.schedule(none,1)
                        v = ''
                    rk = 0

            
    if keyboard.K_SPACE and state == 'stop':
        state = 'ready'
        m = 0
        ty = 1
        fi = 1
        blo = 10
        sss = -150
        for i in wl:
            i.x = rr.randint(20,380)
            i.y  =sss
            sss -= 150
        zy.pos = [200,500]
        zy.image = '2.png'
        clock.unschedule(turn)
        zy.angle = 0
        b3 = rr.randint(20,380)
        b4 = rr.randint(20,380)
        b5 = rr.randint(20,380)
        star.pos = [b3,-750]
        gogo.pos = [b4,-1600]
        small.pos = [b5,-1300]
        bg.image = 'bg.png'
        lit1.image = 'lj.png'
        lit2.image = 'lj.png'
        ball.image  ='ball.png'
        soo = '0'
        sv = 1
        kill = 0
        qc = 0.003





#function update()----------------------------------------------------
def update():
    global state,blo,ty,m,u,kc,frag,rrr,ftag,qc,rkq,rkp,lop,hhh,hhhy,kph,ballst,balltime,abc,qabc,soo,tqcy,kill,level,sv,tips,tip,vsc
    # SV等级计算
    killer = [-1,10,20,35,50,1000000000000000000]
    for i in range(5):
        if killer[i] < kill <=killer[i+1]:
            sv = i+1
            break
    #sv图像
    if sv >= 4 and ball.image == 'ball.png':
        ball.image = 'roball.png'
    if sv < 4 and ball.image == 'roball.png':
        ball.image = 'ball.png'
    #改变地图
    if m >= 10000 and soo == '0':
        soo = '1'
        ty = 1
        qc = 0.003
        bg.image = 'gb.png'
        lit1.image = 'wxr4.png'
        lit2.image = 'wxr5.png'
        b3 = rr.randint(20,380)
        b4 = rr.randint(20,380)
        b5 = rr.randint(20,380)
        star.pos = [b3,-750]
        gogo.pos = [b4,-1600]
        small.pos = [b5,-1300]
        clock.schedule_interval(face,3)
    #准备
    if state == 'ready':
        ball.angle += 3
    #启动
    if state == 'move' or state == 'pause':
        if hhh <= 0:
            st1()
        if hhhy <=0:
            endy()
        if rkp:
            for i in wl:
                i.pos = [-1000,1000]
            star.pos = [-1000,1000]
            gogo.pos = [-1000,1000]
            small.pos = [-1000,1000]
        if not rkp and vsc == 1:
            vsc = 0
            for i in wl:
                i.bottom = -50
                i.x = rr.randint(20,380)
            star.y = -(300*ty)
            star.x = rr.randint(20,380)
            gogo.y = -(800*ty)
            gogo.x = rr.randint(20,380)
            small.y = -(600*ty)
            small.x = rr.randint(20,380)
            
    #运行
    if state == 'move':
        #减血积能
        for i in range(12,4,-1):
            if m<18000/i:
                qabc = i
                break 
            qabc = 4
        #动态
        ty += qc
        m += ty/20
        if soo == '1':
            qc += tqcy
        bg.y += ty
        star.y += ty
        star.angle += 12
        gogo.y += ty
        gogo.angle += 12
        small.y += ty*1.2
        ball.angle += 5
        #彩弹
        if ballst == 'fly':
            ball.angle += 10
            ball.y -= level[sv][2]
            for i in wl:
                if ball.colliderect(i):
                    i.y = -(level[sv][3]*ty)
                    kill += 1
            if ball.bottom <= 0:
                ball_A()
        if balltime <= 0:
            clock.unschedule(num_)
            balltime = level[sv][0]
            ballst = 'get'
        #星星
        if star.colliderect(zy):
            blo += 1
            sgood()
            sounds.blo.play()
            star.y = -(300*ty)
            star.x = rr.randint(20,380)
        if star.top >= 700:
            star.y = -(300*ty)
            star.x = rr.randint(20,380)
        #药水
        if gogo.colliderect(zy):
            st()
            sgood()
            sounds.blo.play()
            gogo.y = -(800*ty)
            gogo.x = rr.randint(20,380)
        if gogo.top >= 700:
            gogo.y = -(800*ty)
            gogo.x = rr.randint(20,380)
        #旗子
        if small.colliderect(zy):
            sty()
            sounds.blo.play()
            small.y = -(600*ty)
            small.x = rr.randint(20,380)
        if small.top >= 700:
            small.y = -(600*ty)
            small.x = rr.randint(20,380)
        #wl移动
        for i in wl:
            i.y += ty
        wl[1].y += ty/2
        wl[2].y += ty/10
        wl[3].y += ty/8

        for i in wl:
            if i.top >= 700:
                i.bottom = 0
                if i == wl[2]:
                    i.x = zy.x
                else :
                    i.x = rr.randint(20,380)
        wl[0].x += u
        kc += 1
        if kc == 100:
            u = -u
            kc = 0
        if soo == '0':
            wl[3].angle += 7
            wl[4].angle -= 5
        #wl&zy
        for i in wl:
            if i.colliderect(zy) and frag == False and rkq == False :
                #减积
                abc += 1
                if abc >= qabc:
                    if frag == False and rkq == False :
                        blo -=1
                        if soo == '1' and i==lit2:
                            blo += -1
                        i.bottom = -400
                        i.x = rr.randint(20,380)
                        shurt()
                        sounds.hurt.play()
                        abc = 0
                    #没血了
                    if blo <= 0:
                        state = 'stop'
                        sounds.over.play()
                        clock.schedule_interval(turn,0.04)
                        tip = rr.choice(tips)
                        if m >= 16000:
                            lop = 99.999
                        n = 0
                        sk = 0
                        if m <2500:
                            for i in range(200):
                                n += 0.3
                                sk += n
                                if sk >= m:
                                    lop = ab[int(i)]
                                    break 
                        if m >=2500:
                            for i in range(73):
                                jj = m-2500
                                n += 5
                                sk += n
                                if sk >= jj:
                                    lop = ab[int(126 + i)]
                                    break 
                    elif not rrr:
                        if not ftag:
                            if blo>=7:
                                zy.image = '2.png'
                            elif blo>=1 and blo<=6:
                                zy.image = '1.png'
                    
        
        if bg.top >= 0:
            bg.bottom = 700
pgzrun.go()

游玩之前必须仔细阅读! 用光标控制10滴血的壮猿,使其飞行更久!中途有许多特殊的障碍物,为了抵达猿博士的基地,壮猿可得小心飞行! 打开说明:准备界面单击空格 发射彩弹:游戏中单击空格 暂停:游戏中单击鼠标左键

操作方式

光标控制壮猿,空格发射彩弹 (具体克隆代码,运行空格查看) 押个韵挺简单

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值