Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 Module Jeu de Plateforme

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2
AuteurMessage
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 271

Date d'inscription : 24/05/2010


MessageSujet: Re: Module Jeu de Plateforme   Lun 9 Nov 2015 - 18:27

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2479

Date d'inscription : 01/08/2006


MessageSujet: Re: Module Jeu de Plateforme   Lun 9 Nov 2015 - 18:45

Parfait, merci ! Je pense que le ZIP est beaucoup plus répandu que 7z.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2479

Date d'inscription : 01/08/2006


MessageSujet: Re: Module Jeu de Plateforme   Lun 9 Nov 2015 - 19:55

Hm, je sais pas quelle machine tu utilises pour faire tourner le jeu, mais sur mon macbook il tourne sans souci, pas de lag. Du coup je peux pas tester pour voir d'où vient le problème perplexe

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 271

Date d'inscription : 24/05/2010


MessageSujet: Re: Module Jeu de Plateforme   Lun 9 Nov 2015 - 20:36

j'utilise un vieil ordi , c'est vrai. Ca viendrait de ça ? Parceque bon, certes mon ordi n'est pas tout jeune mais là, je ne lui demande pas un truc de fou, si ?

Mince

Enfin, c'est bon signe quand même, ça veut dire que ça marche

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2479

Date d'inscription : 01/08/2006


MessageSujet: Re: Module Jeu de Plateforme   Lun 9 Nov 2015 - 20:47

Mon code est pas super optimisé, pour dire le moins. Par ailleurs il faut aussi savoir que le code compilé par AGS n'est pas exécuté aussi vite qu'un code compilé à partir de langages plus bas niveaux comme C# par exemple. Ça n'excuse pas mon manque d'optimisation, mais ça explique pourquoi l'exécution de tout un tas de calculs et de repositionnements des persos (+ objets/etc) à chaque cycle (~ 40 fois par seconde) entraîne rapidement un lag sur des bécanes pas toutes récentes.

À ce propos tu pourrais d'ailleurs réduire la vitesse d'exécution du jeu en n'exécutant le code qu'un cycle sur deux, par exemple. Dans ce cas pour retrouver la même vitesse de mouvement (mais pas tout à fait la même fluidité... enfin, sur des machines qui lag pas) il faudrait doubler les forces (vitesse, gravité, saut, etc.).

EDIT : c'est assez trivial mais tu peux aussi réduire la valeur de PF_NB_PERSOS étant donné que tu n'as pas (encore ?) 25 personnages.

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 271

Date d'inscription : 24/05/2010


MessageSujet: Re: Module Jeu de Plateforme   Jeu 19 Jan 2017 - 23:31

En retrifouillant dans ce module , je me suis demandé s'il n'était pas possible de l'améliorer en ajoutant le principe du module Pixel Perfect Collisions d’Andrew MacCormack ? C'est à dire, faire en sorte que les pixel invisible des sprites ne soient pas pris en compte dans les collisions.


Une idée pour faire ça simplement ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2479

Date d'inscription : 01/08/2006


MessageSujet: Re: Module Jeu de Plateforme   Ven 20 Jan 2017 - 14:12

En fait le module fonctionne déjà au pixel près. Si tu regardes les foncitons IsFreeX et IsFreeY, tu verras que ça appelle des fonctions IsRegion*, IsObject* et IsCharacter*, lesquelles à leur tour utilisent Region.GetAtRoomXY, Object.GetAtScreenXY et Character.GetAtScreenXY en balayant l'écran pixel par pixel.

EDIT : mais en fait ces fonctions-là ne prennent pas en compte les pixels transparents, c'est ça ? Dans ce cas ce serait facile d'implémenter le module PixelPerfectCollision, il suffit de remplacer les appels aux fonctions plus haut par des appels aux fonction du module.
Re-EDIT : Après vérification, "ces fonctions-là" prennent bien en compte les pixels transparents.

Est-ce qu'il y a un comportement du moteur qui te faisait penser que c'était pas le cas ?

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !


Dernière édition par Kitai le Ven 20 Jan 2017 - 15:47, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 271

Date d'inscription : 24/05/2010


MessageSujet: Re: Module Jeu de Plateforme   Ven 20 Jan 2017 - 15:07

Justement pour la collision entre les régions et les pixels transparents. C'est plutôt problématique dans un jeu de platforme qui demande de la précision.
Par exemple ça donne le problème de voir des personnages ne pas pouvoir passer sous un obstacle, alors que le sprite visible laisse a penser que si. Ce genre de chose, qui est très vite problématique lorsqu'on doit calibrer des sauts, etc...


Après , le module PixelPerfectCollision si j'ai bien compris fonctionne entre Characters et Characters ou Characters et objet, voir objet objet. Je n'ai rien vu à propos des régions.
Peut-être que cela se code de la même manière une région qu'un objet ?

Et pour faire fonctionner le PixelPerfectCollision, il suffit de déclarer la fonction par exemple

if(PPCollidesWithC(cChars1,cChars2)... à la place de Chars.IsCollidingWithChar (cChars2)
Enfin quelque chose comme ça

Et dans le code de Plateforme, je ne retrouve pas cette formulation , et je suis trop mauvais pour m'y retrouver ah ah ah


Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2479

Date d'inscription : 01/08/2006


MessageSujet: Re: Module Jeu de Plateforme   Ven 20 Jan 2017 - 15:46

Donc j'ai vérifié le module PPCollision, il utilise bien les fonctions GetAtScreen/RoomXY comme je le fais dans mon module de plateforme. C'est donc la même méthode de "détection au pixel près".

Mais comme je te le demandais dans mon message précédent, qu'est-ce qui te fait soupçonner que la détection est imprécise dans ce moteur ?

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 271

Date d'inscription : 24/05/2010


MessageSujet: Re: Module Jeu de Plateforme   Ven 20 Jan 2017 - 15:54



Je te montre un exemple.
La zone entre pointillés représente la taille réelle du Sprite. Là par exemple, il est coincé par la plateforme juste en face de lui. Alors que si l'on regarde uniquement le Sprite (sans prendre en compte les zones transparentes) le personnage devrait passer sans problème
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2479

Date d'inscription : 01/08/2006


MessageSujet: Re: Module Jeu de Plateforme   Ven 20 Jan 2017 - 18:45

Ah désolé pour ça. Je vois d'où vient le problème, et ce n'est pas dans le fil d'exécution des fonctions IsFreeX/Y, mais plutôt dans la fonction Scrute et dans les propriétés largeur et hauteur des instances de personnages, qui sont grossières en cela qu'elles se basent sur les dimension de la sprite. Pour mieux implémenter ça donc, il faudra mettre à jour tout le code qui dépend de ces mesures. Je verrai si je peux travailler un peu dessus bientôt.
En attendant une solution serait de couper tes sprites au plus court possible, et si tu as des images plus larges que d'autres lors d'animations, utilises la commande LockViewAligned.

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 271

Date d'inscription : 24/05/2010


MessageSujet: Re: Module Jeu de Plateforme   Ven 20 Jan 2017 - 19:59

Oh, intéressante cette fonction sourire
Merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Module Jeu de Plateforme   

Revenir en haut Aller en bas
 
Module Jeu de Plateforme
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» Module Jeu de Plateforme
» Jeu de plateforme avec AGS
» Jeu de plateforme - Démo Technique
» Module "pluie / neige"
» Jeu de plateforme

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Modules et plugins-
Sauter vers: