turtle和pymunk愤怒的小鸟发射准备程序by李兴球

"""为了用python海龟画图模块和pymunk模块制作愤怒的小鸟,
先编写了这个发射程序。操作方法:拖曳绿球,然后松开即可发射。
读者可以根据这个原型作品用海龟作图模块制作很多小游戏哦。
"""

__author__ = "李兴球"
__date__ = "2019/4/4"
__website__ = "www.lixingqiu.com"
from turtle import *

def draw_line(x,y):
    """画线"""
    fixed_dot.clear()
    fixed_dot.pendown()
    fixed_dot.goto(x,y)
    fixed_dot.penup()    
    fixed_dot.goto(fixed_position)
    ball.goto(x,y)    
    
def shoot(x,y):
    ball.ondrag(None)
    dx =  (fixed_dot.xcor() - ball.xcor())/5    
    dy =  (fixed_dot.ycor() - ball.ycor())/5
    fixed_dot.clear()
    def move():
        nonlocal dy
        x = ball.xcor() + dx
        y = ball.ycor() + dy
        dy = dy - 0.5
        ball.goto(x,y)
        if abs(x)>width//2 or abs(y)>height//2:
            ball.ht()
        else:
            screen.ontimer(move,10)
    move() 
     
    
fixed_position = -300,-150          # 固定点
width,height = 1024,600
screen = Screen()
screen.delay(0)
screen.bgcolor("navy")
screen.setup(width,height)
screen.title("turtle和pymunk愤怒的小鸟发射准备程序by李兴球")
screen.addshape("绿球.gif")

fixed_dot = Turtle(visible=False)
fixed_dot.penup()
fixed_dot.goto(fixed_position)
fixed_dot.pensize(5)
fixed_dot.color("cyan")

ball = Turtle("绿球.gif")
ball.penup()
ball.goto(fixed_position)

ball.ondrag(draw_line)
ball.onrelease(shoot)

"""下面是物理引擎要用到的循环 
while True:
    print(10)
    screen.update()
"""
    
screen.mainloop()

扫码后加李兴球微信号:scratch8,获赠100Python创意程序及大量Scratch作品。 本站所有作品,教程等皆为原创,盗版必究。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。扫码付款后的朋友可以加QQ: 406273900,提供技术支持及发送作品图片与配音素材。亦可直接向微信号scratch8付款购买。
李兴球的博客_Python创意编程技术前沿 » turtle和pymunk愤怒的小鸟发射准备程序by李兴球

学本领,探索更大的世界!

李兴球博客 风火轮编程主页