FANDOM


Grâce à ce tutoriel vous saurez faire un bouton :D. Il permettra de quitter le jeu quand on cliquera dessus.


Premièrement il vous faut un modèle. Je ne vais pas expliquer/développer ici la création de modèle, ce n'est pas le but de ce tutoriel.

Bouton Quit

Bouton Quit

Moi je prendrais celui ci : C'est celui utilisé pour le jeu Doomsday Carrot Rampage.


Une fois que vous avez le modèle, il faut créer une scène, y placer une caméra et un autre objet qui aura comme rendu de modèle votre bouton.

Le script expliqué pas à pas Modifier

Maintenant que l'on a notre bouton il faut qu'il soit utile '^^.

Créez un script vierge, vous devriez otenir cela :

function Behavior:Awake()
    
end

function Behavior:Update()
    
end

La fonction Behavior:Awake est appelée au lancement du script. La première chose à faire est de prendre le composant "ModelRenderer" de l'objet auquel le script est rataché( grâce à self.). Ce sera donc notre bouton self.modelRndr = self.gameObject:GetComponent( "ModelRenderer" ). Ensuite il faut le composant de type "Camera" qui, dans ma scène s'appelle "camera".

self.camera = CraftStudio.FindGameObject( "camera" ):GetComponent( "Camera" )

Nous avons maintenant de quoi remplir la fonction Behavion:Awake() (Cette fonction ). Ce qui donne donc :

​function Behavior:Awake()
  self.modelRndr = self.gameObject:GetComponent( "ModelRenderer" )
  self.camera = CraftStudio.FindGameObject( "camera" ):GetComponent( "Camera" )
end​

La fonction Behavior:Update() , elle est appelée 60 fois par seconde, dans cette partie on va donc mettre du code pour vérifier que l'on clique sur le bouton.

Maintenant il faut verifier si la personne clique quelque part sur la fenêtre du jeu.

if CraftStudio.Input.WasButtonJustPressed("Fire")then


end

If permet de poser une condition et tout ce qui suivra sera effectué uniquement si l'action est verifiée.

L'action est CraftStudio.Input.WasButtonJustPressed("Fire") ce qui veut dire "Le bouton "Fire" est pressé". Ce bouton peut être modifié dans l'administration de votre projet.

Then signifie qu'il n'y a pas d'autre action qui doit être verifiée pour effectuer ce qui suit.

End corespond à la fin de la condition, ce qui se trouve après end sera effectué , même si la condition n'est pas verifiée.La suite de notre code sera donc entre le if et le end.

Ensuite nous allons créer un rayon qui va aller de la caméra et va passer par la position de la souris. (Un rayon peut etre comparé à une demie droite)

Ce rayon pour être défini a donc besoin de la position actuelle (lors du clique) de la souris heureusement CraftStudio met une fonction qui fait cela très simplement :

local mousePos = CraftStudio.Input.GetMousePosition()

La variable locale mousePos contiendra donc la position de la souris.

Maintenant que nous connaissons la position de la souris nous allons enfin créer le rayon

local ray = self.camera:CreateRay( mousePos )

Dans la variable locale ray il y aura donc le rayon qui commence à la camera et qui passe par la position de la souris.

Pour finir il faut vérifier que le rayon passe par le modèle auquel le script est rataché, nous alons donc réutiliser une condition.

if ray:IntersectsModelRenderer( self.modelRndr ) ~= nil then


end

If permet de definir une condition.

ray:IntersectsModelRenderer( self.modelRndr ) est l'action qui va être vérifiée. Elle retourne la distance entre le point de départ du rayon et le point d'intersection. Pour que ça fonctionne il faut lui donner la variable qui contient le rayon : ray ainsi que le model renderer du modèle self.modelRndr .

Le symbole ~= correspond à "différent de"

Nil signifie "nulle"

Then comme tout à l'heure permet de dire qu'il n'y a pas d'autres actions à vérifier pour effectuer ce qui suit.

Donc la traduction de cette ligne est " Si la distance d'interception du bouton n'est pas nulle (elle existe et donc que le bouton a été touché par le rayon) alors ...

La derniere fonction utilisée est celle qui permet de quitter le jeu :

CraftStudio.Exit()

Là il n'y a pas beaucoup d'explication à donner '^^.

Il ne vous reste plus qu'à aller dans votre scène, de sélectionner votre bouton, d'ajouter un composant de type comportement scripté et enfin de sélectionner ce script.

Le script complet Modifier

Voici ce que ça donne quand on a fini le script.

function Behavior:Awake()
    self.camera = CraftStudio.FindGameObject( "camera" ):GetComponent( "Camera" )
    self.modelRndr = self.gameObject:GetComponent( "ModelRenderer" )
end

function Behavior:Update()
    if CraftStudio.Input.WasButtonJustPressed("clicgauche") then
        local mousePos = CraftStudio.Input.GetMousePosition()
        local ray = self.camera:CreateRay( mousePos )
        local distance = ray:IntersectsModelRenderer( self.modelRndr )
        
        if ray:IntersectsModelRenderer( self.modelRndr ) ~= nil then
            CraftStudio.Exit()
        end
    end
end


J'espère que ce premier tutoriel est assez complet et qu'il vous a appris quelque chose.


Wardow

Interférence d'un bloqueur de publicité détectée !


Wikia est un site gratuit qui compte sur les revenus de la publicité. L'expérience des lecteurs utilisant des bloqueurs de publicité est différente

Wikia n'est pas accessible si vous avez fait d'autres modifications. Supprimez les règles personnalisées de votre bloqueur de publicité, et la page se chargera comme prévu.

Sur le réseau FANDOM

Wiki au hasard