Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Prog] ActionDroid
Auteur Message
Répondre en citant
Message [Prog] ActionDroid 
Bonjour,


Voilà un script que j'avais commencé pour un concours que je n'avais pas fini par manque de temps. Il n'est donc pas fini mais marche très bien. Le but de ce jeu est de bouger le droid pour ne pas qu'il se fasse écraser pas le mur et d'avoir la même couleur que le mur pour gagner plus de points. Le mur tombe tout le temps au même endroit, mais si vous voulez modifier le code pour que le mur tombe dans une position aléatoire, pas de problème (mon code est même un peu trop commenté). Vous devez vous déplacer avec les touche gauche et droite et changer de couleur avec les touches haut et bas. Compatible tous Windows, testé sur seven.

Exclamation Pour l'utiliser vous devez avoir les images alors vous devez télécharger ce zip : http://dl.dropbox.com/u/10762003/ActionDroid.zip (il contient les versions exécutables 32 et 4 bits, le code source et les images.)

Code :
Code:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\..\..\Pictures\créations images\autoit_icon_poilu.ico
#AutoIt3Wrapper_Res_Language=4108
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstants.au3> ;Pour l'interface
#Include <Misc.au3> ;Pour _IsPressed

HotKeySet("{esc}", "_quit") ;Si on appuye sur la touche escape alors on utilise la fonction _quit

Global $pseudo = "ErrorDefaut", $score, $map ;On définit quelques variables.

pseudoini() ;On utilise la fonction pseudoini()
Func pseudoini() ;Début de la fonction pseudoini()
If $pseudo <> "ErrorDefaut" Then ;si le pseudo est différent de ErrorDefaut
   If Not FileExists(@ScriptDir&"\ActionDroid.ini") Then ;Si le fichier n'existe pas
      Global $pseudo = InputBox("ActionDroid","Entrez votre pseudo de jeu :") ;on demande à l'utilisateur d'entrer son pseudo
      IniWrite("ActionDroid.ini","Reglages","Pseudo",$pseudo) ;On écrit le pseudo dans le fichier ini
      Global $score = 0 ;On initialise le score à 0
      IniWrite("ActionDroid.ini","Reglages","Score",$score) ;On écrit le nouveau score dans le fichier .ini ;On écrit le pseudo
   Else ;Sinon
      Global $pseudo = IniRead("ActionDroid.ini","Reglages","Pseudo","ErrorDefaut") ;On lit le pseudo
      If $pseudo = "ErrorDefaut" Then pseudoini() ;On utilise la fonction pseudoini()
      Global $score = IniRead("ActionDroid.ini","Reglages","Score","0") ;On lit le score
   EndIf ;On ferme le If
EndIf ;On ferme le If
EndFunc

restart1() ;On utilise la fonction

Func restart1() ;Début de la fonction

Global  $perso, $perso2, $mur1, $pic5, $mur2, $Pic7, $ActionDroid, $droid = @ScriptDir &"\android-logo-noir-vert.jpg" ;On définit quelques variables.
Global $top = 0 , $left = Random(40,990,1), $speed = Random(1.4,4,0.1), $height = 100, $mur = @ScriptDir &"\BlocVert.jpg" ;On définit quelques variables.

If $left > 415 And $left <  500 And $speed < 4 Then $speed = $speed+2 ;Si le droid est placé juste en dessous du trou, on accelère la vitesse

GUIDelete() ;On efface tout

