| Choisir les touches du jeu (mon premier script soyez simpas) | |
|
+4Super-Mouton lotus edi9999 972_creator 8 participants |
Auteur | Message |
---|
972_creator Bavard
Messages : 106 Projet Actuel : Matrix Trilogy 2D
| Sujet: Choisir les touches du jeu (mon premier script soyez simpas) Ven 3 Avr 2009 - 21:51 | |
| :p_hello: Pour ce script, vous devez connaître le fonctionnement des fichier INI.Ce sript permet de choisir les touches de commandes pour son jeu. Il fonctionne en 4 étapes: _Etape 1 : le joueur click sur la commande qu'il veut changer _Etape 2 : le joueur entre la nouvelle touche pour la commande _Etape 3 : Un script attribut la nouvelle touche à la commande choisi _Etape 4 : La touche qui correspond à la commande est affichée Important et bon à savoir : chaques touche du clavier correspond à un nombre. Ainsi par exemple la la touche " vk_up " correspond au nombre 38. Donc quand vous écrivez if ( keyboard_check( vk_up)), c'est pareil que si vous écrivez if ( keyboard_check( 38 )). Voisi une liste de quelques correspondence des touches du clavier: - Spoiler:
A = 65 B = 66 C = 67 D = 68 E = 69 F = 70 G = 71 H = 72 I = 73 J = 74 K = 75 L = 76 M = 77 N = 78 O = 79 P = 80 Q = 81 R = 82 S = 83 T = 84 U = 85 V = 86 W = 87 X = 88 Y = 89 Z = 90 Espace = 32 Ctrl = 17 Shift = 16 Backspace = 8 Flèche haut = 38 Flèche bas = 40 Flèche gauche = 37 Flèche droite = 39 ect... Si vous voulez connaître toute les correspondences des touches au nombre, tapez ce code dans l'event : draw_text( x, y, string( la touche que vous voulez));
Voila ^^ Bien, maintenant commençons. On commence par crée un petit script( pas si petit que sa ) Ce script sert à convertir la valeur d'une touche en un string, pour afficher le nom de la touche à l'écran. On le nome val_touche : - Spoiler:
- Code:
-
// le script contient 1 argument.
//On déclare les variables.
var val_aff;
/* On met la valeur par défault de cette variable : cette valeur est utilisée si la touche que vous voulez convertir n'est pas dans le script */
val_aff = "Cette touche n'est pas valide, changer la. ";
//on convertie les touches en string.
if (argument0 == 65) val_aff = "A"; if (argument0 == 66) val_aff = "B"; if (argument0 == 67) val_aff = "C"; if (argument0 == 68) val_aff = "D"; if (argument0 == 69) val_aff = "E";
// etc... vous avez compris le principe.
//On revoie la valeur de val_aff.
return val_aff;
Maintenant on crée 1 objet nommé touche_avancer. On lui attribut un sprite : sur ce sprite on écrie le nom de la commande. Exemple : Avancer. Event : - Code:
-
//valeur par défault de la commande. Crée un fichier INI et metez une valeur. ini_open("nom du fichier"); global.up = ini_read_real("config","avancer","vk_up"); Event left button : - Code:
-
//Etape 1 : le joueur click sur la commande qu'il veut changer. //On met la variable à 0 pour indiquer qu'il a click sur la commande. global.up = 0; Event any key: - Code:
-
/* Etape 3 : le joueur appuie sur la touche qu'il veut, cette touche sera attribuer à la commande avancer. */ /* On met la variable à 1 pour indiquer que le joueur à appuier sur une touche */ global.up = 1; Event step : - Code:
-
// on attribue la touche à la commande. if (global.up == 1) { global.up = keyboard_lastkey; ini_write_real("config","avancer",global.up); } Voilà pour cette objet. Créer un objet pour chaqu'une de vos commande : avancer, reculer, aller à droite, à gauche, ect. Vous avez compris le principe.^^ On crée maintenant un 2ème objet nommé controlleur_touches. Cette objet servira simplement à afficher la valeur des commandes. Event : - Code:
-
/* On affiche la valeur de la commande avancer. Quand le joueur click sur la commande ( up = 0 ), on affiche " Appuyer sur une touche." Et quand le joueur a appuyer sur une touche, on convertie cette touche en string grâce au script "val_touche" et on affiche le nom de cette touche. */
with(touche_avancer) { if (global.up == 0) draw_text(x,y,"Appuie sur une touche"); else draw_text(x,y,val_touche(global.up)); } Voila ^^ C'est fini. Pour avancer utiliser : if ( keyboard_check( global.up)); Vous pouvez modifier ce script comme bon vous semble. N'oubliez pas de me citez dans vos crédits. (script modifier, reliser-le) _________________ The matrix has you |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Sam 4 Avr 2009 - 8:29 | |
| c'est plus un tutoriel qu'un simple script je dirais, en plus pour un premier, c'est vraiment pas mal ! |
|
| |
lotus Utilisateur confirmé: Rang *
Messages : 178 Localisation : Levallois-Perret Projet Actuel : Intégrer une (très) grande école d'ici septembre 2011 !
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Sam 4 Avr 2009 - 14:05 | |
| C'est toujours sympa quand on peut choisir ses touches ! Ca marche avec un joystick ou pas ? _________________ "Tomorrow, you'll be faster and think that yesterday you were slow."
|
|
| |
972_creator Bavard
Messages : 106 Projet Actuel : Matrix Trilogy 2D
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Sam 4 Avr 2009 - 17:39 | |
| merci edi9999 lotus, c'est pour clavier, on pourrait l'adapter pour joystick mais il faudrait une fonction du genre joystick_lastbutton qui donnerai le dernièr boutton appuyer... mais sa exist pas encore. _________________ The matrix has you |
|
| |
Super-Mouton *Excellent utilisateur*
Messages : 4916 Localisation : Cyberworld Projet Actuel :
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Sam 4 Avr 2009 - 17:56 | |
| Y'a bel et bien un moyen de le faire avec un joystick/gamepad, je l'ai vu dans certains jeux GM. Sinon nice tuto _________________ Hey là tabarnak lâche ma sig sacha >=| |
|
| |
lotus Utilisateur confirmé: Rang *
Messages : 178 Localisation : Levallois-Perret Projet Actuel : Intégrer une (très) grande école d'ici septembre 2011 !
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Dim 5 Avr 2009 - 15:05 | |
| Faut l'inventer cette fonction ^^ _________________ "Tomorrow, you'll be faster and think that yesterday you were slow."
|
|
| |
972_creator Bavard
Messages : 106 Projet Actuel : Matrix Trilogy 2D
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Dim 5 Avr 2009 - 15:59 | |
| On pourrait l'inventer avec une dll pour joysticks. Mais il faudrait s'y connaitre en C ou en C++ ou un autre langage _________________ The matrix has you |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Dim 5 Avr 2009 - 17:23 | |
| pas besoin de dll : - Code:
-
joystick_exists(id) Returns whether joystick id (1 or 2) exists. joystick_name(id) Returns the name of the joystick joystick_axes(id) Returns the number of axes of the joystick. joystick_buttons(id) Returns the number of buttons of the joystick. joystick_has_pov(id) Returns whether the joystick has point-of-view capabilities. joystick_direction(id) Returns the keycode (vk_numpad1 to vk_numpad9) corresponding to the direction of joystick id (1 or 2). joystick_check_button(id,numb) Returns whether the joystick button is pressed (numb in the range 1-32). joystick_xpos(id) Returns the position (-1 to 1) of the x-axis of joystick id. joystick_ypos(id) Returns the joysticks y-position. joystick_zpos(id) Returns the joysticks z-position (if it has a z-axis). joystick_rpos(id) Returns the joysticks rudder position (or fourth axis). joystick_upos(id) Returns the joysticks u-position (or fifth axis). joystick_vpos(id) Returns the joysticks v-position (or sixth axis). joystick_pov(id) Returns the joysticks point-of view position. This is an angle between 0 and 360 degrees. 0 is forwards, 90 to the right, |
|
| |
972_creator Bavard
Messages : 106 Projet Actuel : Matrix Trilogy 2D
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Dim 5 Avr 2009 - 18:34 | |
| non, sa c'est les fonctions de base de Game maker.
Je disai qu'il faudrait une dll pour avoir une fonction du genre joystick_lastbutton qui retournerai le dernier boutton du joystick présser. _________________ The matrix has you |
|
| |
lotus Utilisateur confirmé: Rang *
Messages : 178 Localisation : Levallois-Perret Projet Actuel : Intégrer une (très) grande école d'ici septembre 2011 !
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Dim 5 Avr 2009 - 19:04 | |
| Ca doit pouvoir se construire avec ces variables je pense, sans dll. J'y réfléchirai ... _________________ "Tomorrow, you'll be faster and think that yesterday you were slow."
|
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Dim 5 Avr 2009 - 20:29 | |
| avec une boucle for(i=1;i<=30;i<=1) { if joystick_check_button(id,i) return i; }
en gros |
|
| |
lotus Utilisateur confirmé: Rang *
Messages : 178 Localisation : Levallois-Perret Projet Actuel : Intégrer une (très) grande école d'ici septembre 2011 !
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Dim 5 Avr 2009 - 20:39 | |
| Moui, mais si t'appuies sur plusieurs touches en même temps ça marche pas (enfin si mais ça renvoie que le plus petit numéro : pas très pratique !). Sinon il faut créer une sorte de liste qui stocke tous les boutons appuyés. _________________ "Tomorrow, you'll be faster and think that yesterday you were slow."
|
|
| |
972_creator Bavard
Messages : 106 Projet Actuel : Matrix Trilogy 2D
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Dim 5 Avr 2009 - 20:55 | |
| exact. Avec un peu de réflexion sa peut se faire. _________________ The matrix has you |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Dim 5 Avr 2009 - 21:33 | |
| - lotus a écrit:
- Moui, mais si t'appuies sur plusieurs touches en même temps ça marche pas (enfin si mais ça renvoie que le plus petit numéro : pas très pratique !).
Sinon il faut créer une sorte de liste qui stocke tous les boutons appuyés. Oui ben normalement quand tu veux configurer un keyboard ou un joystick t'appuie pas sur plusieurs boutons à la fois. |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Dim 5 Avr 2009 - 21:59 | |
| quel bouton pour sauter? 1,2,3,4,5,6,7,8,9 et 19 je vous pris _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Dim 5 Avr 2009 - 22:28 | |
| Merci de me défendre nicoulas et wargamer |
|
| |
Super-Mouton *Excellent utilisateur*
Messages : 4916 Localisation : Cyberworld Projet Actuel :
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Lun 6 Avr 2009 - 1:57 | |
| Bah si vous voulez me semble qu'il y a un exemple sur www.damagedgames.com ... en gmd lol, je me souviens l'avoir vu y'a très longtemps, mais je crois que c'est dans l'exemple de Megaman _________________ Hey là tabarnak lâche ma sig sacha >=| |
|
| |
jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Lun 6 Avr 2009 - 7:28 | |
| - nicoulas a écrit:
- lotus a écrit:
- Moui, mais si t'appuies sur plusieurs touches en même temps ça marche pas (enfin si mais ça renvoie que le plus petit numéro : pas très pratique !).
Sinon il faut créer une sorte de liste qui stocke tous les boutons appuyés. Oui ben normalement quand tu veux configurer un keyboard ou un joystick t'appuie pas sur plusieurs boutons à la fois. jme disais pareil. okay pour faire un bon script, mais faut pas pousser, si le gars l'est assez con pour bind 20 touches en même temps... x_x sinon, si c'est pour les combi- de touches, tu fais la premiere puis la deuxieme, et c'est tout v_v _________________ http://viciousslugs.sup.fr/ <- Des imbéciles en action. Venez visiter, on recherche des lecteurs, des auteurs, et ça paye mal. En fait ça paye pas, mais ya moyen de se marrer. |
|
| |
Chulien Utilisateur confirmé: Rang *****
Messages : 2232
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Lun 6 Avr 2009 - 12:45 | |
| et puis cest dur dappuyer sur les deux au meme step non? :/ |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Lun 6 Avr 2009 - 18:02 | |
| |
|
| |
lotus Utilisateur confirmé: Rang *
Messages : 178 Localisation : Levallois-Perret Projet Actuel : Intégrer une (très) grande école d'ici septembre 2011 !
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Lun 6 Avr 2009 - 20:52 | |
| Je m'explique un peu sur un exemple :
Jeu de course : Accélérer : bouton 1 Vitesse supérieure : bouton 7 Ben tu peux pas passer ta vitesse en accélérant car il te return 1 (ou 7), mais pas les deux. Et la c'est exactement sur le même step !
C'est ça que je voulais dire, mais je crains d'avoir été mal compris. C'est sur que tu mets pas accélérer sur 37 touches ! _________________ "Tomorrow, you'll be faster and think that yesterday you were slow."
|
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Lun 6 Avr 2009 - 23:15 | |
| Le script que j'ai donné ne marche que pour la configuration,après, tu utilises des simples conditions(if). |
|
| |
lotus Utilisateur confirmé: Rang *
Messages : 178 Localisation : Levallois-Perret Projet Actuel : Intégrer une (très) grande école d'ici septembre 2011 !
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) Mar 7 Avr 2009 - 20:29 | |
| Ok. Tout ça pour ça quand même ^^ _________________ "Tomorrow, you'll be faster and think that yesterday you were slow."
|
|
| |
Contenu sponsorisé
| Sujet: Re: Choisir les touches du jeu (mon premier script soyez simpas) | |
| |
|
| |
| Choisir les touches du jeu (mon premier script soyez simpas) | |
|