java - 有没有办法使用 Java 处理检查一个方法是否覆盖另一种方法?

标签 java processing

我正在创建一个基本游戏,需要在drawObstacle 和drawRocketShip 方法之间实现碰撞检测。我需要检查一种方法是否创建与另一种方法重叠的图像。由于我使用了一些随机化和位置相似性检查,为了简洁起见,这些检查没有被分成不同的类。如果需要,我可以进一步详细说明,但我认为一开始就不一定需要。

public class SideScrollGame extends PApplet {

// Variables determining motion, window size, etc.

    public float rock1;
    public float rock2;
    public float rock3;
    public float rock4;
    public float rock5;


    public void setup(){
        size(width,height);
        //rock1 to rock5 are randomized values determining height.
    }

    public void draw(){
        moveShip();
        moveRock();

        drawObstacle(rock1, 3);
        drawObstacle(rock2, 3);
        drawObstacle(rock3, 3);
        drawObstacle(rock4, 3);
        drawObstacle(rock5, 3);         

        translate(x,y);
        // Code behind motion omitted for sake of brevity. It just moves the 
        // ship up and down across the Processing applet
        drawRocketShip();
        // drawObstacle and drawRocketShip create composite images using the
        // ellipse(), rect(), and triangle() functions.

    }
}

最佳答案

您也许可以使用 get() 函数来做到这一点。您可以在the reference中找到更多信息,但基本上它允许您获取特定像素的颜色。您可以基于此执行一些逻辑。

但说实话,这不是你应该考虑的方式。您不应将碰撞检测基于实际绘制的内容,而应将碰撞检测基于存储在内存中的一组形状。对于大多数情况,简单的圆形或矩形就可以了。

如果您使用 translate() 函数绘制所有内容,这会变得更加复杂,但您可以使用 screenX() 将坐标转换为屏幕坐标,并且screenY() 函数。同样,更多信息可以在 the reference 中找到。 .

无耻的 self 推销:我在Processing中写了一篇关于碰撞检测的教程here ,但互联网上有大量资源。

如果您仍然遇到问题,请将问题范围缩小到 MCVE我们将从那里开始。祝你好运。

关于java - 有没有办法使用 Java 处理检查一个方法是否覆盖另一种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44834930/

相关文章:

java - 贝壳游戏。如何使物体移动,特别是在特定曲线上但以随机顺序移动?

java - 在处理中创建可扩展的噪声模式

java - Springboot下拉菜单- "No mapping found for HTTP request with URI"错误

javascript - javascript中包含特殊字符的多行字符串?

java - 内部类甚至可以访问外部类的私有(private)成员..这不是侵犯隐私吗?

java - 在规则中使用 CountableValueRange

java - 处理:为什么这个Walker对象不绘制?

java - mt4j 和处理库 : clean image resources

java - Gradle 构建 - 非 Java 项目

java - 如何获取在 AWS Elastic Beanstalk 应用程序负载均衡器上运行的 Spring Web 应用程序上的请求者 IP