While StringRight($droid,6) = StringRight($mur,6) ;On fait la boucle jusqu'à ce que la couleur du mur et du droid soient différents
$murrandom = Random(1,4,1) ;On définit un nombre aléatoire
Switch $murrandom ;Début du switch
   Case 1 ;Si la $murrandom vaut 1
      $mur = @ScriptDir &"\BlocVert.jpg" ;On définit la couleur du mur
   Case 2 ;Si la $murrandom vaut 2
      $mur = @ScriptDir &"\BlocRouge.jpg" ;On définit la couleur du mur
   Case 3 ;Si la $murrandom vaut 3
      $mur = @ScriptDir &"\BlocCiel.jpg" ;On définit la couleur du mur
   Case 4 ;Si la $murrandom vaut 4
      $mur = @ScriptDir &"\BlocJaune.jpg" ;On définit la couleur du mur
   Case Else ;Si la $murrandom vaut autre chose
      $mur = @ScriptDir &"\BlocVert.jpg" ;On définit la couleur du mur
EndSwitch ;Fin du switch

$droidrandom = Random(1,4,1) ;On définit un nombre aléatoire
Switch $droidrandom ;Début du switch
   Case 1 ;Si la $droidrandom vaut 1
      $droid = @ScriptDir &"\android-logo-noir-vert.jpg" ;On définit la couleur du droid
   Case 2 ;Si la $droidrandom vaut 2
      $droid = @ScriptDir &"\android-logo-noir-rouge.jpg" ;On définit la couleur du droid
   Case 3 ;Si la $droidrandom vaut 3
      $droid = @ScriptDir &"\android-logo-noir-ciel.jpg" ;On définit la couleur du droid
   Case 4 ;Si la $droidrandom vaut 4
      $droid = @ScriptDir &"\android-logo-noir-jaune.jpg" ;On définit la couleur du droid
   Case Else ;Si la $murrandom vaut autre chose
      $droid = @ScriptDir &"android-logo-noir-vert.jpg" ;On définit la couleur du droid
EndSwitch ;Fin du switch
WEnd ;Fin de la boucle


#Region ### START Koda GUI section ### ;Début de la création de l'inteface (GUI)
$ActionDroid = GUICreate("ActionDroid Game by sablier94", 1013, 475, 196, 127);On crée la fenêtre
GUISetBkColor(0x000000);On met la couleur de fond en noir
$perso = GUICtrlCreatePic($droid, $left, 365, 100, 108) ;On crée le personnage
$mur1 = GUICtrlCreatePic($mur, 0, 0, 444, 100) ;On crée le mur de gauche
$mur2 = GUICtrlCreatePic($mur, 570, 0, 444, 100) ;On crée le mur de droite
GUISetState(@SW_SHOW) ;On affiche la GUI
#EndRegion ### END Koda GUI section ### ;Fin de la création de la GUI


While 1 ;début de la boucle infinie en cas de fermeture du programme
If _IsPressed("25") Then _gauche1() ;Si la touche flèche gauche est pressée, alors on utilise la fonction _gauche
If _IsPressed("27") Then _droite1() ;Si la touche flèche droite est pressée, alors on utilise la fonction _droite
If _IsPressed("26") Then _UpColor1() ;Si la touche flèche hautest pressée, alors on utilise la fonction _UpColor
murdown1() ;On descent le mur
   $nMsg = GUIGetMsg();initialisation du switch
   Switch $nMsg ;Début du switch
      Case $GUI_EVENT_CLOSE ;Si on appuye sur la croix
         Exit ;On ferme le script ;On ferme
   EndSwitch ;Fin du switch ;Fin du switch
WEnd ;Fin de la boucle ;Fin de la boucle infinie
EndFunc ;Fin de la fonction

Func murdown1() ;Début de la fonction
If $height < 475 Then ;Si le mur n'est pas tout en bas alors
$height = $height+$speed ;On ajoute la vitesse à la hauteur du mur ;On ajoute la vitesse à la hauteur du mur
GUICtrlSetPos($mur1, 0, 0, 444, $height) ;On remet l'image à la position voulue
GUICtrlSetPos($mur2, 570, 0, 444, $height) ;On remet l'image à la position voulue
sleep(15) ;On fait une pause de 15 milisecondes
Else ;Sinon si le mur n'est pas tout en bas
   If $left > 443 And $left < 473 Then ;Si le droid n'est pas écrasé
      If StringRight($droid,6) = StringRight($mur,6) Then ;Si la couleur du mur est égale à la coueleur du Droid ;Si la couleur du mur est égale à la coueleur du Droid
         $score = $score+200 ;On ajoute 50 au score ;On ajoute 200 au score
         IniWrite("ActionDroid.ini","Reglages","Score",$score) ;On écrit le nouveau score dans le fichier .ini
         $again = MsgBox(1,"ActionDroid","Vous n'avez pas été écrasé et vous avez la même couleur que le mur. Vous avez gagné de 200 points !") ;On affiche une popup [Ok -Annuler] avec le résultat
            If $again = 2 Then ;Si $again est égal à 2
               Exit ;On ferme le script
            Else ;Si $again n'est pas égal à 2
               Sleep(500) ;On fait une pause de 500 milisecondes
               pseudoini() ;On utilise la fonction pseudoini()
            EndIf ;On ferme le If
      Else ;Sinon si les couleurs ne sont pas égales
         $score = $score+100 ;On ajoute 50 au score ;On ajoute 100 au score
         IniWrite("ActionDroid.ini","Reglages","Score",$score) ;On écrit le nouveau score dans le fichier .ini
         $again = MsgBox(1,"ActionDroid","Vous n'avez pas été écrasé mais vous n'avez pas la même couleur que le mur. Vous avez gagné 100 points !") ;On affiche une popup [Ok -Annuler] avec le résultat
            If $again = 2 Then ;Si $again est égal à 2
               Exit ;On ferme le script
            Else ;Si $again n'est pas égal à 2
               Sleep(500) ;On fait une pause de 500 milisecondes
               restart1() ;On utilise la fonction restart1()
            EndIf ;On ferme le If
      EndIf ;On ferme le If
      Sleep(500) ;On fait une pause de 500 milisecondes
      restart1() ;On utilise la fonction restart1()
   Else ;Sinon si le droid est écrasé
         If StringRight($droid,6) = StringRight($mur,6) Then ;Si la couleur du mur est égale à la coueleur du Droid
         $score = $score+50 ;On ajoute 50 au score ;On ajoute 50 au score
         IniWrite("ActionDroid.ini","Reglages","Score",$score) ;On écrit le nouveau score dans le fichier .ini ;On écrit le nouveau score dans le fichier .ini
         $again = MsgBox(1,"ActionDroid","Vous avez été écrasé mais vous avez la même couleur que le mur. Vous avez gagné 50 points.") ;On affiche une popup [Ok -Annuler] avec le résultat
            If $again = 2 Then ;Si $again est égal à 2
               Exit ;On ferme le script
            Else ;Si $again n'est pas égal à 2
               Sleep(500) ;On fait une pause de 500 milisecondes
               restart1() ;On utilise la fonction restart1()
            EndIf ;On ferme le If
         Else ;Sinon
         $again = MsgBox(1,"ActionDroid","Vous avez été écrasé et n'avez pas la même couleur que le mur. Vous n'avez rien gagné...") ;On affiche une popup [Ok -Annuler] avec le résultat
            If $again = 2 Then ;Si $again est égal à 2
               Exit ;On ferme le script
            Else ;Si $again n'est pas égal à 2
               Sleep(500) ;On fait une pause de 500 milisecondes ;On fait une pause de 500 milisecondes
               restart1() ;On utilise la fonction restart1()
            EndIf ;On ferme le If
         EndIf ;On ferme le If ;On ferme le If

   EndIf ;On ferme le If
EndIf ;On ferme le If
EndFunc ;Fin de la fonction

Func _droite1() ;Début de la fonction _droite
If $left <= 1013 Then ;Si le personnage n'est pas tout à droite alors
   $left = $left+10 ;On définit la position horizontale du personnage de 5 pixels de plus que l'ancienne position.
   GUICtrlSetPos($perso, $left, 365) ;On déplace l'image
   sleep(3) ;On fait une pause de 3 milisecondes
Else ;Si le personnage est tout à droite alors
   $left = -50 ;On définit la position horizontale du personnage toute à gauche
   GUICtrlSetPos($perso, $left, 365) ;On déplace l'image
   sleep(3) ;On fait une pause de 3 milisecondes
EndIf ;On ferme le If ;Fin du if
EndFunc ;Fin de la fonction ;Fin de la fonction

Func _gauche1() ;Début de la fonction _gauche
If $left >= -50 Then ;Si le personnage n'est pas tout à gauche alors
   $left = $left-10 ;On définit la position horizontale du personnage de 5 pixels de moins que l'ancienne position.
   GUICtrlSetPos($perso, $left, 365) ;On déplace l'image
   sleep(3) ;On fait une pause de 3 milisecondes
Else ;Si le personnage est tout à gauche alors
   $left = 1013 ;On définit la position horizontale du personnage toute à droite
   GUICtrlSetPos($perso, $left, 365) ;On déplace l'image
   sleep(3) ;On fait une pause de 3 milisecondes
EndIf ;On ferme le If ;Fin du if
EndFunc ;Fin de la fonction ;Fin de la fonction

Func _UpColor1() ;Début de la fonction pour changer la couleur (+ foncé)
Switch $droid ;Début du Switch
   Case @ScriptDir &"\android-logo-noir-vert.jpg" ;Si la couleur est vert :
      $droid = @ScriptDir &"\android-logo-noir-jaune.jpg" ;Alors on définit la nouvelle couleur
   Case @ScriptDir &"\android-logo-noir-jaune.jpg" ;Si la couleur est jaune :
      $droid = @ScriptDir &"\android-logo-noir-rouge.jpg" ;Alors on définit la nouvelle couleur
   Case @ScriptDir &"\android-logo-noir-rouge.jpg" ;Si la couleur est rouge :
      $droid = @ScriptDir &"\android-logo-noir-ciel.jpg" ;Alors on définit la nouvelle couleur
   Case @ScriptDir &"\android-logo-noir-ciel.jpg" ;Si la couleur est ciel (bleu) :
      $droid = @ScriptDir &"\android-logo-noir-vert.jpg" ;Alors on définit la nouvelle couleur
EndSwitch ;Fin du switch ;Fin du switch
$perso2 = GUICtrlCreatePic($droid, $left, 365, 100, 108);on remet l'image à la position voulue
GUICtrlDelete($perso);on efface l'image du 1er droid
$perso = $perso2 ;on remet l'image en perso
sleep(100) ;on fait une pause de 0.15 secondes pour pas que le changement de couleur se fasse trop rapidement.
EndFunc ;Fin de la fonction ;Fin de la fonction

Func _quit() ;Début de la fonction de sortie
Exit ;On ferme le script ;On quitte la programme
EndFunc ;Fin de la fonction ;Fin de la fonction





______________________________________________________
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Prog] ActionDroid 
Cool comme jeu,

enfin j'aurais bien aimé que la vitesse augmente au lieu qu'elle soit aléatoire pour que ça soit plus marrant.
Après comme tu dis en changeant la position du trou ça serait encore mieux.

Mais bon je crois que tu as réussi à nous montrer que les jeux en autoit étaient possibles mais que c'était pas trop fait pour non plus.



Répondre en citant
Message [Prog] ActionDroid 
hello

dommage que ca scintalle beaucoup...
aussi il faudrait quye ce soit un peut plus long Mort de Rire


@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message [Prog] ActionDroid 
Un peu plus long ?

Ça scintille beaucoup chez toi ? Pourtant je n'ai plus utilisé la technique où je supprime l'image puis la recrée, mais là je déplace directement l'image avec une fonction.

