2014-09-04 4 views
0

У меня возникло столкновение tilemap ... kinda. Некоторые плитки отлично реагируют. Другие, не так много. Это действительно непоследовательно, если он попадает и с какого направления, также он создал какой-то барьер, когда x ударяет вокруг 480ish, где он останавливается. вот jsfiddle, чтобы вы могли взглянуть на то, что я говорю о http://jsfiddle.net/t0ahc5qa/ , поскольку вы можете видеть некоторые блоки, через которые он просто проходит, а другие - нет. здесь, где столкновения принимаются к сведению.tilemap столкновение не работает как оно должно

function checkmove(x,y){ 
    if(mapArray[Math.floor(x/tileWidth)][Math.floor(y/tileHeight)]==1 || 
    mapArray[Math.ceil(x/tileWidth)][Math.floor(y/tileHeight)]==1 || 
    mapArray[Math.floor(x/tileWidth)][Math.ceil(y/tileHeight)]==1 || 
    mapArray[Math.ceil(x/tileWidth)][Math.ceil(y/tileHeight)]==1){ 
      console.log('hit'); 

    return false; 
} else { 

return true; 
} 
if(mapArray[Math.floor(x/tileWidth)][Math.floor(y/tileHeight)]==2 || 
mapArray[Math.ceil(x/tileWidth)][Math.floor(y/tileHeight)]==2 || 
mapArray[Math.floor(x/tileWidth)][Math.ceil(y/tileHeight)]==2 || 
mapArray[Math.ceil(x/tileWidth)][Math.ceil(y/tileHeight)]==2){ 
    console.log('lava'); 

return false; 
} else { 

return true; 
} 

} 

если у вас есть какие-либо способы улучшить столкновения, пожалуйста, я ищу какой-либо способ сделать это не так глючит.

ответ

0

У вас есть переменные x и y, переключаемые внутри петель функции render().

context.drawImage(tile1, y*tileWidth,x*tileHeight,tileWidth,tileHeight); 

должен быть

context.drawImage(tile1, x*tileWidth,y*tileHeight,tileWidth,tileHeight); 
+0

Спасибо человеку, что ты удивительный, можно полагать, что я не думаю, что смотреть на это. – user3843041

Смежные вопросы