"""为了用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()
