:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Forums Hébergés :: > OldSchool Library > Aide au développement

Aide au développement Aide sur l'utilisation d'OSLib

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 05/01/2007, 15h31   #1
norfair
 
Messages: n/a
Par défaut [oslib] petite question: collisions

Bonjour aux gens de playeradvance!

Je suis tombé sur la librarie OSL par hasard et j'ai été agréablement surpris de voir tout ce qui peut être accompli avec! J'ai lu tous les tutos de Yodafr et je je les trouve supers.

J'ai une petite question:

Est-il possible de détecter les collisions entre les "sprites" et des régions des "maps"? (comme pour un jeu de plate-forme, par exemple) Étant donné que tous les graphismes proviennent d'images png et non de tiles, je me demandais comment il fallait procéder ... Merci de votre temps!

-Norfair
  Réponse avec citation

Publicité

Vieux 05/01/2007, 18h14   #2
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Les collisions, c'est du code, c'est completement indépendant de l'affichage
Un systeme de collision peut etre tout a fait le même quelque soit la librairie ou la console.
(Les maps sous oslib fonctionnent également avec des tiles, donc c'est pareil en somme)

Mes 2 prochains tutos concerneront les collisions justement (sprite & map)
En exclu, un petit screencap explicant MA théorie des collisions sprite/sprite (c'est surement pas la solution absolue, mais ca marche)

http://hothmoon.free.fr/psp/dev/collisions-sprites.htm
Yodajr est déconnecté   Réponse avec citation
Vieux 05/01/2007, 18h35   #3
Pitt
Membre confirmé
 
Date d'inscription: 16/08/2006
Localisation: ...
Messages: 578
Par défaut

@ YodaJr >> Pas vraiment de rapport, mais ça pourrait être utile pour les développeurs PSP d'avoir des news sur PA quand il y a des nouveaux tutos / nouvelles versions d'OSLib.
__________________
Utiliser la libnds ?
What's it ?

Dernière modification par Pitt ; 05/01/2007 à 18h38.
Pitt est déconnecté   Réponse avec citation
Vieux 05/01/2007, 18h46   #4
norfair
 
Messages: n/a
Par défaut

Merci de la réponse rapide Yodafr! Je vais attendre anxieusment ces nouveaux tutos

Edit: Je viens de consulter le lien et encore une fois je cherchais dans le compliqué ce qui ne l'était pas tant que ça! Merci! Conserves bien cette touche humoristique dans tes tutos ça rend la chose agréable

Dernière modification par norfair ; 05/01/2007 à 18h51.
  Réponse avec citation
Vieux 05/01/2007, 18h51   #5
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Soit patient alors, c'est pas pour tout de suite, déja que j'ai pas encore eu le temps de me faire Zelda TP

Et c'est JR, pas FR, tu doit mélanger avec yoyofr, l'excellent co-codeur du meilleur ému snes sur psp, snes9x TYL

[edit] j'essaye le plus possible

@Pitt : oui bien sûr, quand ils arriveront, ce qui est pas gagné d'avance
Yodajr est déconnecté   Réponse avec citation
Vieux 05/01/2007, 19h34   #6
norfair
 
Messages: n/a
Par défaut

Citation:
Envoyé par Yodajr
Et c'est JR, pas FR, tu doit mélanger avec yoyofr, l'excellent co-codeur du meilleur ému snes sur psp, snes9x TYL
Oups désolé et je crois que tu as mis le doigt sur la raison en plus! (snes9xTYL est incroyable!). Je suis content d'être francophone (Montréal, Qc, Canada) car ça me donne accès à plein de ressources supplémentaires comme ce site
  Réponse avec citation
Vieux 05/01/2007, 20h09   #7
Pitt
Membre confirmé
 
Date d'inscription: 16/08/2006
Localisation: ...
Messages: 578
Par défaut

Citation:
Envoyé par Yodajr
@Pitt : oui bien sûr, quand ils arriveront, ce qui est pas gagné d'avance
Ah ok, d'accord !
__________________
Utiliser la libnds ?
What's it ?
Pitt est déconnecté   Réponse avec citation
Vieux 11/01/2007, 10h57   #8
alain91
Membre
 
Date d'inscription: 21/03/2006
Messages: 16
Par défaut collisions

Deja, chapeau pour le tuto de Yodajr

j'ai deja fait ce genre de test de collision, et j'ajoute un petit truc qui m'a bien aidé :
au lieu de faire un test sur le rectangle complet que represente un sprite, je lui enleve un petit pourcentage. Ca fait un peu plus realiste, car sinon des collisions sont detectees alors que visuellement le sprite ne touche pas un autre.

autrement dit si mon sprite est en

(x1,y1,x2,y2)

0,0,100,100

je teste sur 10,10,90,90

désolé je n'ai pas la chance de faire des tutos comme Yodajr
alain91 est déconnecté   Réponse avec citation
Vieux 11/01/2007, 14h41   #9
norfair
 
Messages: n/a
Par défaut

Hier j'ai bien étudié la doc de GBA graphics et j'ai regardé les exemples. J'ai constaté dans l'un d'entre eux que Brunni a ajouté une map de "collisions" qui ne contient que trois tiles dans son tileset, une transparente, une pour tout ce qui provoque une colision, et une pour indiquer un "trou" dans lequel le perso pourrait tomber.

À l'aide de l'éditeur de maps, et les spécimens, je constate qu'il est relativement facile de dresser cette map de colisions en parallèle avec la vrai map.

Comment devrait-on s'y prendre à l'intérieur d'oslib pour implémenter ces données de colission préparées dan GBA graphics? Cela rendrait la création d'un level complexe beaucoup plus réalisable!

Merci de votre temps
  Réponse avec citation
Vieux 13/01/2007, 19h47   #10
norfair
 
Messages: n/a
Par défaut

Quelqu'un a-t-il une idée? ; ;
  Réponse avec citation
Vieux 20/01/2007, 02h01   #11
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

C'est le sujet d'un de mes prochains tuto, mais la théorie est simple en fait :
Une map c'est un tableau. Si tu utilise des tiles de 8 pixels, une map de 512px de large et de 256px de haut fera un tableau[32][64]
Il suffit alors de déterminer la position de ton sprite dans ce tableau en divisant ses coordonnées par 8 : x_sprite_tile = x_sprite / 8
Une fois que tu as la position de ton sprite dans le tableau, il te suffit de regarder si il y a une tile de collision à cet endroit : tableau[y_sprite_tile][x_sprite_tile] > 0 ?

Si t'as rien compris, je ne pourrais etre plus clair aussi succintement, faudra attendre mon tuto qui finira bien par arriver un jour
Yodajr est déconnecté   Réponse avec citation
Vieux 20/01/2007, 05h51   #12
norfair
 
Messages: n/a
Par défaut

Ça me donne une piste, merci encore Yodajr

Finalement la map de collisions est utile quand on veut vérifier que la tile X est une tile de collision ou pas J'attendrai le tuto complet pour les autres questions, merci encore!
  Réponse avec citation
Vieux 20/01/2007, 14h41   #13
Arcadia
Modérateur saisonnier
 
Date d'inscription: 17/02/2006
Localisation: Compiègne
Messages: 2 942
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

C'est à Yodajr que je dois de comprendre le fonctionnement des maps de collisions. Il maitrise son sujet le bougre, il sait expliquer les choses. Ce tuto risque d'être un petit bijou qui restera dans les annales de PA .
__________________
.

Mes homebrews GBA : 1942 - Ghost'n Goblins




Mes autres passions, les flippers : Restauration d'un High Speed (Williams - 1985)
Arcadia est déconnecté   Réponse avec citation
Vieux 20/01/2007, 20h19   #14
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Merci pour le compliment et pour la pression

HS : vu que tu répond pas aux MPs ( ) je profite pour te demander de ce qu'il en était de GnG ? tu abandonne ? si oui pourquoi ne pas faire un topic de projet et de poster les sources ? elles sont je le parie très bien commentées, à defaut de tuto, de bonnes sources ca peut le faire.
Je me rappelle les sources du Mario&Luigi de Kyros, elles m'ont tout appris
Yodajr est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h08.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince