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)
        self.setheading(h)
        self.showturtle()
        self.move()
        
    def move(self):
        """朝自己的方向移动"""
        self.fd(10)
        if self.碰到边缘():self.dead = True
        if self.dead:
            self.hideturtle()
            del self
            #print("我自杀好吧")
        else:
            screen.ontimer(self.move,10)

    def 碰到边缘(self):
        return abs(self.xcor())>240 or abs(self.ycor())>180
        

本文隐藏内容 登陆 后才可以浏览
def shoot(x,y): """发射子弹""" b = Bullet(x,y,blue_turtle.heading()) bullets.append(b) # 移去dead为True的子弹 for b in bullets: if b.dead :bullets.remove(b) def born_turtle(): """生成海龟对象""" blue= Turtle(shape='turtle') blue.shapesize(2,2) blue.penup() blue.pencolor("blue") blue.fillcolor("blue") blue.pensize(2) return blue 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()

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