Python - 向我的宇宙飞船所面向的方向(以度为单位的角度)发射子弹

2024-03-23

对此有很多疑问。但他们都没有具体解决我的问题的答案,我整天都在尝试谷歌搜索。

我的问题很简单。

我有一艘可以移动和旋转的太空飞船,我已经在跟踪它的航向和它所面对的方向。例如,在下图中,船的航向大约为45度它从 0°(从顶部开始顺时针旋转)到 359°

我只需要让一颗子弹沿着我的飞船所面向的方向(航向)直线前进,从我的飞船当前所在的 X,Y 坐标开始

弹丸类:

class Projectile(object) :

    def __init__(self, x, y, vel, screen) :
        self.screen = screen
        self.speed = 1 #Slow at the moment while we test it
        self.pos = Vector2D(x, y)
        self.velocity = vel #vel constructor parameter is a Vector2D obj
        self.color = colors.green

    def update(self) :
        self.pos.add(self.velocity)

    def draw(self) :
        pygame.draw.circle(self.screen, self.color, self.pos.int().tuple(), 2, 0)

现在我的船级的拍摄方法:

class Ship(Polygon) :

    # ... A lot of ommited logic and constructor

    def shoot(self) :
        p_velocity = # .......... what we need to find
        p = Projectile(self.pos.x, self.pos.y, p_velocity, self.screen)
        # What next?

给定船舶角度,尝试:

class Projectile(object) :
    def __init__(self, x, y, ship_angle, screen) :
        self.screen = screen
        self.speed = 5 #Slow at the moment while we test it
        self.pos = Vector2D(x,y)
        self.velocity = Vector2D().create_from_angle(ship_angle, self.speed, return_instance=True)
        self.color = colors.green

    def update(self) :
        self.pos.add(self.velocity)

    def draw(self) :
        pygame.draw.circle(self.screen, self.color, self.pos.int().tuple(), 2, 0)

的相关部分Vector2D:

def __init__(self, x = 0, y = 0) : # update to 0
    self.x = x
    self.y = y

def create_from_angle(self, angle, magnitude, return_instance = False) :
    angle = math.radians(angle) - math.pi / 2
    x = math.cos(angle) * magnitude
    y = math.sin(angle) * magnitude
    print(x, y, self.x, self.y, angle)
    self.x += float(x)
    self.y += float(y)
    if return_instance :
        return self
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python - 向我的宇宙飞船所面向的方向(以度为单位的角度)发射子弹 的相关文章

  • 2d 图像点和 3d 网格之间的交点

    Given 网格 源相机 我有内在和外在参数 图像坐标 2d Output 3D 点 是从相机中心发出的光线穿过图像平面上的 2d 点与网格的交点 我试图找到网格上的 3d 点 This is the process From Multip
  • 为什么我的混淆矩阵只返回一个数字?

    我正在做二元分类 每当我的预测等于事实时 我发现sklearn metrics confusion matrix返回单个值 难道没有问题吗 from sklearn metrics import confusion matrix print
  • 定义Python源代码编码的正确方法

    PEP 263 http www python org dev peps pep 0263 定义如何声明Python源代码编码 通常 Python 文件的前两行应以以下内容开头 usr bin python coding
  • python array(10,1) 和 array(10,) 之间的区别

    我正在尝试将 MNIST 数据集加载到数组中 当我使用 X train y train X test y test mnist load data 我得到一个数组 y test 10000 但我希望它的形状为 10000 1 数组 1000
  • 检查 python 中命令行参数的数量

    我是蟒蛇新手 还是把脚弄湿了 我正在尝试做这样的事情 import sys if len sys argv lt 3 or lt len sys argv gt 3 print This script will compare two fi
  • 为什么第二个 request.session cookies 返回空?

    我想使用 requests Session post 登录网站 但是当我已经登录主页 然后进入帐户页面时 看来cookies还没有保存 因为cookies是空的 而且我无法进入正确的帐户页面 import requests from bs4
  • 是否有一个包可以维护所有带有符号的货币列表?

    是否有一个 python 包提供所有 或相当完整 货币的列表与符号 如美元的 有优秀的pycountry 贪财的 https github com limist py moneyed and ccy http code google com
  • python celery -A 的无效值无法加载应用程序

    我有一个以下项目目录 azima init py main py tasks py task py from main import app app task def add x y return x y app task def mul
  • 如何在 Python 中的函数入口、内部和退出处进行日志记录

    我希望能够使用 Python 日志记录工具在我的代码中进行简单且一致的日志记录 我能够执行以下操作 我希望所有现有 未来的模块和函数都有 输入 和 完成 日志消息 我不想添加相同的代码片段来定义日志记录参数 如下所示don t want t
  • PIL.Image.open和tf.image.decode_jpeg返回值的区别

    我使用 PIL Image open 和 tf image decode jpeg 将图像文件解析为数组 但发现PIL Image open 中的像素值与tf image decode jpeg不一样 为什么会出现这种情况 Thanks 代
  • 时间序列数据预处理 - numpy strides 技巧以节省内存

    我正在预处理一个时间序列数据集 将其形状从二维 数据点 特征 更改为三维 数据点 时间窗口 特征 在这样的视角中 时间窗口 有时也称为回顾 指示作为输入变量来预测下一个时间段的先前时间步长 数据点的数量 换句话说 时间窗口是机器学习算法在对
  • 使用 suds SOAP 库进行 HTTP 身份验证的奇怪行为

    我有一个正在运行的 python 程序 它使用 suds 通过 SOAP 获取大量数据 Web服务是通过分页功能实现的 这样我就可以抓取nnn每个 fetch 调用的行并获取下一个nnn与后续的电话 如果我使用如下代码向 HTTP 服务器进
  • Discord.py 嵌入中禁用按钮/冻结按钮

    I m trying to make a replica of this bot in which when I press any of the buttons below it shows a dropdown menu and you
  • Python守护进程:保持日志记录

    我有一个将一些数据记录到磁盘的脚本 logging basicConfig filename davis debug log level logging DEBUG logging basicConfig filename davis er
  • 基于值而不是类型的单次调度

    我在 Django 上构建 SPA 并且有一个庞大的功能 其中包含许多功能if用于检查我的对象字段的状态名称的语句 像这样 if self state new do some logic if self state archive do s
  • PyInstaller“ValueError:源代码字符串不能包含空字节”

    我得到了一个ValueError source code string cannot contain null bytes执行命令时pyinstaller main py在具有和不具有管理员权限的cmd中 Traceback most re
  • 在 numpy 中连接维度

    我有x 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 2 3 I want 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 6 也就是说 我想连接中间维度的所有项目 在这种特殊情况下我可以得到这
  • 高效创建抗锯齿圆形蒙版

    我正在尝试创建抗锯齿 加权而不是布尔 圆形掩模 以制作用于卷积的圆形内核 radius 3 no of pixels to be 1 on either side of the center pixel shall be decimal a
  • 将时间添加到日期时间

    我有一个像这样的日期字符串 然后使用strptime 所以就像这样 my time datetime datetime strptime 07 05 15 m d Y 现在我想添加 23 小时 59 分钟my time 我努力了 timed
  • django jet 中的自定义徽标

    我目前正在尝试对 django 管理面板的皮肤进行一些定制 以使其更符合我们的品牌 目前我们使用 django jet 来美化管理面板 django jet 可以自定义 css html 吗 所有评论都说我应该更改一些 html 文件 但我

