小编Roo*_*kie的帖子

ArrayList仅检测上次添加的对象的冲突

当检测到玩家与许多相同物体(在这种情况下是墙砖)之间的碰撞时,我遇到了一个问题.问题是我的程序只在我与最后添加的墙砖接触时才检测到碰撞.这是用java编写的......

我正在使用矩形(它们的交叉方法)来检测碰撞.

代码示例:

更新瓷砖:

        for (int i = 0; i < wallTileArr.size(); i++)
    {
        wallTile = wallTileArr.get(i);
        wallTile.update(p);
        if(wallTile.getBounds().intersects(Screen.getBounds()))
        {
            wallTile.draw = true;
        }
        else if(!wallTile.getBounds().intersects(Screen.getBounds()))
        {
            wallTile.draw = false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的课程,从瓷砖中做出一面墙:

     public Wall(int x, int y, int length, int dir, WallTile wallTile)
     {
 this.x = x;
 this.y = y;
 this.length = length;
 this.wallTile = wallTile;


    for(int i = 0; i < length; i++)
    {
        if (dir == 0)
        {
            Methods.addWallTile(new WallTile(x+(wallTile.size*i), y));
        }
        else if (dir …
Run Code Online (Sandbox Code Playgroud)

java arraylist collision-detection

1
推荐指数
1
解决办法
439
查看次数

切换JPanel后,Java KeyListener没有响应

当我在JPanel之间切换时,我遇到了KeyListener没有响应(由于没有获得焦点)的问题.

我有谷歌这个,并知道要解决这个问题,我需要使用KeyBindings,但我不喜欢KeyBindings.所以我想知道,还有其他方法吗?

这是JPanel的初始化代码,它具有无响应的KeyListener:

    public void init()
{
    setFocusable(true);
    requestFocusInWindow();
    requestFocus();
    addMouseListener(new MouseInput());
    addMouseMotionListener(new MouseInput());
    addMouseWheelListener(new MouseInput());
    addKeyListener(new KeyInput(p));

    t = new Timer(10, this);
    t.start();
}
Run Code Online (Sandbox Code Playgroud)

如果需要,请随时索取更多代码示例!

java swing timer keylistener jpanel

0
推荐指数
1
解决办法
1372
查看次数