我主要专注于Graphics方面来创建一个2DGame.我看过/看过几个教程,但没有一个是令人高兴的.我已经有一个玩家(一个正方形)移动并与屏幕上的其他方块相撞.重力等也完成了.
如果屏幕上只有那么多的物体(30*20),一切都很好.但是,如果我将它增加到300*300,那么程序开始运行非常慢,因为它必须检查这么多对象.
我真的不知道像Minecraft这样的游戏如何与所有这些块一起工作,我的程序已经放弃了300*300块.
我已经尝试仅在对象可见时检查碰撞,但这导致程序检查每个对象的可见性,从而导致同样的问题.我究竟做错了什么?帮助赞赏.
我将发布一些关于如何处理冲突的代码.
player.collision(player, wall);
public void collision(Tile object1, Tile[] object2){
collisionCheckUp(object1, object2);
collisionCheckDown(object1, object2);
collisionCheckLeft(object1, object2);
collisionCheckRight(object1, object2);
}
public void collisionCheckDown(Tile object1, Tile[] object2){
for (int i = 0; i < Map.tileAmount; i++){
if(object2[i] != null && object2[i].visible)
{
if(object1.isCollidingDown(object2[i])){
object1.collisionDown = true;
return;
}
}
}
object1.collisionDown = false;
}
public void compileHullDown(){
collisionHull = new Rectangle((int)x+3, (int)y+3, width-6, height);
}
int wallCount = 0;
for (int x=0;x<Map.WIDTH;x++) {
for (int y=0;y<Map.HEIGHT;y++) {
if (Map.data[x][y] …Run Code Online (Sandbox Code Playgroud)