Python海龟画图用鼠标控制角色的射击游戏

Python海龟画图用鼠标控制角色的射击游戏练习程序

"""
Python海龟画图用鼠标控制角色的射击游戏练习程序。
本程序可以实时获取鼠标指针的x,y坐标,作者:李兴球
原理:通过获取screen的canvas,对<Motion>鼠标移动事件进行绑定.
由于turtle的坐标系的不同,所以要进行坐标转换.
"""
#从海龟模块导入所有命令

from turtle import *
import math

class Bullet(Turtle):
    def __init__(self,x,y,h):
        Turtle.__init__(self,visible=False,shape="circle")
        self.penup()
        self.dead = False
        self.goto(x,y)
        
    def move(self):
        """朝自己的方向移动"""
        self.fd(10)        

def follow_mouse(event):
    """本函数让小海龟面朝鼠标指针移动"""
    x = event.x - 240              # 转换成海龟坐标系中的x坐标
    y = 180 - event.y              # 转换成海龟坐标系中的y坐标
    dy = y - blue_turtle.ycor()
    dx = x - blue_turtle.xcor()

def shoot(x,y):
    """发射子弹"""
    b = Bullet(x,y,blue_turtle.heading())
 
def born_turtle():
    """生成海龟对象"""
    blue= Turtle(shape='turtle')


if __name__ =="__main__":
    
    blue_turtle = born_turtle()              # 生成海龟
    bullets = []                             # 子弹列表现
    screen = Screen()                        # 新建屏幕对象
    screen.bgcolor("gray")                   # 设置背景灰度
    screen.setup(480,360)                    # 设置屏幕宽高
    screen.delay(0)                          # 设置屏幕延时
    screen.cv.bind("<Motion>",follow_mouse)  # 绑定鼠标移动事件
    screen.onclick(shoot)                    # 单击屏幕,发射子弹
    screen.mainloop()

 

如需要查看完整代码,请扫码付款:

VIP免费查看

已有0人支付

本站所有作品,教程等皆为原创,盗版必究。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。扫码付款后的朋友可以加QQ: 406273900,提供技术支持及发送作品图片与配音素材。亦可直接向微信号scratch8付款购买。
李兴球的博客_Python创意编程技术前沿 » Python海龟画图用鼠标控制角色的射击游戏

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

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