Boutons

Voir le sujet précédent Voir le sujet suivant Aller en bas

Tutoriel Boutons

Message par Morgan9195 le Sam 17 Aoû - 18:25



Programmer sur Script
Boutons


Les boutons sont partout dans la programmation sur Script. Que ce soit dans le menu d'un jeu video ou dans un logiciel, vous ne pourrez pas vous passer des boutons.
Bien que simplistes, les boutons ont un rôle très important. Ils permettent aux utilisateurs de naviguer comme bon leur semble dans vos programmes, ou encore d'interargir avec un environnement graphique.
Ce tutoriel vous apprendra donc à créer et utiliser des boutons de A à Z.
Il existe plusieurs sortes de boutons dans Script, nous utiliseront toutes les sortes de boutons dans ce tutoriel afin de vous faire découvrir toutes les possibilités de ces fonctions.

Bouton pour logiciel

Commençons par une fonction qui affichera un bouton rectangulaire (généralement) prévu pour un logiciel.



Ce bouton fait partie des choses les plus simples à faire dans Script, c'est donc une très bonne idée de l'apprendre dès le début. Apprendre cette fonction en parallèle avec le tutoriel sur les variables vous facilitera l'apprentissage de chaqu'un.

Ce bouton a la même apparence que les boutons sur les logiciels sous windows, c'est pourquoi il est souvent utilisé pour créer des logiciels propres et sérieux.

Le second bouton de cette illustration, plus coloré que le premier, est simplement visé par le curseur de la souris (la souris est invisible sur l'image).
Comme vous pouvez le voir, le bouton peut avoir n'importes quelles dimensions et n'importe quel texte.
Voici la fonction qui vous permettra de dessiner un bouton:
Code:

button(50,50,200,100,"Cliquez ici");
Cet exemple dessine un bouton ayant ces dimensions:
x1: 50
y1: 50
x2: 200
y2: 100
et le texte qui s'y affiche est à définir à la fin.
button(x1,y1,x2,y2,"Texte a afficher");
N'oubliez pas de mettre le texte entre guillemets.

Pour que le bouton réagisse aux clics, il suffit de l'écrire sous forme d'une condition.
Code:

if button(50,50,200,100,"Cliquez ici")
{
 show_message("Voila, vous avez cliqué!");
}
Tout ce qui sera mis entre les accolades sera exécuté lorsque l'utilisateur cliquera sur le bouton

Rappel: Une condition ne se termine jamais par un point virgule.

L'apparence de ce bouton ne changera pas en fonction de la version de Windows qui ouvre le programme. Toutes les versions de Windows verront la même apparence pour ce bouton.

Bouton rectangulaire invisible

Il peut arriver que vous souhaitez créer un bouton rectangulaire invisible pour ne pas détériorer l'apparence graphique de vos jeux, c'est pourquoi cette fonction vous permettra de manipuler les boutons avec plus de précisions.
Prenons comme exemple ce petit jeu de plateforme:



Vous voudriez peut être qu'on puisse cliquer sur les boutons visibles en bas de la fenêtre du jeu. Mais vous ne voulez pas que les boutons soient masqués par les précédents boutons pour logiciels que je vous ai appris. C'est principalement dans ce type de cas que cette fonction vous sera utile.
Vous pourrez aussi utiliser cette fonction pour cliquer sur des personnages. Ces boutons customisés pourront faire d'agréables boutons sur le menu de votre jeu.

Ce bouton se compose de deux conditions verifiant chaqu'une un etat de la souris. Une condition servira à vérifier que le curseur est dans le rectangle et l'autre se chargera de vérifier si l'utilisateur clique sur un bouton de la souris.

Nous allons commencer par voir séparément ces deux conditions.
Voici la condition qui vérifie si le curseur se trouve dans un rectangle:
if mouse_in_rectangle(x1,y1,x2,y2)
Et voici la condition qui vérifie si le clic gauche est pressé:
if mouse_check_button_pressed(mb_left)

Ces deux lignes tel quel n'ont aucun sens, c'est pourquoi je vais les mettre en pratique dans cet exemple:
Code:

if mouse_in_rectangle(50,50,200,100)
{
 if mouse_check_button_pressed(mb_left)
 {
  show_message("Voila, vous avez cliqué!");
 }
 draw_set_color(c_blue);
}
else
 draw_set_color(c_black);
draw_rectangle(50,50,200,100,true);
draw_text(70,70,"Cliquez ici");
Si vous voulez une fonction qui repère plus en détail la souris, voici les variables qui contiennent les coordonnées de la souris:
mouse_x
mouse_y
Ces deux variables ne sont pas modifiables mais utilisables dans des instructions et des conditions.

Détecter la souris c'est bien, mais détecter ses clics en plus, c'est mieux !
Voici les conditions qui détectent les clics pressés:
if mouse_check_button_pressed(mb_left)
if mouse_check_button_pressed(mb_right)

Et voici les conditions qui détectent les clics relachés:
if mouse_check_button_released(mb_left)
if mouse_check_button_released(mb_right)

Et les conditions qui détectent les clics maintenus:
if mouse_check_button(mb_left)
if mouse_check_button(mb_right)

Bouton circulaire invisible

Après avoir appris à utiliser un bouton rectangulaire invisible, ce nouveau bouton ainsi que le suivant vont être plus simple à apprendre.
Le bouton circulaire invisible se présente comme ceci:
if mouse_in_circle(x,y,rayon)

x et y sont les coordonnées du centre du cercle.
ensuite, il faut préciser le rayon du cercle.

Bouton rectangulaire invisible aux coins arrondis

Ce bouton combine deux boutons précédemment vus. Si vous savez l'utiliser, vous pouvez en conclure que vous maitrisez bien cette partie de tutoriel.
Ce bouton contient 2 mouse_in_rectangle et 4 mouse_in_circle.
Voici comment se nomme la fonction permettant de faire un bouton rectangulaire invisible aux coins arrondis:
if mouse_in_rectangle_round(x1,y1,x2,y2,rayon)

Je suppose que je n'ai pas besoin de vous préciser comment la fonction marche, c'est comme les précédentes que nous venons de voir.

Bouton triangulaire invisible

Voici la syntaxe de cette fonction:
if mouse_in_triangle(x1,y1,x2,y2,x3,y3)

Il faut préciser les coordonnées des trois points du triangle.

Boutons qui détectent un point autre que la souris

Pour détecter un point autre que la souris, il suffit de remplacer "mouse" par "point" dans toutes les précédentes fonctions que je vous ai enseigné.
Ce qui donnera ceci:
point_in_rectangle(rectangle_x1,rectangle_y1,rectangle_x2,rectangle_y2,point_x,point_y)
point_in_circle(x,y,rayon,point_x,point_y)
point_in_triangle(x1,y1,x2,y2,x3,y3,point_x,point_y)
etc...




avatar
Morgan9195
Fondateur
Fondateur

Messages : 168
Date d'inscription : 11/02/2013
Age : 22
Localisation : Entre le fauteuil et le clavier

Projet(s)
Niveau de connaissances dans Script: Professionnel
Spécialité: Programmeur

Voir le profil de l'utilisateur http://morgan9195.olympe.in/devblog/

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum