- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我的 Pong 克隆编写一些困难,我写这些是为了熟悉 SFML 和 Xcode。对于最难的难度,我想创建一个人工智能关卡,让计算机立即知道球会去哪里。所以,如果我有 xVelocity 和 yVelocity,我就可以有效地得到斜率。问题是,每次球撞击顶部或底部时,yVelocity 都会反转。所以本质上,我有一个代数斜率问题,每次撞到墙壁时都会产生相反的结果。
现在,我的屏幕高度为 600 像素,命中检测为顶部和底部 5 像素,使空间为 590 像素。
我的问题:是否有某种公式可以包含所有这些因素。举例来说,球在 x = 30 和 y = 240 处击打,斜率为 1.45,我想获取当 x = 770 时球击中的 y 值。
请告诉我是否可以简化此操作。再说一次,我知道如何通过计算它来计算出它,比如说如果球弹跳 4 次,则计算 4 次,但我想知道是否有一种方法可以计算出在边界处进行 y 速度切换。
谢谢!
最佳答案
编辑:只需阅读您的屏幕实际上是 590 像素高,这会改变数学,但不会改变公式
计算球会击中的位置,忽略碰撞。如果 (0,0) 是竞技场的左上角,则取 y = mx + b,其中 b 是 y 偏移量(球在 y = 240 处击中),m 是坡度 (1.45)
现在我们想知道当 x 进一步770-30
位时 y 等于多少,所以做一下数学计算:
y = (1.45)(740) + (240) = 1313
这显然超出了你的范围。它会反射(reflect)出来
y/height = floor(1313/590) = 2 times
意味着斜坡仍在向上移动,它将到达
y mod height = 1313 mod 590 or 133
如果它反射了奇数次(floor(y/2) %2 == 1)
,那么您必须使用以下方法来计算它
MAX_HEIGHT - (y mod height) = 590 - (1903 mod 590) = 590 - 133 = 457
您可以通过将多个 590 高度字段堆叠在一起来可视化这一点,其中一个是您开始的位置:
--------------------------------------------------------------------
|
|
|
| ball ends up here (*)
| *
| *
| *
------------------------(reflection two)------------*---------------
| *
| *
| *
| *
| *
| *
| *
---------------------*---------(reflection 1)------------------------------
| *
| *
| *
| *
|*ball hit here
|
|
-----------------------------------------------------------------------
同样的想法也适用于向下。计算位置,计算出反射次数,使用 mod 或 590 - mod 来确定它应该在哪里。
关于数学 - 困难的 Pong AI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461249/
我使用 Xcode 和 swift 5 构建了一个应用程序。 每次我点击“简单”、“中等”、“困难”或“2 人”按钮时,我都会收到错误消息: Could not cast value of type
所以我和我的搭档正在尝试制作一个玩家对电脑的乒乓球游戏,但我们就是不知道如何让电脑输。 我们已经完成了基本的工作,它运行良好,但计算机永远不会丢失。我们还尝试使用 sleep 来减慢计算机的速度,但是
我应该如何设计“适当的” OO Pong? 正确的想法是可以更改任何元素:球,球场和 Racket 的形状,增加了障碍,甚至是“助力”,例如“可以将球粘在 Racket 上”。 目前,还有两个紧迫的问
我正在尝试用 Java 制作 Pong 游戏,但在球从 Racket 上弹起时遇到了一些问题。 我有两个桨:左桨1,右桨2。 我的想法如下:ball_Y应该在 Racket 的高度之间,ball_X触
我对 Java 还很陌生,需要一些帮助。我已经创建了 Pong 游戏(使用 Eclipse),并且在大多数情况下,它运行得很好。然而,碰撞检测有些不对劲。球从人类控制的 Racket 上反弹得很好,但
我正在打乒乓球,我已经将球的 x 坐标设置为在它碰到 Racket 时立即反转,并在它没有击中 Racket 时停止。此代码在“大部分”时间都有效,但“有时”球会在没有明显原因的情况下一击中 Rack
我正在创建一个 JS Pong 游戏,但 Pong 游戏中的球在几秒钟后开始滞后。我尝试停止动画帧,优化代码以获得更好的性能并重写球的代码,但没有任何效果。有人可以帮我吗? HTML(无 CSS)
我很困惑为什么我的记分板没有在屏幕上更新。分数正在增加(我用调试器检查过,球也正在居中)。但记分牌根本不更新,它不断显示“0:0” 乒乓球类 package com.dheraxysgames.pon
最近我编写了一个pygame 'Pong',我还没有完成它,因为桨还不能移动。 但是,我在这里遇到了一个问题。因为我想要得到的分数等于球击中 window 边缘的次数。对于我的程序,当球撞到墙壁时,得
嗨,我写了这个简单的碰撞检测和弹跳算法,但是碰撞检测到 y 就好像它是 x 轴一样 bool Ball::DetectCollision(Paddle p) { if(GetPosition().y
我正在用 Python 制作经典的 Pong,但我需要帮助。 对于/在这个游戏中,我想计算球的轨迹,因此对于给定的开始点(在左桨上弹跳)和角度(绿色物体),我想计算终点(蓝色 X)。这一切都是为了将
我有一个 UIImageView,其中加载了一个 png 图像序列。 我的问题是 - 你知道有什么方法可以“乒乓”动画序列吗?这样就从 1-24 向前播放,然后从 24-1 向后播放并循环。 (技术上
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我正在用java制作乒乓球,但敌人的AI没有动。它应该向球移动的方向移动。请问有人可以帮助我吗? 主类: import javax.swing.*; public class Main extends
我正在用java制作一个乒乓球类型的游戏,我试图让球从墙上弹开,但每当球撞到球时,它就会停止,它不会从墙上反射出来,我看不到找出原因。 处理球运动的球类 public class Ball { pri
我正在为我的 Pong 克隆编写一些困难,我写这些是为了熟悉 SFML 和 Xcode。对于最难的难度,我想创建一个人工智能关卡,让计算机立即知道球会去哪里。所以,如果我有 xVelocity 和 y
我是 HTML 5 + Canvas 游戏开发新手。试图在我的 Pong 游戏中为球制作动画。这是我的 code .相关片段: 增加球的速度: Ball.prototype.update = func
好吧,我为此搜索了很多,但我能找到的只是人们说的像 pi * direction,方向是我假设的球进入的角度。但我的问题是,我不知道我是如何得到球进入的角度的,所以我做不到这些。如果有人可以解释我将如
试图在 java 中制作乒乓球但不能同时移动两个 Racket 。您可以移动其中一个,但不能同时移动两者。我是否需要创建具有 2 个不同面板的 2 个线程? 这里是我指定关键事件的地方 public
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我是一名优秀的程序员,十分优秀!