随机推荐

  • 如何指定指向重载函数的指针?

    我想将重载函数传递给std for each 算法 例如 class A void f char c void f int i void scan const std string s std for each s begin s end
  • 修剪 JSON.NET 中的 json 字符串

    我在用JObject ToString 方法将 JSON 对象转换为字符串 但是如何修剪输出以删除标记之间的空格 无需求助于使用正则表达式 只需使用Formatting None option string json jObject ToS
  • 'Class.forName("org.sqlite.JDBC");' 是什么意思做?

    我正在尝试使用 SQLite 数据库创建一个简单的应用程序 我选择使用SQLiteJDBC 驱动程序 http www zentus com sqlitejdbc 下面的代码取自上述网站 我的问题是关于 public static void
  • MVC2 中 Html.Partial(view, model) 和 Html.RenderPartial(view,model) 之间有什么区别(如果有)?

    当然 除了它返回的类型以及您以不同方式调用它的事实之外 如果它们不同 为什么要调用其中一个而不是另一个 定义 Type System Web Mvc Html RenderPartialExtensions Assembly System
  • 编辑 web.config 中的设置

    我不知道如何标题这个问题 我正在向 PayPal 的 Express Payment API 发出请求 我正在使用他们的 dll 来帮助发出请求并解析响应 他们的代码工作的说明是将您的授权凭据添加到web config文件 我已经这样做了
  • 如何将容器上的 localhost 端口转发到主机上的 localhost?

    我的主机上有一个守护进程在某个端口 即 8008 上运行 并且我的代码通常通过联系 localhost 8008 与守护进程交互 我现在已经容器化了我的代码 但还没有容器化守护进程 如何将容器上的 localhost 8008 转发到运行容
  • 如何拥有两个具有不同命名空间和相同 JAXB 类的不同端点?

    我正在使用弹簧肥皂ws 我有以下对应于复杂类型的 JAXB 域类 XmlAccessorType XmlAccessType FIELD XmlType name propOrder reference reason XmlRootElem
  • npm 更新检查失败

    昨晚我尝试更新我的节点和 npm 它似乎很成功 但是从那时起 每当我尝试运行任何 npm 命令时 我都会遇到同样的错误 我尝试卸载并重新安装 npm 但无法解决下面的错误消息 节点版本 v8 3 0 我收到的错误消息 npm update
  • 通话录音 - 使其在 Nexus 5X 上运行(可以生根或定制 ROM)

    我正在尝试使用AudioRecord with AudioSource VOICE DOWNLINK在 Nexus 5X Android 7 1 我自己的 AOSP 版本 上 我已经过了权限阶段 将我的 APK 移至特权应用程序 并进行了调
  • 无法安装 .apk 文件

    当我尝试执行 apk 文件时 出现以下错误 安装失败 缺少共享库 在命令提示符下 cd 到 adb 的路径 导航到 SDK 的 platform tools 目录 然后执行命令 adb d install path to your app
  • Rails 的 Mailchimp API - list.subscribe(:double_optin => false) 不起作用

    我正在使用 mailchimp api gem 可以通过提交电子邮件并将确认电子邮件发送到已注册的电子邮件来使提交的电子邮件正常工作 但我想禁用 double optin 标志 我正在尝试这样做 mc Mailchimp API new m
  • 从通用列表中查找项目

    我在从通用列表中获取记录时遇到问题 我创建了一个通用函数 我想从其中获取任何类型的类的记录 以下是示例代码 public void Test
  • Flutter:获取 Youtube 视频的缩略图

    我正在使用 youtube player flutter 在我的应用程序中播放 youtube 视频 有没有办法在 flutter 中获取 YouTube 视频的缩略图 我有一个 YouTube 视频 URL 我需要获取该 URL 的缩略图
  • 提供身份验证时,代理会缓存 HTTP 响应吗?

    给定一个 URI 其中包含正确配置的缓存标头 如果两个用户向同一 URI 发出请求 但提供两组不同的凭据 则代理是否会缓存每个用户 URI 或每个 URI 的响应 还是根本不缓存 该响应将仅用于其他用户 如果Cache Control响应头
  • 将文本框放置在 silverlight 数据网格列标题内

    如何在silverlight数据网格列标题内添加文本框 这样我就可以使用文本框进行过滤
  • Go包初始化

    情况 一个 Go 包A由 3 组成 go文件 并且我使用另一个包中的函数B在每个文件中 我必须导入包B在每个文件的开头 问题 是套餐B实际上初始化了3次还是只初始化了1次 简短回答 初始化只会执行一次 长答案 引用相关规范部分 程序执行 h
  • Odoo 14:在树视图中添加部分功能

    I need add a section functionality like sales gt quotation view has in one of my tree views 我的代码view是这样的
  • Powershell 输出和 GUI 之间的 Windows 防火墙状态不同

    当我跑步时 获取 NetFirewallProfile 我看到 域配置文件已启用 设置为 True 但是 当我转到 控制面板 gt Windows 防火墙 时 GPO 会关闭域配置文件 此外 在具有高级设置的 Windows 防火墙中 防火
  • PHP中如何删除所有cookie?

    setcookie id null 1 domain name 上面只会删除特定的cookie 但是如何将它们全部删除呢 这应该可以解决问题 foreach COOKIES as c id gt c value setcookie c id
  • Python - 向我的宇宙飞船所面向的方向(以度为单位的角度)发射子弹

    对此有很多疑问 但他们都没有具体解决我的问题的答案 我整天都在尝试谷歌搜索 我的问题很简单 我有一艘可以移动和旋转的太空飞船 我已经在跟踪它的航向和它所面对的方向 例如 在下图中 船的航向大约为45度它从 0 从顶部开始顺时针旋转 到 35