Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
313 connectés actuellement
30731075 visiteurs depuis l'ouverture
1053 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
TexQuin -
posté le 28/04/2016 à 23:20:41 (10 messages postés)
| Yamete kudasai | Domaine concerné: ???
Logiciel utilisé: Rpg Maker VX Ace
Bonjour à toutes et à tous. Je poste aujourd'hui un problème auquel je fais actuellement face pour la création d'un petit projet sur RPG Maker Vx ace. En effet, j'aimerai créer un jeu de Football Américain, étant un bon fan de ce sport.
J'ai donc fais une petite map test de petite taille afin de m'exercer sur les différents événements dont je pourrais avoir besoin afin de recréer ce jeu collectif en programme vidéo-ludique.
Tout fonctionne. Les sprites que j'ai fais via Gimp sont nickel et bien ressemblant au sport (Joueur avec casque et tenue, ballon, poteaux, ligne, terrain, gradins..), et j'en suis fier. Le codage des événements s'additionne avec fluidité. Lorsque la partie commence, on prends le ballon, et on l'amène dans la "zone" de but adverse. Si l'adversaire ne nous bloque pas, le point est ajouté à un petit tableau électronique afficher dans le coin supérieur droit sous forme d'image.
Si le joueur nous bloque, la "manche" est relancée. Evidemment, l'adversaire peut aussi prendre la balle et marqué (Ma zone de but étant programmé via des "Variables de positionnement" si je peux appeler ça comme ça). Une condition vérifie la position de l'adversaire, et si celle-ci se trouve entre X=.. et X=.., et que Y=.., l'adversaire marque.
Etant fier des résultats convaincant, je décide de m'attaquer au parallax mapping afin de mapper le terrain de mes rêves. Encore une fois, tout est parfait, et via un script de parallax locking, je peux déplacer les événements ainsi que mon joueur en toute liberté sur le terrain.
Je me sers donc de ma map "Test" afin de copier coller les événements fonctionnels sur la nouvelle map en prenant soin de corriger les détails incohérents (Téléportation, et "Variables de positions" notamment).
Si vous avez réussi à suivre jusqu'à là, vous aurez peut être une réponse au problème que voici :
Lorsque je lance la partie, tout fonctionne comme sur la map originale, A L'EXCEPTION que l'adversaire ne peut pas marquer ! J'ai vérifier 100 fois la vérification du positionnement afin de pas me tromper mais rien à faire. Sur la map test, voilà comment la fameuse ligne de code était présentée :
Variable: [0001:XAdversaire] = Adversaire Carte X
Variable: [0002:YAdversaire] = Adversaire Carte Y
Condition: Variable [0001 :XAdversaire] >=1
Condition: Variable [0001 :XAdversaire] <=15
Condition : Variable [0001 :YAdversaire] ==15
Etc.. (Pas important)
Et maintenant voici la nouvelle ligne de code :
Variable: [0001:XAdversaire] = Adversaire Carte X
Variable: [0002:YAdversaire] = Adversaire Carte Y
Condition: Variable [0001 :XAdversaire] >=4
Condition: Variable [0001 :XAdversaire] <=20
Condition : Variable [0001 :YAdversaire] ==38
Etc.. (Pas important)
La seul chose ayant changé étant les coordonnées, je ne comprend pas pourquoi l'adversaire se contente de rentrer dans la ligne de but sans activer la suite des évenements (à savoir marqué). Pour ceux qui se demande pourquoi dans les lignes que j'ai écris il n'y a qu'un seul "Y", c'est parce qu'il s'agit d'une LIGNE de but, ce qui ne change donc pas les coordonées des ordonnées (Y)
Autre problème que je rencontre maintenant : Lorsque je prend le ballon à l'adversaire, que celui-ci me le prend, ou que je marque (après quelque manches quoi), l'adversaire devient "Buggé". Si je prends le ballon, au lieu de me foncer dessus, il se stoppe. Si il prends le ballon, il se stoppe tout pareil. Rien n'est changé dans les évenements entre temps puisque ceci se passe en plein jeu après quelques manches.. Je me suis dis que cela devait venir d'une "surchauffe" de rpg maker liée à trop d'évenements en processus parallèle, et j'ai donc tenté de placer quelques commandes "Attendre 2 frames" par-ci par-là afin de soulager le tout, mais rien à faire.
Je suis bloqué, or que je croyais maîtriser mon sujet. C'est donc pour ça que je demande de l'aide à un Maker plus expérimenté qui passerait par là.
Je vous remercie d'avance pour vos réponses et vous invite à me poser les questions nécessaires afin de résoudre ce problème plutot handicapant.
Tex'
|
Dro |
el leopo -
posté le 29/04/2016 à 00:05:41 (75 messages postés)
| | Souvent ce genre de petit problème viens d'une petite erreur en recopiant le code .
Des screens serait plus simple pour voir le problème.
Pour ton problème de freeze ca risque d'être la même chose , rpg maker surchauffe pas si facilement .
T'as du faire une erreur quelque part qui plante ton code .
Je reste a ta dispostion
|
arttroy -
posté le 29/04/2016 à 15:37:28 (2394 messages postés)
| Just working | Combien tu as d'adversaires sur ta map ? Si tu en plusieurs, mieux vaut enregistrer les données dans des variables dédiées :
Xadversaire 1
Yadversaire 1
Xadversaire 2
Yadversaire 2
...
Penses aussi à remettre tes variables à 0 en début de la page ou leur valeur est modifiée.
Vérifie aussi que les déplacements ne font pas "sortir" l'event de la map auquel cas il va falloir le replacer (placer via coordonnées) je pense que tu vois de quoi je parle dans le sens ou à un moment ou à un autre tu les remet à leur emplacement d'origine pour l'engagement.
Je vois pas trop autre chose...
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
Danzaiver -
posté le 29/04/2016 à 16:17:01 (364 messages postés)
| | Vérifie aussi que les variables sont associé a la bonne entité.
parfois en copiant ont modifie un petit truc comme l'id de l'event cible.
Du coup les variable ne pointes plus vers les bonnes entités.
|
TexQuin -
posté le 29/04/2016 à 17:58:26 (10 messages postés)
| Yamete kudasai | Pour el leopo : Voici les screens que tu m'avais demandé de la portion de code qui me sert à définir si le joueur adverse marque ou non.
Voici le premier screen qui montre la première map (Map test) où tout fonctionnait :
Et voici le deuxième qui montre ma map "finale" où.. Ben ça bloque :
Comme tu pourra le constater, les deux commandes sont identiques à part pour les coordonnées.
Pour répondre à arttroy, je n'ai qu'un seul adversaire sur la map (d'ailleur appelé ennemi sur mes screen). Il ne faut pas se fier au premier screen, car les joueurs supplémentaire n'ont aucune consistance, ils sont juste là pour la décoration afin de rajouter du réalisme (je testais des mise en place de défense).
Remettre mes variables à 0 ne m'est pas venu à l'esprit, je testerai donc cela surement ce soir. Quant au déplacement, l'adversaire se contente d'une trajectoire prédéfinie variant uniquement par le fait d'ajouter "Fui le héro d'un pas". Hormis ça ses déplacement sont très linéaires. Et pour le fait de sortir de la map, ce n'est pas possible du au fait que celle ci est entourée de "mur invisibles" fait grace au parallax afin de garder les joueurs sur le terrain. J'ai également bien vérifier le replacement des joueurs à chaque fin de manche pour les deux map (ce que tu pourra vérifier sur les screen).
Pour répondre à Danzaiver, hélas, j'ai bien vérifier mes variables qui sont aux nombre de 4 (Xhéros, YHéros, XEnnemis, et Y Ennemis).. Ces 4 là se contente de vérifier le positionnement de l'ennemi pour savoir si il est à la bonne place pour marqué (Quant aux interrupteurs, ils sont essentiellement là pour vérifier qui à le ballon et pour relancer une manche).
J'ai omis de mentionner un petit détail dans mon premier post cependant : Les variables XY Héros calculent elles aussi des variables de positionnement aux MÊMES coordonées que XYEnnemis, mais pour le Héros.
En effet, au football américain, lorsque le joueur ayant le ballon se fait plaquer dans sa propre zone de but, l'adversaire marque. Il m'est donc nécessaire de calculer le positionnement du héros afin de déterminé si l'adversaire marque où non en le plaquant. Et devinez quoi ? Ces variables (ainsi que le déroulement de ce mécanisme en jeu) fonctionnent parfaitement. Je ne comprends pas la logique, puisqu'elles sont identiques aux variables de l'ennemi étant donné qu'elles ont le même principes..
Quoi qu'il en soit, navré pour les pavés que je vous fais lire. J'essaye d'être pointilleux sur les détails afin de résoudre mon problème rapidement. Merci de l'aide actuelle que vous m'apportez.
EDIT : Je me souviens d'un petit jeu d'infiltration que j'avais tenté de faire il y a un moment de ça. J'avais fait des test sur une petite map afin de voir si les déplacement, champs de visions, et coordonnées de variable étaient fonctionnels. Tout était parfait jusqu'à ce que je transfère tout cette belle pelote de code sur la map finale. Plus rien ne fonctionnait. Etrangement, il y avait aussi du parallax.. Peut être que je me fais des idées avec le parallax mais peut être que le soucis pourrais venir de là aussi ? Problème de script qui fait bugguer le reste ? Ca me parait gros, mais je creuserai aussi par là.
Tex'
|
Dro |
el leopo -
posté le 29/04/2016 à 19:10:55 (75 messages postés)
| | La je pense que dans ta deuxieme map , l'ennemi n'est pas l'evenement 0002 mais le 0001 , je vois aucun autre event.
Du coup ca fais planter la suite quand il n'arrive pas a le faire se déplacer je pense.
|
TexQuin -
posté le 29/04/2016 à 21:43:20 (10 messages postés)
| Yamete kudasai | . . . Je dois avouer que je me sens très bête. Ca m'apprendra à copier coller d'une map à l'autre sans donner de nom à mes évenements.. J'ai l'impression d'avoir chercher ma montre pendant des heures alors qu'elle était à mon poignet. Quoi qu'il en soit, ça fonctionne !
Effectivement, je n'avait pas recopié mes événements dans le même ordre que je les avait mis sur la première map. Bilan :
Map 1 :
Événement 2 = Joueur
Map 2 :
Événement 4= Joueur
Tandis que
Événement 2 = Un événement en processus parallèle qui n'a rien à voir.
Je m'obstinais donc à calculer les coordonnées d'un événement statique.. qui n'allait donc pas marqué de but évidemment.
En tout cas, il fallait une bonne perspicacité et un bon sens de l'observation pour voir que le problème ne venait pas du codage en lui même, bien joué el leopo ! Grâce à toi je vais enfin pouvoir avancer !
Quant à mon deuxième problème (L'adversaire qui devenait statique lorsque je prenais le ballon après la première manche), j'ai tenté de le résoudre tout seul. J'avais beau cherché, je tournais en rond.. Alors j'ai refait l'événement "Joueur adverse" depuis le début ! Je saurai jamais où j'avais fais une boulette, mais maintenant, ça fonctionne !
arttroy
Citation: Combien tu as d'adversaires sur ta map ? Si tu en plusieurs, mieux vaut enregistrer les données dans des variables dédiées :
Xadversaire 1
Yadversaire 1
Xadversaire 2
Yadversaire 2 |
Danzaiver
Citation: Vérifie aussi que les variables sont associé a la bonne entité.
parfois en copiant ont modifie un petit truc comme l'id de l'event cible.
Du coup les variable ne pointes plus vers les bonnes entités. |
En fait, je me rend compte que vous mettiez le doigt sur le problème depuis le début sans que je comprenne.
Quoi qu'il en soit, merci à vous aussi !
Tex'
|
Dro |
el leopo -
posté le 29/04/2016 à 22:47:24 (75 messages postés)
| | Pas de soucis , ça arrive a tout le monde ce genre d'erreur .
Une fois j'ai passé deux jours a chercher un problème dans mon code alors que l'erreur venait d'un événement en position " au même niveau que le heros" .
Moi ce que je fais quand j'ai un bug , c'est d'afficher mes variables dans des messages , comme ça j'ai la valeur et je vois un peu mieux le problème.
Bon courage pour la suite ça a l'air sympa
|
TexQuin -
posté le 30/04/2016 à 13:41:41 (10 messages postés)
| Yamete kudasai | Ahah Toi aussi ?
Petite astuce sympas que tu m'apporte là pour le coup des variables, je m'en souviendrais !
Je te remercie, bon courage à toi pour ton projet tactic qui à l'air monstrueusement bien
|
Dro |
Danzaiver -
posté le 30/04/2016 à 13:58:11 (364 messages postés)
| | Perso je met des sons a la con dans mes evenement pour voir si ils sont bien lu jusque la.
Et parfois bah le son ce joue pas et la ... généralement c'est la misère u_u'
|
arttroy -
posté le 30/04/2016 à 15:20:16 (2394 messages postés)
| Just working | Inversion de 2 variables dans un script... 2 semaines de recherche...
Citation: Moi ce que je fais quand j'ai un bug , c'est d'afficher mes variables dans des messages , comme ça j'ai la valeur et je vois un peu mieux le problème. |
Sinon tu peux aussi afficher leur valeur dans la console rgss (onglet jeu, afficher la console). Ensuite il te suffit d'aller dans le script Scene_Map et dans l'update (ligne 62) tu rajoutes ça :
p $game_variables[x]
X étant l'id de la variable dans ta base de données comme ça ça t'affichera tout le temps ta valeur sans avoir recours à des messages.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? | Index du forum > Entraide > [RESOLU] [Rpg Maker VX Ace] Problème de changement de map ?
|
|
|