- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的第一个项目是用 Java 制作 Pong 游戏。因为我需要为我的 x
计算增量位置和y
位置,我认为最好的方法是使用双变量(如果我错了请原谅)。但是你不能使用 double 来填充库中的形状 java.awt.*
.
这里我计算的是球碰到 Racket 后的角度
int c = (int) Math.atan2(ball.getPosY(), ball.getPosX());
int delta_x = (int) (1 * Math.cos(c));
int delta_y = (int) (1 * Math.sin(c));
this.dx += delta_x;
this.dy += delta_y;
与 dx
和 dy
我更改了 x
的位置和 y
的乒乓球。我在这里画我的乒乓球。
g.setColor(Color.WHITE);
g.fillOval(this.posX, this.posY, 25, 25);
如果我想要 dx
和 dy
为了更准确,我必须更改 delta_y
的类型和 delta_x
加倍。但是fillOval()
不适用于双变量。所以我必须在 geom.Point2D.Double
中制作图形吗?相反?
最佳答案
对 delta 使用 double 值,但将最终坐标转换为 int。
像这样(伪代码风格的东西):
int delta_x=1.3, delta_y=-0.4
public void update(){
double x=(pong_ball.getX()+delta_x);
double y=(pong_ball.getY()+delta_y);
pong_ball.setX(x);
pong_ball.setY(y);
}
// in the pong_ball code
public void paint(Graphics g){
paintBall((int) x, (int) y);
}
编辑:抱歉,我意识到一个错误。如果 delta 足够小,球就不会移动!因此,您也需要将球的坐标存储在 double 中,并且仅在最后绘制球时才进行转换……抱歉
编辑 2:请注意,上面的代码不可编译。您需要更多代码(例如实际的 x-y 字段、jframe 代码等)
关于Java pong 游戏 Graphics 或 geom 2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13389145/
在下面的查询中,为什么我们使用As foo (geom) 而不是As geom? foo() 做什么? SQL 查询 SELECT ST_SRID(geom) AS srid, ST_SRID(ST_
我有一组点,我想在 Java 中将其变成闭合的多边形。我目前正在尝试使用 java.awt.geom.Point2D 和 java.awt.geom.Area,但不知道如何将一组点变成一个区域。 我想
我正在编写一个偏移函数来测试移动物体是否接触空间中的其他可移动和固定物体。 为了测试这一点,我需要查看它们的边界矩形是否相交。 我想测试两个可移动物体是否像这样接触: table 车 - id:整数(
我尝试使用 ggplotly 函数将 ggplot geom-tile 图表转换为 plotly。然而,我意识到结果是不同的。请引用以下链接查看差异。除此之外,ggplotly 图表还缺少颜色条。请帮
在 ggplot2 – issue with overlay of lines and errorbars ,我提出了一个使用 lapply(.) 的答案以特定顺序生成几何图形组,以便每个级别的点/线
我试图在图中绘制两个“geom_vline()”。 下面的代码适用于一条垂直线: x=1:7 y=1:7 df1 = data.frame(x=x,y=y) vertical.lines <- c(2
我一直在阅读 vignette on extending ggplot2 ,但我对如何制作可以向绘图添加多个几何图形的单个几何图形有些困惑。 ggplot2 geoms 中已经存在多个几何图形,例如,
我在普林斯顿各个地点的交通流量数据框。 # dput(count) structure(list(intersection = structure(c(11L, 9L, 10L, 12L, 6L, 3
我在 postgres 数据库中有 geom。当我使用这个查询时 SELECT ST_AsGeoJSON(st_simplify(geom,0.01))::json As geometry FR
本文整理了Java中org.geolatte.geom.codec.WktDecoder类的一些代码示例,展示了WktDecoder类的具体用法。这些代码示例主要来源于Github/Stackover
本文整理了Java中org.geolatte.geom.codec.WkbEncoder类的一些代码示例,展示了WkbEncoder类的具体用法。这些代码示例主要来源于Github/Stackover
sf包似乎是一种比 sp 更易于用户使用的处理空间数据的方法。 .例如,如果我有一组纬度/经度坐标,我可以使用 ggplot2 的开发版本轻松绘图。 : library(sf) devtools::i
我想在使用stat_boxplot(geom = "errorbar")时更改晶须的线宽: set.seed(42) df <- data.frame(cond = factor( rep(c("A"
我有如下地理数据(但数据量大得多): library(tidyverse) library(gganimate) n % sort data % arrange(longitude) %>% muta
Hi I want to initialize an array of Point2D (Point2D.Double []) Somehow I fail, I get the following
根据 D3 文档,可以为 hull 方法分配自定义访问器来获取 x 和 y 坐标。 Hull documentation 我想使用这些自定义访问器,但我无法弄清楚语法。这就是我所做的,这基本上是一个不
我想使用 Java 的 Area 类 (java.awt.geom.Area) 对各种多边形进行减法和求交操作。 在许多这些情况下,减法操作可能会将源区域分成两部分。在这些情况下,我需要返回两个 Ar
我正在尝试在 R 中制作一个多面绘图线图,无论有多少组可用于分面,它都会生成一个图。当运行下面的代码时,我得到了一个理想的绘图,如下图所示 # R 3.6.0 # most of these pack
与其他 ggplot geom 相比,geom_vline 似乎在色彩美学方面“表现不佳”。我想弄清楚我是否对 geom_vline 有误解,或者这是否是对 geom_vline 设计的疏忽。 # F
我首先给你我的示例代码: x <- runif(1000,0, 5) y <- c(runif(500, 0, 2), runif(500, 3,5)) A <- data.frame("X"=x,"
我是一名优秀的程序员,十分优秀!