Il y a encore du travail mais je suis sur un autre projet pour l'instant, alors on verra ce que je pourrais faire.

Merci pour vos remarques. Very Happy




______________________________________________________
Répondre en citant
Message [Prog] ActionDroid 
Hello!

heu perso ça scintille à mort chez moi Mort de Rire
mais là ça doit être autoit qui ne rafraichit pas assez...
pourtant ça scintillait pas beaucoup avec le bonhomme androïd avant...

@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message [Prog] ActionDroid 
C'est bizarre, tu as quoi comme ordi ? Moi j'ai un dual core à 1.2 GHz et ça scintille pas vraiment... Tu as pris la version compilée ou non ?

Pourtant, je n'efface aucune image, je les déplaces seulement... (d'ailleurs je vais aller voir si j'avais mis MoveTheDroid à jour)

++




______________________________________________________
Répondre en citant
Message [Prog] ActionDroid 
Pareil pour moi avec la version compilé



Répondre en citant
Message [Prog] ActionDroid 
Ha, je viens pourtant de vérifier et les versions compilée ne scintille pas du tout chez moi.

Vous avez quoi comme vieil ordi ? Mr. Green Si vous avez un 64 bits, utilisez la version 64 bits ça scintillera encore moins.

A+




______________________________________________________
Répondre en citant
Message [Prog] ActionDroid 
Un Packard Bell qui a 3 ans. 3 GO de vive, 500 de disque dur, c'était un des plus puissants vendus en familiale à l'époque.
J'ai pas installé les nouveaux pilotes de la carte graphique mais de toutes façon ça changera rien.
Je vais réessayer et si tu veux je te ferais une petite vidéo pour que tu vois par toi-même comment ça scintille chez moi.



Répondre en citant
Message [Prog] ActionDroid 
Sous Xp ? Bah t'as assez de RAM mais je pense que c'est le processeur qui doit pas être top. moz_laughing

C'est bon pas besoin de faire un vidéo, ça scintillera 30 fois plus ^^

++




______________________________________________________
Répondre en citant
Message [Prog] ActionDroid 
Non sous vista Ed familiale.
Mais je vais quand même faire une vidéo Mr. Green



Répondre en citant
Message [Prog] ActionDroid 
hello

sablier94 a écrit:
Sous Xp ? Bah t'as assez de RAM mais je pense que c'est le processeur qui doit pas être top


Non Non Non et Archi-Non Mort de Rire je peux jouer à n'importe quel jeux en ligne donc le probleme vient pas du pc...
d'ailleurs je pense que tu le compile ou pas, c'est aussi rapide non Wink je crois savoir qu'en fait le script compilé est tout de même interprété...
apres ...

@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message [Prog] ActionDroid 
Salut,

Oui oui, un script compilé est quand même interprété donc tout aussi rapide mais je ne savais pas si j'avais mis à jour l'exécutable.
Si c'est pas l'ordinateur, je vois pas ce que ça peut-être car chez moi ça scintille pas. Après je sais que chez moi il y a environ 1 scintillement par partie alors c'est rien du tout, ça se voit quasi pas, mais vous ça scintille vraiment beaucoup ou comme moi ?

Merci pour l'aide, A+




______________________________________________________
Répondre en citant
Message [Prog] ActionDroid 
Bonjour,

je voulais faire une vidéo mais je me suis rendu compte que on voyait quasiment pas les scintillements sur la vidéo. Question
Alors j'ai rejoué et en fait ça scintille pas aussi fort que je te l'avais dit mais ça scintille quand même.

Chez moi c'est de l'ordre de 4 ou 5 scintillements pas partie.
Je l'ai lancé non-compilé avec toutes les images dans le même dossier.



Répondre en citant
Message [Prog] ActionDroid 
Ha ok alors si c'est 4 ou 5 ça doit être normal, ça dépend des parties au fait.

Merci




______________________________________________________
Message [Prog] ActionDroid 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch