如何以我的坦克面对的同一方向射击?

我想朝坦克面对的方向发射子弹。我使用加速度计来控制我的坦克的角度。当我倾斜我的设备时,我希望我的坦克朝着它所面对的方向射击。使用我当前的脚本,它只能垂直拍摄。 


为了重复这个问题,我不能缩小我的代码比这


from kivy.app import App

from kivy.uix.image import Image

from kivy.uix.widget import Widget

from kivy.properties import NumericProperty, ReferenceListProperty, ObjectProperty,ListProperty, BooleanProperty

from kivy.vector import Vector

from kivy.clock import Clock

import random

import math

from plyer import accelerometer

from kivy.lang import Builder


Builder.load_string("""

<Tank>:

    canvas.before:

        PushMatrix


        Rotate:

            angle: self.angle

            origin: self.center

    canvas.after:

        PopMatrix

<Flame>:

    canvas.before:

        PushMatrix


        Rotate:

            angle: self.angle

            origin: self.center


    canvas.after:

        PopMatrix

<AccelerometerGun>:

    tank: tank

    x_label: x_label

    canvas:

        Rectangle:

            source: "wood.png"

            #texture: root.bg_image.texture#source: "images/bg.png"

            size: self.size#root.size[0]+200, root.size[1]

            pos: self.pos#root.pos

    Label:

        id: x_label

        text: "Tilt value "

        center: self.parent.center

    Tank:

        id: tank

        center: (root.width/2, 70) #self.parent.center

""") 

class Flame(Image):

    velocity_x = NumericProperty(0)

    active = BooleanProperty(False)

    velocity_y = NumericProperty(0)

    velocity = ReferenceListProperty(velocity_x, velocity_y)

    angle = NumericProperty(0)

    def __init__(self, **kwargs):

        super(Flame, self).__init__(**kwargs)

        self.size_hint=(None, None)

        self.source = "zn.zip"

        self.anim_delay= 0.35

        self.anim_loop = 1

        rs = random.randint(70, 80)

        self.size = (rs, rs)

        self.bind(active=self.addV)

    def addV(self, *args):


注意:我想使用 Vector 而不是 Animation 来移动子弹


慕码人8056858
浏览 258回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python