| afficher la grille en arriere plan ??(résolu) | |
|
+3daminetreg notiz85 xenamart 7 participants |
|
Auteur | Message |
---|
xenamart Utilisateur confirmé: Rang ***
Messages : 554 Localisation : sur la toile, entre google et le cbna Projet Actuel : Rufal
| Sujet: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 17:11 | |
| Tout d'abord bonjour a tous Voila je suis sur la conscéption d'un jeu ou on jouera au échec sur l'ordi. Mais je n'arrive pas a afficher une grille et encore moin a séléctionner une case pour faire venir un pion dessus. Merci d'avance pour votre aide :p_merci: :p_merci: Et bravo pour votre travail
Dernière édition par le Ven 22 Juin 2007 - 17:24, édité 1 fois |
|
| |
notiz85 Utilisateur confirmé: Rang *****
Messages : 2004 Localisation : Vendée Projet Actuel : Moteur d'ombre pour un projet plateforme 2D...
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 18:33 | |
| Pour la grille, tu peux aligner tes objets avec l'icône D&D "Snap & ..." je ne sais plus quoi et après tu choisis la taille (16*16). Après il faut que tu vérifies en fait si ton pion à déjà été sélectionner (p_sel=true) si oui alors, tu recliques et si ton pion ne va pas plus loin que 16 pixel * 16 pixel et qu'il peut aller dans cette direction alors, tu déplaces ton pion ...Exemple code... - Code a écrit:
//OBJET DE TON PION
// Event Create p_sel=false; c_sel=false; move_snap(16,16);
// Event Mouse Left Pressed p_sel=true;
// Step if p_sel=true && mouse_check_pressed(mb_left) { c_sel=true; if c_sel<32 && direction=0 { y-=16; } }
Désoler, mais le code n'est pas juste au moment du c_sel<32 mais il faut en fait dire que le point de sélection doit être entre 0 et 32. |
|
| |
xenamart Utilisateur confirmé: Rang ***
Messages : 554 Localisation : sur la toile, entre google et le cbna Projet Actuel : Rufal
| |
| |
xenamart Utilisateur confirmé: Rang ***
Messages : 554 Localisation : sur la toile, entre google et le cbna Projet Actuel : Rufal
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 19:29 | |
| Je ne comprend pas, je lance le jeu en mode test et il m'affiche sa :
FATAL ERROR in action number 1 of Step Event for object Barbrousse:
COMPILATION ERROR in code action Error in code at line 1: if p_sel=true && mouse_check_pressed(mb_left)
at position 18: Unknown function or script: mouse_check_pressed |
|
| |
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 19:41 | |
| Il s'est juste trompé dans la syntaxe de la fonction, ce sont des oublis fréquents dû à la longueur des fonctions, voilà: - Citation :
- //OBJET DE TON PION
// Event Create p_sel=false; c_sel=false; move_snap(16,16);
// Event Mouse Left Pressed p_sel=true;
// Step if p_sel=true && mouse_check_button_pressed(mb_left) { c_sel=true; if c_sel<32 && direction=0 { y-=16; } } |
|
| |
Ablationer Administrateur
Messages : 14995 Localisation : QuébeCanada Projet Actuel : pas trop mourir
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 19:46 | |
| tiens, dans la même branche, je vais m'inscruter un peu, moi je cherche une fonction simple et rapide du genre " DRAW_GRID " ou un truc qui pourrait s'en approcher, car de devoir dessiner chaque ligne une par une... c'est pas terrible... |
|
| |
xenamart Utilisateur confirmé: Rang ***
Messages : 554 Localisation : sur la toile, entre google et le cbna Projet Actuel : Rufal
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 19:48 | |
| Le message a disparut mais maintenant le pion ne vas que dans une seule direction (c'est pour les pions qui font le chemin des cheval sur le jeu original ). Et puis je n'ai pas réussis a faire afficher la carte. PS : Mes pion font 34 sur 47 pixel sa a une importance sur le script ?? édit : Et aussi qu'il puissent se déplacer la ou la sourie clique. Et oui j'ai dit une sorte d'échec sa sera en faite plus de ce genre la : http://www2.jeux.com/jeux/jeux.php?VIDJeux=3268(Dis moi tout de suite si c'est possible avec GM) |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 20:07 | |
| TOUT est possible avec GM, mais bon, il faut de la patience, hein.... Déjà, pour aligner les pions, je propose une autre méthode : - Code:
-
/* grid_width : longueur de la grille grid_height : hauteur de la grille*/ //A executer lorsque le le pion a fini le déplacement, pour l'aligner : x=grid_width*round(x/grid_width) y=grid_height*round(y/grid_height) Personnellement, je préfère utiliser un code comme ça, pour ne pas avoir à paramétrer la grille de l'éditeur de room ou quelquechose comme çà... Pour Les lignes, c'est tout con mais ça marche : - Code:
-
//grid_width : largeur grille //grid_height : hauteur grille //color : couleur de la grille //Xmin : départ x de la grille //Xmax : fin x de la grille //Ymin : départ y de la grille //Ymax : fin y de la grille
for (i=Xmin;i<=Xmax;i+=grid_width) { draw_line_color(i,Ymin,i,Ymax,color,color) }
for (i=Ymin;i<=Ymax;i+=grid_height) { draw_line_color(Xmin,i,Xmax,i,color,color) }
Dernière édition par le Mer 20 Juin 2007 - 20:37, édité 1 fois |
|
| |
xenamart Utilisateur confirmé: Rang ***
Messages : 554 Localisation : sur la toile, entre google et le cbna Projet Actuel : Rufal
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 20:13 | |
| Une derniere question ou il faut mettre ses deux script ?? Tu ne le dit pas dans ton message |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 20:16 | |
| D'abord, tu déplace ton pion. (Dis moi si c'est à la souris, au clavier, et si il se déplace EXACTEMENT du nombre de pixel voulu, etc.) Après le déplacement, tu éxécute le premier script : Il arrondi la position du pion pour l'aligner à la grille. Le deuxième script se met dans DRAW , de préférence au début de draw, pour que la grille soit affichée sous le reste. |
|
| |
xenamart Utilisateur confirmé: Rang ***
Messages : 554 Localisation : sur la toile, entre google et le cbna Projet Actuel : Rufal
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 20:23 | |
| Lorsque je lance le jeu il m'affiche sa pour la grille :
Error in code at line 8: for (i=Xmin;i<=Xmax;i+=grid_width)
at position 9: Unknown variable Xmin |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 20:31 | |
| Les variables que j'ai mis dans le commentaire, tu dois les définir : Xmin : Départ de la grille en largeur Xmax : fin de la grille en largeur etc... TOUTES les variables doivent être définies. Pour que ça prenne toute la room, marque : Xmin=0 Xmax=room_width Ymin=0 Ymax=room_height Puis pour une grille de type 32*32 : grid_width=32 grid_height=32 Et pour une couleur grise : color=c_grey ATTENTION !! !! Tout ce que je viens de dire (l'initialisation de ces variables), met les dans l'event create de l'objet qui affiche la grille. Je fais suivre un exemple sous peu... |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 20:37 | |
| |
|
| |
xenamart Utilisateur confirmé: Rang ***
Messages : 554 Localisation : sur la toile, entre google et le cbna Projet Actuel : Rufal
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 20:44 | |
| Il m'affiche se message d'erreur : ERROR in action number 1 of Draw Event for object affiche la grille:
In script draw_grid: Error in code at line 14: draw_line_color(i,Ymin,i,Ymax,color,color)
at position 2: This function is only available in the Pro Edition. |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 20:46 | |
| il te faut la version enregistrée de GM, je crois. Je te dis tout ça en détail dans un MP, pour pas engorgé le forum |
|
| |
xenamart Utilisateur confirmé: Rang ***
Messages : 554 Localisation : sur la toile, entre google et le cbna Projet Actuel : Rufal
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 20:47 | |
| |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 20:48 | |
| envoyé |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 21:02 | |
| |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 21:03 | |
| bah... une IA basique c'est pas dur.... Après, de là à battre Kasparov.... |
|
| |
xenamart Utilisateur confirmé: Rang ***
Messages : 554 Localisation : sur la toile, entre google et le cbna Projet Actuel : Rufal
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 21:10 | |
| Si quelqun la déja fait je pourrai le faire (Avec beaucoup, beaucoup de travail ^^) |
|
| |
Ablationer Administrateur
Messages : 14995 Localisation : QuébeCanada Projet Actuel : pas trop mourir
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 21:36 | |
| - M@d_Doc a écrit:
-
- Code:
-
for (i=Xmin;i<=Xmax;i+=grid_width) { draw_line_color(i,Ymin,i,Ymax,color,color) }
for (i=Ymin;i<=Ymax;i+=grid_height) { draw_line_color(Xmin,i,Xmax,i,color,color) } ah mais bien sûr, je ne me sers pas de for souvent, mais là je vois que ça me sauve la vie lol |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Mer 20 Juin 2007 - 21:40 | |
| Franchement, je vois pas d'autre solution..... Oh! Suis-je bête..... Et si on utilisait un background? Ce serait beaucoup plus facile,non ? A part qu'on ne pourait ni changer la couleur ni la taille de la grille in-game... Chose possible avec mon exemple.... Oui, je me vante, et alors?
N'empêche.... pour une grille fixe, un background boufferait beaucoup moins de ram.. |
|
| |
xenamart Utilisateur confirmé: Rang ***
Messages : 554 Localisation : sur la toile, entre google et le cbna Projet Actuel : Rufal
| |
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Jeu 21 Juin 2007 - 8:42 | |
| - Citation :
- en plus j'ai déja un fond
N'oublie pas que tu peux superposer plusieurs background.... |
|
| |
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Jeu 21 Juin 2007 - 11:27 | |
| - Topaze22 a écrit:
- Ne me dit pas que tu feras une IA pour ton jeu d'échec !?
Les IAs dans les jeux d'échecs sont simples à réaliser si on veut faire un jeu d'échec simple, il suffit de jouer sur le principe de mirroir et l'ordinateur n'est pas faible comme l'humain, il voit où il doit bouger ses pions pour qu'ils ne soient pas en danger. Le mieux pour faire ce type d'ia, c'est de voir quels pions il peut bouger sans danger, ensuite voir s'il peut manger d'autre pion, ensuite parmi toutes les pièces qui peuvent attaquer ou qui peuvent se déplacer sans danger, prendre celle qui a le plus de forces et qui a le plus de chance de faire le plus de ravages. On trouve de nombreux tutoriaux sur le principe de coder l'ia d'un jeu d'échec, après si on veut faire un truc comme IBM l'avait fait, c'est déjà une autre partie de joie. |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Jeu 21 Juin 2007 - 13:31 | |
| on peut toujours essayer, hein.... Sérieusement c'est vrai que c'est pas trop trop dur.... Il suffit d'appliquer un algorythme d'attirance. L'ordi regarde toutes les combinaisons possibles. A chaque déplacement possible, il analyse le résultat. Si le résultat est bénéfique, cette solution gagne un point, si elle est pas bonne, elle en perd un, etc. Ainsi, il suffit une fois l'analyse terminée de regarder la combinaison qui offre le max de points. - Code:
-
Exemple : Déplacement 1 : Pas de pion à cet endroit. (+0pts) Mais pions ennemis susceptibles de me bouffer (-2pts)
Déplacement 2 : Pion ennemi à bouffer (+1pt) Pas de pions susceptibles de me bouffer (+1 pts)
Déplacement 3 : Pion ennemi à bouffer (+1pt) Pion ennemi susceptible de me bouffer (-2pts) Il choisira le déplacement 2, car celui qui a le plus de points. Après, il faut encore voir les points à attribuer pour chaque truc, et même le possibilité d'actions suicidaires.... Bref, en attribuant des points, tu aura une IA sensée,qui fait des trucs plus ou moins balèzes, et cette méthode permet de visualiser plus facilement le code de l'I.A. Bien sû, programmer ça, c'est une autre paire de manches.... Ah! au fait : Ce genre d'algorithme est utilisé dans les sims, et même A* (AStar) est basé (plus ou moins) sur ce principe. |
|
| |
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Jeu 21 Juin 2007 - 14:07 | |
| Il est même possible de pousser L'IA plus loin avec cet algo, par exemple une fois qu'on a tout testé, on peut donner à l'ia la possibilité d'anticiper: Si je bouge ce pion je vais me le faire bouffer, cependant, si je me le fais bouffer je peux ensuite manger ce pion qui est plus fort que le pion que je vais me faire manger. Et on peut anticiper ainsi pour les 4,5 prochains tours, cela demande toujours un casse tête plus grand, mais cela m'a l'air assez simple à faire.
Tu rapproches l'algo A* de cela, mais je ne sais pas si on peut vraiment dire qu'il sont proches, parce que ce dernier sert à trouver la voie la plus rapide d'un point à un autre en évitant des obstacles, or là on ne fait rien d'effectif, notre IA ne fait que supposer ce qu'elle pourrait faire, il n'y a pas de recherche de chemin rapide, long, moins long entre un point et l'autre, et combien même on voudrait dire à tel pion de chercher le chemin le plus rapide entre telle ou telle case jusqu'à telle ou telle case on ne pourrait appliquer A*, car il n'a pas été pensé pour subir les contraintes de déplacement que chaque pièce du jeu d'échec possède. Enfin bref tout ça pour dire que A* me paraît difficilement ajustable à un jeu d'échec. Après je peux me tromper.
Ce qui serait bien, par ailleurs, si tu fais un jeu d'échec ce serait également d'en inventer un original en plus, il faudrait ajouter une troisième dimension dans le "gameplay" du jeu d'échec, c'est celle du terrain, c'est à dire donner des possibilités différentes aux différentes pièces selon que la case est définie: eau, terre, feu etc. C'est dans le livre de Iain M. Banks, Le Joueur de Jeu, il explique un jeu d'échec un peu plus complexe mais de ce fait encore plus stratégique, si on y ajoute les éléments. Il faudrait que je me renseigne si ce type de jeu d'échec a déjà été mis en oeuvre. |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Jeu 21 Juin 2007 - 15:44 | |
| En fait, pour moi A* est juste un moteur de choix, rien de plus, et pas seulement et "trouveur de chemin". La base de AStar est de trouver le chemin le plus court, soit. Mais Une fois amélioré, (certains jeux pros ont fait ça) Il cherche le chemin le plus court en se basant non seulement sur la longueur mais la "difficulté" de la case ainsi que de tout ça. - Code:
-
Ex : Chemin 1 : +Tout droit, pendant 5cases dont 4 cases de terrain qui monte (ralentit) +Un peu dévié, 7cases, mais tout plat Là, il prend le deuxième : plus long en distance,mais moins couteux en points, car plus rapide. En fait, ça revient au principe des GPS : choisir entre plus court et plus rapide.... Bref, ce que j'appelle Astar modifié, C'est exploitation des données, les compiler pour avoir un résultat quantifiable et finalement permettre defaire un choix, le moins couteux possible, peut importe ce que représentent ces "points". C'est plus ou moins ça, un algo de décision quantifiable pour moi. |
|
| |
Invité Invité
| Sujet: Re: afficher la grille en arriere plan ??(résolu) Jeu 21 Juin 2007 - 15:48 | |
| à ce que je vois les grands esprits se sont déjà rencontrés... |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| |
| |
Contenu sponsorisé
| Sujet: Re: afficher la grille en arriere plan ??(résolu) | |
| |
|
| |
| afficher la grille en arriere plan ??(résolu) | |
|