2D Плитка Камера? - PullRequest
       17

2D Плитка Камера?

1 голос
/ 12 мая 2011

Привет всем.Быстрый вопрос здесь.Я пытаюсь держать камеру в центре проигрывателя, но в приведенном ниже коде камера, так сказать, все еще движется.Есть идеи, как сделать так, чтобы он оставался на одном месте?

for(int across = player.PlayerX-5; across < player.PlayerX+5; across++) 
        {
          for(int vert = player.PlayerY-5; vert < player.PlayerX+5; vert++)
          {
            //double RANDOM = Math.random();
            if(across < 0 || vert < 0)
            {
            }
            else if(levONE.A[vert][across] == 1)
            {
              g.drawImage(Floor,across*32,vert*32,this);

            else if(levONE.A[vert][across] == 0)
              g.drawImage(Wall,across*32,vert*32,this);
          }
        }

1 Ответ

1 голос
/ 13 мая 2011

Похоже, у вас есть 2d игра сверху вниз с картой тайлов.Вы пытаетесь визуализировать квадрат 9x9 с игроком посередине?

У вас есть некоторая странность скобок после 'else if (levONE.A [vert] [поперек] == 1)' Но ядумаете, что он не будет компилироваться в его текущем состоянии?

Кроме того, что код выглядит хорошо, я мог бы начать с добавления операторов печати, чтобы гарантировать, что данные, которые вы получаете, соответствуют вашим ожиданиям.Что-то вроде ...

for(int across = player.PlayerX-5; across < player.PlayerX+5; across++) 
{
  for(int vert = player.PlayerY-5; vert < player.PlayerX+5; vert++)
  {
    //double RANDOM = Math.random();
    if(across < 0 || vert < 0)  //might want to check the 'high' bounds here too
    {
    }
    else if(levONE.A[vert][across] == 1)
    {
      g.drawImage(Floor,across*32,vert*32,this);
    }
    else if(levONE.A[vert][across] == 0) 
    {
      g.drawImage(Wall,across*32,vert*32,this);
    }

    //print ("%d ", levONE.A[vert][across]);
  }
  //print ("\n");
}

Должно дать вам хорошую сетку для работы с

0 0 0 0 0 0 0 0
1 1 0 0 1 1 1 1
etc..
...