Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 Module Jeu de Plateforme

Aller en bas 
+3
Creamy
Godzillu
Kitai
7 participants
Aller à la page : Précédent  1, 2
AuteurMessage
filoulefilou
Cliqueur Amateur
Cliqueur Amateur



Nombre de messages : 359

Date d'inscription : 24/05/2010


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyLun 9 Nov 2015 - 18:27

Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue



Nombre de messages : 2907

Date d'inscription : 01/08/2006


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyLun 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
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
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyLun 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 confus

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
filoulefilou


Nombre de messages : 359

Date d'inscription : 24/05/2010


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyLun 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
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyLun 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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
filoulefilou


Nombre de messages : 359

Date d'inscription : 24/05/2010


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyJeu 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
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyVen 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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
filoulefilou


Nombre de messages : 359

Date d'inscription : 24/05/2010


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyVen 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
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyVen 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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
filoulefilou


Nombre de messages : 359

Date d'inscription : 24/05/2010


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyVen 20 Jan 2017 - 15:54

Module Jeu de Plateforme - Page 2 Exempl10

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
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyVen 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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
filoulefilou


Nombre de messages : 359

Date d'inscription : 24/05/2010


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyVen 20 Jan 2017 - 19:59

Oh, intéressante cette fonction sourire
Merci
Revenir en haut Aller en bas
Creamy
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Creamy


Nombre de messages : 1266

Date d'inscription : 15/10/2007


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyMer 7 Juin 2017 - 20:31

Bonsoir,

J'obtiens l'erreur suivante quand je lance le jeu dans une pièce où le module est activé :

Citation :
Error running function 'repeatedly_execute':
Error : Script appears to be hung (a while loop ran 150001 times). The problem may be in a calling function; check the call stack.


J'utilise AGS 3.4.0. Mario semble fonctionner sans problème dans cette version.
Revenir en haut Aller en bas
http://creamy.unblog.fr/
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyMer 7 Juin 2017 - 20:43

Est-ce que tu as redéfini PF_NB_PERSOS à un nombre supérieur à 150000 ?

Sinon, dans la fonction Plateforme::Scrute, essaye de changer les signes == dans les conditions if (x_t == w) et if (y_t == h), par >=.

Comme ça c'est un peu difficile de savoir d'où vient l'erreur exactement, ça pourrait être de n'importe quelle boucle while dans le script.

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Creamy
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Creamy


Nombre de messages : 1266

Date d'inscription : 15/10/2007


Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 EmptyMer 7 Juin 2017 - 22:15

Citation :
Est-ce que tu as redéfini PF_NB_PERSOS à un nombre supérieur à 150000 ?
Non, c'est sur 7 (mon nombre de persos).

Citation :
ça pourrait être de n'importe quelle boucle while dans le script.
Désolé, j'avais oublié de préciser les lignes reportées dans le "call stack" :
Code:

File                         Line
Plateforme_1.0_beta.asc      184
Plateforme_1.0_beta.asc      253
Plateforme_1.0_beta.asc      601
Plateforme_1.0_beta.asc      735

Citation :

Sinon, dans la fonction Plateforme::Scrute, essaye de changer les signes == dans les conditions if (x_t == w) et if (y_t == h), par >=.
J'ai effectué ces changements aux lignes suivantes sans résultat :
- lignes 467 et 490 pour x_t
- lignes 476 et 484 pour y_t

Hormis ces modifications, je n'ai pas touché au script du module Plateforme_1.0 beta.

EDIT : J'arrive à empêcher le plantage en réduisant la taille de mes sprites.
Le jeu a une résolution de 1600*900 et visiblement le module met AGS à genoux.
Revenir en haut Aller en bas
http://creamy.unblog.fr/
Contenu sponsorisé





Module Jeu de Plateforme - Page 2 Empty
MessageSujet: Re: Module Jeu de Plateforme   Module Jeu de Plateforme - Page 2 Empty

Revenir en haut Aller en bas
 
Module Jeu de Plateforme
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» Jeu de plateforme
» [Module] ShowInteractiveAreas
» Créer un jeu 2D plateforme ?
» Jeu de plateforme avec AGS
» Plateau (module)

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: