猫史档案馆


【Python作品分享】球球对决【作品秀】

用户:光影炫光影炫查看:0 回复:1 评论:0 创建时间:2021-03-01T13:35:29


【作品展示】

center_image

 

【作品介绍】

↑↓→←操控红球,如果比别的球大可以吞噬它,否则要躲别的球

 

【作品源代码】

#导入turtle库
import turtle
import time
import random
#创建窗口工具
ms=turtle.Screen()
ms.title('球球对决')
ms.setup(1200,800)
ms.bgcolor('black')
ms.tracer(0)
#绘制角色
sam = turtle.Pen()
sam.shape('circle')
a=0.8
sam.shapesize(a)
sam.fillcolor('red')
sam.pencolor('orange')
sam.penup()
sam.goto(-250, 250)

sun = turtle.Pen()
sun.shape('circle')
b=1.8
sun.shapesize(b)
sun.fillcolor('yellow')
sun.pencolor('lightgreen')
sun.penup()
sun.goto(-50, 119)

ball = turtle.Pen()
ball.shape('circle')
c=2
ball.shapesize(c)
ball.fillcolor('pink')
ball.pencolor('purple')
ball.penup()
ball.goto(265, -54)

snow = turtle.Pen()
snow.shape('circle')
d=0.7
snow.shapesize(d)
snow.fillcolor('white')
snow.pencolor('white')
snow.penup()
snow.goto(-120, 21)

ms.update()

writer = turtle.Pen()
writer.penup()
writer.goto(-450, 350)

o=ms.numinput('难度选择','1.普通 2.简单 3.困难 4.超难 5.炼狱 6.即将开启',maxval=5,minval=1)

#设置player的值为True
player=True
#开始喵循环
while player:
    def left():#角色用↑←↓→控制
        sam.setheading(180)
        sam.forward(o+1)
    ms.listen()
    ms.onkeypress(left,'Left')
    def right():
        sam.setheading(0)
        sam.forward(o+1)
    ms.listen()
    ms.onkeypress(right,'Right')
    def up():
        sam.setheading(90)
        sam.forward(o+1)
    ms.listen()
    ms.onkeypress(up,'Up')
    def down():
        sam.setheading(270)
        sam.forward(o+1)
    ms.listen()
    ms.onkeypress(down,'Down')
    #除自己的角色外,其他角色开始追自己角色
    sun.setheading(sun.towards(sam))
    sun.forward(o -0.6)
    ball.setheading(ball.towards(sam))
    ball.forward(o - 0.7)
    snow.setheading(snow.towards(sam))
    snow.forward(o-0.4)
    ms.update()
    time.sleep(0.01)
    #当球碰到一起时,大的球会把小球吃掉
    sam.shapesize(a)
    sun.shapesize(b)
    ball.shapesize(c)
    snow.shapesize(d)
    #自然增加重量
    a=a+o - 0.9999*o
    b=b+o - 0.99995*o
    c=c+o - 0.99992*o
    d=d+o - 0.99996*o
    #在屏幕上写出自己的重量
    q=round(a)   #四舍五入a
    writer.pencolor('red')
    writer.hideturtle()
    writer.write(f'重量:{q}公斤',font=('思源黑体',25))
    time.sleep(0.01)
    writer.clear()
    #判断条件
    if sam.distance(snow.xcor(),snow.ycor())<5:
        snow.goto(random.randint(-600,600),random.randint(-400,400))
        d=a - 0.1
        a=a+(0.1)
    if sam.distance(sun.xcor(),sun.ycor())<5 and a>b:
        sun.goto(random.randint(-600, 600), random.randint(-400, 400))
        b = a+1
        a=a+(0.3)
    if sam.distance(sun.xcor(), sun.ycor()) < 5 and a < b:
        player=False
        writer.write(f'你输了,你的重量是{q}公斤',font=('思源黑体',25))
    if sam.distance(ball.xcor(), ball.ycor()) < 5 and a > c:
        ball.goto(random.randint(-600, 600), random.randint(-400, 400))
        c = a+1.3
        a = a+(1)
    if sam.distance(ball.xcor(), ball.ycor()) < 5 and a < b:
        player = False
        writer.write(f'你输了,你的重量是{q}公斤', font=('思源黑体', 25))
    if ball.distance(sun.xcor(), sun.ycor()) < 5 and b > c:
        ball.goto(random.randint(-600, 600), random.randint(-400, 400))
        c = a+1.3
    if ball.distance(sun.xcor(), sun.ycor()) < 5 and b < c:
        sun.goto(random.randint(-600, 600), random.randint(-400, 400))
        b = a+1
    if ball.distance(snow.xcor(), snow.ycor()) < 5 and c > d:
        snow.goto(random.randint(-600, 600), random.randint(-400, 400))
        d = a - 0.1
    if ball.distance(snow.xcor(), snow.ycor()) < 5 and c < d:
        ball.goto(random.randint(-600, 600), random.randint(-400, 400))
        c = a+1.3

#结束程序
turtle.done()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
白篮白篮

诶这个不错哦

点赞0


评论