Open ghost opened 5 years ago
Buen apunte! En realidad este ejemplo es demasiado complejo para formar parte de la distribución d tilengine, ya que debería estar al margen d implementaciones de mecánicas jugables. PEro es uno de los primeros ejemplos que hice y ahí se quedó. Los ejemplos más complejos que demuestran mecánicas jugables ya están en sus propios repositorios como SuperMarioClone o TilenginePythonPlatformer.
Lo que comentas no es un bug de la biblioteca: ti.index devuelve 0 porque en esa posición no hay ningún tile, está vacía, de ahí el índice 0. Reviso a fondo tu propuesta, gracias!
Hola Marc
Encontré una característica en éste bug y es que sucede en la unión del tilemap. Voy tratar de explicarme :smiley:![collision](https://user-images.githubusercontent.com/46515895/54482351-bd160100-4820-11e9-9bc1-1099dad32f1e.png)
Lo que ocurre en la línea https://github.com/megamarc/Tilengine/blob/54037fca5a29915685ade2a6bc7f8742a175a5e0/samples/Simon.c#L140 es que, en unos ciclos (~8 aprox.) del
for
,ti.index
no se cumple por lo tantosy
no se asigna a cero. Esto es porque en la línea https://github.com/megamarc/Tilengine/blob/54037fca5a29915685ade2a6bc7f8742a175a5e0/src/Layer.c#L425x
es negativo(por lo tanto tambiénxpos
) y desde ahí cualquierti.index
es igual a cero, ya sea enLayer.c
oSimon.c
.Lo solucioné agregando la siguiente línea en el archivo
Layer.c
:Esto hace
xpos
positivo (xpos=2047
en el join) y así se soluciona el bug. Pero como desconozco sobre tilemaps tengo mis dudas, no se si es aquí en la librería el bug o es sólo un bug enSimon.c
que hace queLayer.c (TLN_GetLayerTile)
no funcione correctamente.Nota: https://github.com/megamarc/Tilengine/blob/54037fca5a29915685ade2a6bc7f8742a175a5e0/samples/Simon.c#L139
x+c+xworld
tiene valores entre 72 .. -21, etc.Saludos.