python简单游戏——打气球

这是一个使用Python和turtle库编写的简单游戏,玩家通过点击屏幕上的气球,气球会随之消失。游戏每20毫秒随机生成一个气球,颜色和位置各异,并会上升。当鼠标点击到气球时,该气球将从屏幕上移除。游戏循环不断进行,直至所有气球被消除。
摘要由CSDN通过智能技术生成

在这里插入图片描述

##  点击气球消失的游戏
from turtle import * ## 海龟绘图
from random import randrange,choice

####### 定义变量
balloons = []
# aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, orange, purple, red, silver, teal, white, yellow。
color_option = ['red','blue','aqua','pink','black','green','purple','yellow','orange','silver']
size = 50

####### 自定义函数
def squre(x,y,size,color_name):
    up()
    goto(x,y)
    down()
    color(color_name)
    begin_fill()

    forward(size)
    left(90)
    forward(size)
    left(90)
    forward(size)
    left(90)
    forward(size)
    left(90)

    end_fill()

# 画绳子的函数
def line(x,y,a,b,line_width=1,color_name='black'):
    up()
    goto(x,y)
    down()
    color(color_name)
    width(line_width)
    goto(a,b)

def draw():
    clear()
    for n in range(1,len(balloons)+1):  # 倒序遍历,这样点击的时候在上面的气球才能消失
        #先画线 气球可以盖住圆心
        line(balloons[-n][0],balloons[-n][1] , balloons[-n][0],balloons[-n][1]-size*2, 2,'black')
        up() #抬起笔开始
        goto(balloons[-n][0],balloons[-n][1])
        dot(size,balloons[-n][2]) #直径颜色
        balloons[-n][1] = balloons[-n][1]+1 #气球上升 y坐标+1
    update()


def gameLoop():
    #五十分之一的概率被生成气球
    if randrange(0,50) == 1:
        #气球的x坐标
        x = randrange(-200 +size,200-size)
        c = choice(color_option) #choice从队列中随机选择一个
        balloons.append([x,-200-size,c])
    draw()
    ontimer(gameLoop,20)

def distance(x,y,a,b):
    #勾股定理 计算鼠标位置和圆心的距离  0.5 表示开个根号
    return ((x-a)**2 + (b-y)**2) ** 0.5

def tap(x,y):
    #鼠标的位置  和每个气球进行比较
    for n in range(len(balloons)):
        if distance(x,y,balloons[n][0],balloons[n][1]) < (size/2): # 是否小于半径
            balloons.pop(n)
            return 


####### 主程序
setup(420,420,0,0) # 创建画布
hideturtle()  ## 隐藏箭头 路径
tracer(False) ## 不延时
listen()
onscreenclick(tap)
gameLoop()
done()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值