在Android游戏编程中使用画布中的dp或px?

时间:2014-08-12 03:29:30

标签: android android-canvas

我的游戏有点问题。假设有一个1024x800(px)的游戏室,您可以滑动它以查看更多内容。

当我放置两个对象(一个接近另一个)时,根据原始尺寸,它在mdpi设备上看起来没问题,但在hdpi(例如)它们“更接近”(必须是因为它们的位图更大)但“x”和“y”坐标是相同的。)

以下是一个例子:

所以,我认为我必须用三级规则让hdpi的游戏室更大。首先,我认为我只能在draw方法(Canvas.drawBitmap)中完成它,但它会影响一些碰撞(例如触摸事件不匹配)。我无法在我使用X& Y坐标的每一行中制定规则,因为考虑到原始的统一(像素),我完成了所有级别和游戏物理。

这是我的绘制方法:

protected void drawSprite(int x, int y, Canvas canvas){
    int xv = isHUD?0:lw.getXView();
    int yv = isHUD?0:lw.getYView();
    canvas.drawBitmap(sprite_index, x+xv, y+yv, paint);
}

getXView()getYView()会返回视图实际幻灯片的坐标。

这是我用来检查碰撞的方法:

public Rect getShape() { 
    int xv = isHUD?0:lw.getXView();
    int yv = isHUD?0:lw.getYView();
    return new Rect(x+xv,y+yv,x+width+xv,y+height+yv);
}

我该怎么办?

考虑到我要放置一个“Level Editor”,让玩家分享他们的作品,在数据库中存储“id”和XY坐标。

0 个答案:

没有答案