Вот мой Кокосовые код:проблема с отображением спрайтов в cocos2d
class Startbox(Layer):
def __init__(self):
Layer.__init__(self)
self.batch = BatchNode()
self.add(self.batch)
img = pyglet.image.load('images/map_sprites.png')
tileset = pyglet.image.ImageGrid(img, 3, 15, 96, 96)
x, y = 0, 0
for i in range(10):
for j in range(10):
spr = Sprite(tileset[1])
spr.x = x
spr.y = y
self.batch.add(spr)
x += 96
y += 96
x = 0
Я пытаюсь получить спрайт и дисплей бок о бок, чтобы покрыть окно. Этот код производит дефектный результат, плитки имеют пространство между ними, как это:
Я не понимаю, почему это происходит, и как это исправить. Следующий код pyglet делает в основном то же самое, но с спрайтов правильно выстроены и не создавая никаких черных линий:
class screen(pyglet.window.Window):
def __init__(self, w, h):
super(screen, self).__init__(w, h)
sprite_sheet = grid(pyglet.image.load("images/map_sprites.png"), 3, 15)
self.batch = pyglet.graphics.Batch()
self.all_sprites = []
x, y = 0, 0
for i in range(10):
for j in range(10):
sprite = pyglet.sprite.Sprite(sprite_sheet[1], batch=self.batch)
sprite.x = x
sprite.y = y
self.all_sprites.append(sprite)
x += 96
y += 96
x = 0
EDIT: Я нашел решение, и хотел опубликовать его как ответ для ясности в случае, если кто-то наткнется на это в будущем, но я думаю, что редактирование моего ОП будет достаточно.
От Клаудио Canepa в Cocos2d Google groups списке:
Вы можете попробовать прохождение do_not_scale = True в вызове director.init, это будет использовать ortographic выступ, который лучше подходит для плитки.
Вы можете посмотреть примеры для Кокосовые tilemaps в сценариях
test_tiles.py
test_tmx.py
test_platformer.py
Реализация ультра проста:
if __name__ == '__main__':
director.init(width, height, do_not_scale=True)
director.run(Scene(Startbox()))
литой координаты целых – LearnCocos2D
Что вы имеете в виде? –
убедитесь, что координаты x/y всех плит не имеют компонента с плавающей запятой, то есть 1.2345 -> 1.0 Не знаю, как выполняется кастинг в python, но по крайней мере должна быть функция floor(). – LearnCocos2D