Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] Sample Barrel, collision fails. #47

Open
ghost opened this issue Mar 16, 2019 · 1 comment
Open

[Bug] Sample Barrel, collision fails. #47

ghost opened this issue Mar 16, 2019 · 1 comment

Comments

@ghost
Copy link

ghost commented Mar 16, 2019

Hola Marc

Encontré una característica en éste bug y es que sucede en la unión del tilemap. Voy tratar de explicarme 😃
collision

Lo que ocurre en la línea

if (ti.index)
es que, en unos ciclos (~8 aprox.) del for, ti.index no se cumple por lo tanto sy no se asigna a cero.
Esto es porque en la línea
xpos = x % layer->width;
x es negativo(por lo tanto también xpos) y desde ahí cualquier ti.index es igual a cero, ya sea en Layer.c o Simon.c.

Lo solucioné agregando la siguiente línea en el archivo Layer.c :

...
xpos  = x % layer->width;
...
if(xpos < 0)
      xpos += layer->width;

Esto hace xpos positivo (xpos=2047en 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 en Simon.c que hace que Layer.c (TLN_GetLayerTile) no funcione correctamente.

Nota:

TLN_GetLayerTile (0, x+c+xworld, y2+48, &ti);

x+c+xworld tiene valores entre 72 .. -21, etc.

Saludos.

@megamarc
Copy link
Owner

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant