Android游戏开发 - 动态边界定义

时间:2013-12-05 12:08:33

标签: java android libgdx

我目前正在使用libgdx库为Android开发游戏。 让我们说我们有一只蜥蜴,现在用户通过在屏幕上滑动手指来创建路径,蜥蜴可以在其上行走。 问题是,如何限制蜥蜴只在手指触摸屏幕的地方行走(在路径上 - 界限之间)。

public class Block {

static final float SIZE = 1f;
Vector2 position = new Vector2();
Rectangle bounds = new Rectangle();

public Block(Vector2 pos) {

    this.position = pos;
    this.bounds.width = SIZE;
    this.bounds.height = SIZE;
}
}

在这个例子中,我们可以看到一个块,块的边界是一个矩形,蜥蜴可以在上面行走。

如何仅使用圆圈制作一些相似的边界?

这是我到目前为止所得到的: 我创建了一个彼此重叠的双层图位图。当用户触摸屏幕时,他会擦除第一个位图,让第一个位图在第一个位图下方(只有用户触摸的部分被移除)。

这是删除第一个位图的函数。

  public void onDraw(Canvas canvas){
        super.onDraw(canvas);
        canvas.drawColor(Color.TRANSPARENT);
        canvas.drawBitmap(bgr, 0, 0, null);

        c2.drawCircle(X, Y, 40, pTouch);
        Paint new_paint = new Paint(/*Paint.ANTI_ALIAS_FLAG*/);
        new_paint.setXfermode(new PorterDuffXfermode(Mode.SRC_ATOP));
       //new_paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
        canvas.drawBitmap(overlay, 0, 0, new_paint);
    }

通知# 使用圆形删除位图。

如果我可以添加到正在移除位图的圈子,这是一个绑定的属性,蜥蜴可以在其上行走,这将是很棒的。 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

你应该根据蜥蜴位置

更新边界的坐标
bounds.x=position.x; 
bounds.y=position.y;

让你的界限跟随蜥蜴

也可以尝试使用

而不是使用recatangle作为边界
 sprite.getBoundingRectangle()

此方法为您提供图像的精确矩形边界,因此无需保持边界。 只要您为图像使用AtlasSprite或Sprite。

答案 1 :(得分:1)

我很早就分享了我的游戏Bomberman。您可以在GameScreen

中找到所需的代码

P.S。您也可以找到LibGDX使用here

的不同有趣样本