水代码(python)
  • 板块灌水区
  • 楼主xizao_haoxuan
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/15 20:30
  • 上次更新2024/9/15 20:38:20
查看原帖
水代码(python)
1418678
xizao_haoxuan楼主2024/9/15 20:30
import random

import  codeaha

stage  =  codeaha.Environment()

stage.set_background("planegame2")   #设置背景

hero  =  codeaha.Sprite("heroplane1",0,-210)     #英雄飞机的位置



score = 0     #显示分数

live=3       #生命值

time = 0  #定时器

TextScore = codeaha.Text("Score: " + str(score), -200,210, "white")  #分数文本

TextLive = codeaha.Text("Live: "+str(live),180,210,"white")   #生命值文本

#键盘移动

def right_key():

    if hero.xcor()+hero.get_width()/2+20>250:

        hero.set_right(250)

    else:

        hero.move_right(50)

stage.event_key("d", right_key)



def left_key():

    if hero.xcor()-hero.get_width()/2-20<-250:

        hero.set_left(-250)

    else:

        hero.move_left(50)

stage.event_key("a", left_key)

#碰撞事件

def collision(sprite, hit_sprite):

    global score

    global live

    #如果碰到了子弹

    if hit_sprite.get_image_name() == "bullet1":  

        stage.remove_sprite(sprite) # 移除敌机

        enemyend=codeaha.Sprite('enemyend1',sprite.xcor(),sprite.ycor()) # 死亡特效

        stage.wait(0.1)

        stage.remove_sprite(enemyend) # 移除死亡特效

        stage.remove_sprite(hit_sprite) # 移除子弹

        score+=1

        TextScore.set_text("Score: " + str(score)) # 显示分数



    # 如果碰到了英雄飞机      

    if hit_sprite.get_image_name()== "heroplane1":

        stage.remove_sprite(sprite) # 移除敌机

        boom=codeaha.Sprite('aircraftend',sprite.xcor(),sprite.ycor()) # 爆炸特效

        stage.wait(0.1)

        stage.remove_sprite(boom) # 移除爆炸特效

        live-=1

        TextLive.set_text("Live: "+str(live)) # 显示生命值



#间歇事件

def interval():

    global time

    global live

    # 游戏结束

    if live<=0:

        hero.load_image('aircraftend')

        stage.wait(0.1)

        stage.remove_sprite(hero) 

        GameOver = codeaha.Text("Game Over!", 0,0, "red")

        GameOver.set_size(2)

    if live>0:

        time +=1

        if  time  %  9  ==  0 :

            bullet= codeaha.Sprite("bullet1", hero.xcor(),hero.ycor()+hero.get_height()/2+10)

            bullet.move_up(1000)

            stage.remove_sprite(bullet)

        if  time  %  30  ==  0 :

            enemy = codeaha.Sprite("enemyplane1",random.randint(-220,220),270)

            enemy.event_collision(collision)

            enemy.move_down(500)

            stage.remove_sprite(enemy)

    

stage.event_interval(interval, 0.015)
2024/9/15 20:30
加载中...