python精灵模块_抛物线射猴子

你好,请进入Q群:225792826,免费下载本站最新提供免费资源。从2020年2月20号到3月底,成为本站会员只要原价的3折,即2980元*0.3 = 894元 ,向微信scratch8付款即可成为本站博客会员。即可拥有本站所有原创资源,并提供技术支持。资源只有用在对的地方才能发挥最大价值,本博客只找对的人,数字商品,付款即同意不退货,请三思。

"""
   抛物模块_射猴子.py
   按住鼠标左键,速度会一直增加,松开后发射!
"""
import math
from sprites import *

def shoot():
    global speed
    ball = Sprite(shape='circle',visible=False,tag='ball') 
    ball.goto(arrow.pos())
    angle = math.radians(ball.towards(mouse_pos()))
    ball.dx = speed * math.cos(angle)
    ball.dy = speed * math.sin(angle)
    ball_group.rebuild()
    ball.show()
    
width,height = 516,389
screen = Screen()
screen.setup(width,height)
screen.bgpic('森林.png')

monkey1 = Sprite(shape='monkey.png',tag='monkey')
monkey1.goto(-100,50)

monkey2 = Sprite(shape='monkey.png',tag='monkey')
monkey2.goto(100,100)

monkey3 = Sprite(shape='monkey.png',tag='monkey')
monkey3.goto(130,00)

arrow = Sprite(shape='pointer')
arrow.goto(-220,-150)

# 下面新建组,会自动把相应标签的对象都添加到组中
ball_group = Group('ball')    # 新建由ball标签组成的球组
monkey_group = Group("monkey")# 新建由猴子标签组成的猴组

speed = 10
mkey = Mouse()                # 实例化鼠标按键 
clock = Clock()               # 实例化时钟对象 
start_shoot_flag = False      # 开始发射的一个标志
while True:
    arrow.heading(mouse_pos())
    
    # 按下鼠标指针那么speed,即速度会一直增加
    if mkey.down() and len(ball_group)==0:
       speed = speed + 0.1
       start_shoot_flag = True
       screen.title("速度:"+str(speed))

    # 一旦松开鼠标指针,那么就会发射
    if start_shoot_flag and not mkey.down():
        shoot()
        start_shoot_flag = False
        speed = 10

    # ball_group是继承自set的组,在下面的for循环中的
    # b.remove() 命令会动态的改变它,所以把它转换成
    # 列表进行遍历。
    for b in list(ball_group):         
        b.move(b.dx,b.dy)        
        b.dy = b.dy - 1
        if b.collide_edge(): b.remove() # 从球组和总表中移除

    for m in list(monkey_group):
        if len(ball_group)==0:continue
        for ball in ball_group:
            if m.collide(ball):m.remove()
    screen.update()
    clock.tick(60)

本站所有作品,教程等皆为原创,盗版必究。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。QQ群免费教学群:225792826 (提供真实姓名可入群)
李兴球的博客_Python创意编程技术前沿 » python精灵模块_抛物线射猴子
python编程

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

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