Я пытаюсь создать похожую на pacman игру. У меня есть массив, который выглядит следующим образом:проблема с очень простой плиткой на основе игры
массив:
1111111111111
1000000000001
1111110111111
1000000000001
1111111111111
1 = стена, 0 = Пустое пространство
Я использую этот массив сделать плитки, которые 16x16 в размере. Игровой персонаж 32x32.
Изначально я представлял позицию персонажа в массиве индексов, [1,1] и т.д.
Я бы обновить свою позицию, если массив [character.new_y] [charater.new_x] == 0
Тогда Я перевел эти координаты массива в пиксели, [y * 16, x * 16], чтобы привлечь его.
Он хорошо выстраивался в линию, не входил в стены, но я заметил, что, поскольку я обновлял его по 16 пикселей каждый, он двигался очень быстро.
Я решил сделать это в обратном порядке, чтобы сохранить положение игрового персонажа в пикселях вместо этого, чтобы он мог использовать менее 16 пикселей на одно перемещение.
Я думал, что простой, если заявление, например, как это:
if array[(character.new_pixel_y)/16][(character.new_pixel_x)/16] == 0
помешало бы ему идти в стены, но, к сожалению, он ест немного нижней и правой боковых стенок.
Любые идеи, как правильно перевести положение пикселей в индексы массива? Я думаю, что это что-то простое, но я действительно не могу понять :(
Привет, плитки 16x16 наполовину пусты, поэтому игровой символ подходит между ними (хотя он технически перекрывает часть из них). Что касается массива, извините, это было мое глупое соглашение об именах. – newbieguy
Ах!действительно, я пробовал целый день с центрированием на 16 пикселей, и все это зависало бы, центрируя его через 8 пикселей, а затем настраивая его на верхнее/левое/правое/нижнее направление на 8 пикселей, спасибо – newbieguy
рисунок сделан из верхний левый и плитки в 16 раз больше. и мы знаем, что 32x плитка должна перекрываться HALF размером 16 пикселей = 8 пикселей. :) – Shaggieh