我的游戏有点问题。假设有一个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坐标。