Forums GAMERGEN
[TUTO] Faire une application pour MACXT
Règles du forum
Cette section reste soumise aux règles du forum, aucun contenu warez, illégal et dangereux n'est toléré.
Cette section reste soumise aux règles du forum, aucun contenu warez, illégal et dangereux n'est toléré.
Voir le premier message non lu • 2 messages
• Page 1 sur 1
[TUTO] Faire une application pour MACXT
Bonjours à tous, c'est mon premier tuto, tout est dans le titre lol, je vais vous apprendre à créer une application facilement pour MACXT ( c'est le principe de MACXT, simplifier la vie aux programmeurs lol )
Avoir lu les tutos sur le lua dans le wiki ( tuto de pspgen ou xtreamlua par exemple )
Tout d'abord il faut créer un dossier pour voir votre application, pour cela rendez vous dans : MACXT2/Programs/le nom de votre application
Ensuite il vous faut créer un fichier en .lua ou .LUA dans votre dossier appelé Index.lua ou Index.LUA, si vous ne faite pas ca, il vous retournera une erreur pour choisir le fichier à lancer ( c'est moins rapide à lancer on va dire )
Voila votre programme apparaitra dans la dock, si il n'apparait pas, render vous dans le menu de MACXT ( la pomme en haut à gauche ) et actualisez la dock
Bien, si tout s'est bien passé, on va passer au code...
Tout d'abord il vous faut charger une image de fond ( ça fait plus jolie on va dire ), deux méthodes possibles.
Soit vous la chargez directement depuis votre dossier :
Cette méthode peut aussi empêcher le chargement de l'image à cause d'un problème de répertoire en cours ( System.currentDirectory() )
La meilleur méthode est de charger depuis le répertoire de MACXT
Elle ne renverra pas d'erreur normalement
Voila l'image est chargée, c'était pas dur jusque la
Après cela il vous faut dire à MACXT que c'est une nouvelle application qui lui est destinée
Cette fonction permet de réinitialiser toutes les variables et objets que votre application aura besoin
Après avoir cela nous pouvons déjà passer à la boucle principale. Si vous avez des variables pour votre application à mettre vous pouvez biensur les mettre avant la boucle ( ça coule de source )
Et afficher le fond :
Maintenant on va passer à la taskbar ( la barre en haut )
Pour l'utiliser et donner des "options" il vous faut utiliser un tableau ( table )
pour cela il vous faut mettre :
MACXT_Objets_Barre[1] correspond à la premiere "option" qui portera le nom "Mon Application" puis on verra apres à quoi sert Fonction = "Options_Appli"
vous pouvez mettre plusieurs "options" il vous suffiet d'additionner
Maintenant on va utiliser "Fontion = "Options_Appli"
Ceci vous permet de donner une condition : si le fonction est Options_Appli on va donner les sous options suivantes.
Exemple :
Alors la, MACXT_Objets_Barre_Fonction[1] est la première sous "option" qui aura comme nom "Quitter" et comme Action la variable "Quitter", MACXT_Repertoire:Actualise_Fonction() permet d'actualiser les sous options pour que MACXT les affichent (si vous ne mettez pas MACXT_Repertoire:Actualise_Fonction(), soit le luaplayer vous renverras une erreur soit elles ne seront pas affichées ).
Maintenant il vous faut aussi actualiser les Options de la taskbar pour cela il suffit de mettre :
On va maintenant apprendre à utiliser les Actions
Ceci est tres simple :
La, c'est tres simple aussi, vous dites que si l'action est "Quitter" ( précédemment donnée ) alors on casse la boucle pour revenir sous le bureau de MACXT ou l'application lancée avant la votre, MACXT_Repertoire:Anti_Bug() permet à MACXT de ne pas répéter en boucle l'action.
Après cela il vous suffit d'appeler le kernel de MACXT en mettant tout simplement :
Si vous n'appelez pas le kernel de MACXT, votre application plantera ou vous aurez de gros problèmes.
Après il vous suffit de mettre la fin du code.
Voila vous avez fait votre première application destinée à MACXT, certes elle ne sert a rien mais c'est un début par manque de temps pour faire le tuto, je compte le mettre a jour rapidement pour vous apprendre à gérer votre clic droit, gérer votre registre, gérer vos fenêtres vos textes, appeler un le finder pour charger un fichier ( présent dans pratiquement toute les applications sauf adibou et QuickTime ( QuickTime devait normalement être l'application que vous deviez faire )
Bon a part cela on va résumer le code :
En espérant qu'il n'y ait aucun erreur, n'ayant plus de psp je n'ai pas pu tester, veuillez me prévenir si il y a une erreur ( normalement non )
Voila j'espère que vous avez appréciés mon premier tuto en espérant que certaines personnes fassent une ou plusieurs applications ^^ c'est quand même le but...
Vive Xtreamlua !!!
A plus pour d'autres explications sur le système MACXT........
Juste une chose désolé de ne pas avoir pu mettre de screenshots, ça aurait été plus jolie lol.
Voilà la deuxième partie du tuto, gérer votre clic droit.
Pour utiliser le clic droit vous devez connaitre les coordonnées du curseur, en axe X la variable est "x" et en axe Y la variable est y.Très simple exemple ( on va aussi voir les messages d'indications sur le code :
MACXTAide correspond est la variable qui correspond à votre indication ( ou aide si vous préréfez ), c'est à dire que si le curseur est > 50 et < 100 and X et que que le curseur > 50 et < 100 en Y alors il va vous afficher votre indication dans cet espace.
vous pouvez aussi désactiver le pad directionnel ou le stick analogique en mettant :
Cela va désactiver le stick analogique
Pour le réactiver il faut mettre :
Pour désactiver le pad directionnel il faut mettre :
Pour le réactiver il faut mettre donc :
Voila maintenant vous savez tout sur le curseur
On va passer donc à la gestion du clic droit. Pour ça il faut utiliser encore un tableau ( table ) comme la gestion de la taskbar.
Exemple :
Voila donc après ce beau code ^^ vous avez toujours l'utilisation des coordonnées du curseur et l'affichage de l'application avec en plus la gestion du clic droit, on va voir ce que tout ca veut dire;
MACXT_Objets_Properties[1] ou [2] sont les variables de la table, Caption est le nom de la premiere "option", Action est comme vous l'avez deviné l'action à faire lors du choix de l'option
La MACXT va vous afficher un rectangle blanc avec les 2 Caption ( soit les options ).
PS : vous n'êtes pas obligés d'actualiser la table, MACXT le fait tout seul
Maintenant on va gérer l'action.
Exemple suivi des explications :
Voila, on va expliquer pour ceux qui ont du mal.
la on dit que si l'action est "Quitter" alors on casse la boucle puis on appel
la fonction d'anti-bug ( elle sert à ne pas répéter en boucle l'action sous peine de problèmes )
c'est a dire que Action_Properties == "Quitter" est la condition pour quitter votre application ou juste casser la boucle.
Voila c'est pas trop compliqué je pense ( dites moi si ça l'est que je cherche de meilleurs explications )
Gestion du registre ( pour sauvegarder toute modification apportée à votre application )
On va donc passer à la gestion du registre.
C'est tres simple à comprendre vous n'avez pas à écrire dans un fichier, MACXT est la pour vous ^^
-Premièrement où se trouve le registre??
il se trouve dans MACXT2/MACXT/Systeme/Registre, pour mettre vos éventuels fichiers ( vos fichiers doivent être au format .MACXT
Deuxièmement Lecture dans le registre :
Tres simple il vous faut écrire un ligne qui est celle si :
Voilà vous avez lu un fichier dans le registre, explications :
Il vous suffit donc d'appeler la fonction REGISTRY:Read() en y mettant en premier le dossier où est situé votre fichier avec vos données ou autre ( ici MonDossier ) et en deuxième le nom du fichier ( ici c'est MonFichier.MACXT )
Vous n'êtes pas obligés de mettre l'extension ( MonFichier.MACXT , MonFichier suffit )
Voilà c'est tout bête
Maintenant on va écrire dans le registre
Ici c'est la même chose pour les deux premiers arguments ( le dossier puis le fichier ), VALUE_WRITE correspond à la valeur à écrire
par exemple si je veux écrire "Vive Xtreamlua" dans mon fichier appelé "MonFichier" qui est dans mon dossier "MonDossier" je vais mettre :
Voilà vous savez aussi maintenant comment écrire dans le registre.
Vous pouvez aussi créer un dossier dans le registre depuis votre programme
Pour cela il vous suffit de mettre :
Il vous faut donc appeler la fonction REGiSTRY:Create_Dir() puis donner un nom à votre dossier.
Exemple : si je veux créer un dossier appelé Emeric0101^^
Voilà votre dossier est créé dans le registre.
Vous pouvez aussi créer un fichier dans le registre pour ça il vous faire mettre :
Plusieurs choses sont possibles :
-Premièrement vous pouvez ecrire une ou des valeurs directement à sa création ou alors vous pouvez aussi bien ne pas le faire pour cela il vous suffit de ne pas mettre VALUE_Write
Exemple :
Ici il y aura juste un fichier de créé sans rien dedans.
Donc pour créer un fichier il vous suffit d'appeler le fonction REGISTRY:Create_File() et de donner comme premier argument le dossier et comme deuxième argument le nom du fichier.
Exemple :
Si je veux crréer un fichier appelé "Xtreamlua" dans mon dossier précédent je dois mettre :
Et si je veux écrire directement une valeur dedans qui serait par exemple "TonySoad = 1" je dois mettre :
Voilà vous savez aussi créer un fichier dans le registre ^^.
Vous pouvez aussi effacer un fichier ou un dossier
On va commencer par savoir comment effacer un fichier.
On va mettre :
Ici il vous suffit encore une fois d'appeler une fonction , REGISTRY:Clear_File() et de mettre comme arguments le nom du dossier et le nom du fichier à supprimer.
si je veux supprimer le fichier "Xtreamlua" donc mon dossier je dois donc mettre :
Voilà c'est simple quand même non??
Vous savez maintenant supprimer un fichier dans le registre
Ca en fait des choses la mais il reste encore une possibilité, supprimer un dossier dans le registre ( Attention la supression d'un dossier supprimera tous les dossier et fichiers présents dans le dossier à supprimer )
Pour supprimer un dossier c'est aussi très simple :
il vous suffit donc encore d'appeler une fonction, REGiSTRY:Clear_Directory() puis de donner comme seul argument le nom du dossier.
Si je veux supprimer mon dossier précédemment créé ( MonDossier ) je dois donc mettre :
La MACXT va supprimer le dossier avec ( si il y est toujours ) le fichier Xtreamlua donc vous n'aurez plus rien dans votre dossier meme le dossier ne sera plus là ( c'est quand même le principe de la supression ^^ )
Voilà vous savez Supprimer un dossier de votre registre.
Vous savez aussi gérer le registre impécablement.
PS : dans toutes les fonction vous n'êtes pas obligés de mettre les extensions .MACXT
A venir, comment gérer mes fenêtres, le texte dans la fenetre et les boutons, gérer le Module Finder pour charger un fichier.
Gestion du Module Finder
Avant toute chose, Ã quoi sert la Module Finder.
Le Module Finder est donc d'après son nom le module de l'explorateur de fichiers appelé Finder.
Le Module Finder permet dans notre cas de charger des composants ( présent dans Itunes, Iphoto, Adhoc, et peut etre bientot QuickTime ^^ ), par exemple de charger une musique ou une image ou autre.
Son utilisation est simple il vous suffit juste de donner le dossier à explorer à son appel, l'extension du fichier et d'appeler la fonction.
Pour l'extension c'est simple si c'est un .mp3 ou .mp3 il vous suffit de mettre :
Les deux charactères des extensions seront reconnues automatiquement ( .mp3 et .MP3 )
Si c'est une image il vous suffit de mettre :
Pareil les charactères seront reconnus
Si c'est un autre type de fichier ( extension ) il vous faut donner la grande extension et la petite extension, pour cela il faut mettre :
Pextension est la petite extension et Gextension est la grande extension.
Pour le dossier exploré à l'appel du Module Finder, si vous ne le mettez pas, le répertoire par défaut sera "ms0:/".
Bien passons au code qui permet d'appeler le Module Finder.
Si on résume tout vous devez mettre le dossier ou pas cela dépend de vous, l'extension ( ".mp3", ".png", ou Pextension et Gextension )
Si on code, ça nous donne :
Ici, Finder_Module_Directory correspond au dossier à explorer à l'appel du Module Finder, Gextension et Pextension vous le savez normalement et Module_Finder:Init_Finder_Module() est la fonction qui appel le Module Finder.
Ca y est vous savez utiliser le Module Finder. Vous pouvez l'appeler n'importe où que ce soit dans la taskbar ou clic droite ou correspondance avec la souris ( par exemple un bouton dans l'image ). Si vous appelez le Module Finder dans la taskbar ou le clic droit n'oubliez pas d'appeler la fonction d'anti-bug :
Exemple avec la taskbar ( c'est la même chose avec le clic droit )
Ca y est vous savez tout sur le Module Finder vous pouvez dorénavent charger tout type de fichier.
Maintenant le plus dur et le meilleur évidemment
Voici donc la gestion de(s) fenête(s)
Tout d'abord qu'est-ce que je peux faire avec ces fenêtes??
Et bien elle peuvent vous servir à afficher des messages ou des confirmations, ce que vous voulez ou même des options (comme dans Itunes ).
Premièrement comment ça se passe??
Vous pouverz en tout dans une fenêtre mettre du texte, un ou des bouton(s )et une ou des image(s)
L'ordre est en premier si je me souviens bien, c'est le texte en haut, au milieu la ou les image(s) et en dernier le ou les bouton(s)
L'utilisation des fenêtes est le module le plus avancé en terme d'efficacité mais pas ai niveau du code de l'application, n'ayant pas eu le temps de finir réellement MACXT ( Si je mets en ligne mes versions c'est pour l'avancement ).
Bon on va passer au code et aux explications.
on va faire un exemple très simple puis on va suivre par les explications bien évidemment :
Bon passons aux explications pour ceux qui ont du mal :
MACXT_Repertoire:Reinitialiser_Window() est la fonction que vous êtes obligés de mettre pour éviter tout problème lié à votre fenêtre ou tout bug, elle réinitialise toutes les données importantes liées à l'utilisation de votre fenêtre.
Window_Hauteur = 30 est la hauteur de votre fenêtre ( 30 est le nombre de pixels en ordonnée soit y bien évidemment )
Window_Longueur = 300 est la longueur de votre fenêtre ( 300 est le nombre de pixels en abscisse soit en x )
MACXT_Title = "Erreur" est le titre de votre fenêtre donc votre fenêtre aura comme titre "Erreur" je pense que tout le monde l'aura compris
MACXT_Graphic:Init_New_Personnal_Window() est la fonction qui initialise votre fenêtre pour s'afficher à votre écran.
MACXT_Graphic:New_Textes() initialise le texte que vous allez écrire dans votre fenêtre
Là comme d'habitude ( pourquoi changer les habitudes ?? ) vous devez utliser un tableau comme la taskbar ou le clic droit pour afficher votre texte ( si une phrase est trop longue, le texte "débordera" de votre écran même si cela théoriquement est impossible on se comprend ), Caption est toujours la variable associée à votre première ligne soit 'Veuillez Activer le Adhoc".
MACXT_Repertoire:Actualise_Texte_Window() permet d'actualiser le texte de votre fenêtre comme d'habitude.
Vous pouvez biensur mettre plusieurs lignes il suffit de remplacer la valeur 1 par 2 ( MACXT_Texte_Window[2] = {Caption = "Veuillez Activer le Adhoc"})
Cet exemple est tiré de l'application Adhoc fournie avec MACXT V 2.1
Bon si on résume tout avec la langue française et non du code, ça nous donne :
On réinitialise la fenêtre que l'on veut afficher
On donne la hauteur de la fenêtre
On donne la longueur de la fenêtre
On donne le titre de la fenêtre
On initialise la fenêtre à afficher
On initialise le texte à afficher
On donne la première ligne à afficher à l'aide d'un tableau ( vous pouvez mettre plusieurs lignes comme dit précédemment )
Et on actualise le texte à afficher.
Voilà j'espere que vous avez tout compris, en clair ce code est sencé nous afficher sur l'écran une fenêtre de hauteur 30 pixels, de longueur 300 pixels, portant le titre "Erreur" avec marqué comme seule ligne "Veuillez Activer le Adhoc".
Voilà vous savez tout sur le texte dans une fenêtre ( c'est pas fini avec le texte ^^ )
Maintenant, Les boutons ^^
Pour les boutons c'est très simple, si vous affichez du texte, les boutons seront placés en dessous du texte.
En clair si on reprend le même principe on va afficher la même chose que précédemment mais avec une ligne de texte en plus ( pour le fun ^^ ) et deux boutons.
Voilà , bon pour le debut vous savez à quoi ça correspond ( normalement )
A partir de Affichage_Button = ..... commence la gestion des boutons.
Deux modes d'affichage des boutons, Horizontalement ou Verticalement;
Si vous voulez les afficher Horizontalement ( comme dans notre cas ), il vous suffit de mettre :
Si vous voulez les placer verticalement il faut mettre :
Maintenant, c'est pratiquement la même methode que pour le texte, il faut utiliser une table, Caption correspond au nom de votre bouton et Action correspond à l'action lors d'un clic dessus.
MACXT_Repertoire:Actualise_Draw_Button() permet donc d'actualiser les boutons.
Donc très simple si on résume tout ça nous donne :
On le mode de position des boutons,
On donne les caractéristiques ( nom et action ) de chaque bouton à l'aide d'un tableau
Et on actualise les boutons à l'écran.
Voilà c'est tout pour l'affichage, mais comme dit au debut du tuto de la gestion des fenêtres, ce module est avancé mais pas au niveau de l'utilisation il vous faut renvoyer une valeur avant des les utiliser au niveau de leurs actions.
On va prendre un exemple avec la souris où on va faire un clic tout en haut à droite puis faire en sorte d'afficher la fenêtre:
Si on fait un exemple complet avec la fenêtre ça nous donne :
MACXT_Repertoire:Reinitialiser_Window() ne doit pas être mis dans la boucle d'affichage ( if Affichage_Fenetre == 1 then .... ), mais lors du clic ( sinon il y aura une erreur ).
Voilà vous savez presque tout, il ne manque plus que les images ^^
Bon passons donc aux images
Avoir lu les tutos sur le lua dans le wiki ( tuto de pspgen ou xtreamlua par exemple )
Tout d'abord il faut créer un dossier pour voir votre application, pour cela rendez vous dans : MACXT2/Programs/le nom de votre application
Ensuite il vous faut créer un fichier en .lua ou .LUA dans votre dossier appelé Index.lua ou Index.LUA, si vous ne faite pas ca, il vous retournera une erreur pour choisir le fichier à lancer ( c'est moins rapide à lancer on va dire )
Voila votre programme apparaitra dans la dock, si il n'apparait pas, render vous dans le menu de MACXT ( la pomme en haut à gauche ) et actualisez la dock
Bien, si tout s'est bien passé, on va passer au code...
Tout d'abord il vous faut charger une image de fond ( ça fait plus jolie on va dire ), deux méthodes possibles.
Soit vous la chargez directement depuis votre dossier :
- Code: Select All Code
Fond = Image.load("Fond.png")
Cette méthode peut aussi empêcher le chargement de l'image à cause d'un problème de répertoire en cours ( System.currentDirectory() )
La meilleur méthode est de charger depuis le répertoire de MACXT
- Code: Select All Code
Fond = Image.load(MACXT_Path.."/Programs/monappli/Fond.png")
Elle ne renverra pas d'erreur normalement
Voila l'image est chargée, c'était pas dur jusque la
Après cela il vous faut dire à MACXT que c'est une nouvelle application qui lui est destinée
- Code: Select All Code
MACXT_Programmes:NewAppli_MACXT()
Cette fonction permet de réinitialiser toutes les variables et objets que votre application aura besoin
Après avoir cela nous pouvons déjà passer à la boucle principale. Si vous avez des variables pour votre application à mettre vous pouvez biensur les mettre avant la boucle ( ça coule de source )
- Code: Select All Code
while true do
Et afficher le fond :
- Code: Select All Code
screen:blit(0,0,Fond)
Maintenant on va passer à la taskbar ( la barre en haut )
Pour l'utiliser et donner des "options" il vous faut utiliser un tableau ( table )
pour cela il vous faut mettre :
- Code: Select All Code
MACXT_Objets_Barre[1] = {Caption = "Mon Application",Fonction = "Options_Appli"}
MACXT_Objets_Barre[1] correspond à la premiere "option" qui portera le nom "Mon Application" puis on verra apres à quoi sert Fonction = "Options_Appli"
vous pouvez mettre plusieurs "options" il vous suffiet d'additionner
- Code: Select All Code
MACXT_Objets_Barre[1] = {........}
MACXT_Objets_Barre[2] = {.......}
Maintenant on va utiliser "Fontion = "Options_Appli"
Ceci vous permet de donner une condition : si le fonction est Options_Appli on va donner les sous options suivantes.
Exemple :
- Code: Select All Code
if Fonction_Barre == "Options_Appli" then
MACXT_Objets_Barre_Fonction[1] = {Caption = "Quitter",Action = "Quitter"}
MACXT_Repertoire:Actualise_Fonction()
end
Alors la, MACXT_Objets_Barre_Fonction[1] est la première sous "option" qui aura comme nom "Quitter" et comme Action la variable "Quitter", MACXT_Repertoire:Actualise_Fonction() permet d'actualiser les sous options pour que MACXT les affichent (si vous ne mettez pas MACXT_Repertoire:Actualise_Fonction(), soit le luaplayer vous renverras une erreur soit elles ne seront pas affichées ).
Maintenant il vous faut aussi actualiser les Options de la taskbar pour cela il suffit de mettre :
- Code: Select All Code
MACXT_Repertoire:Actualise_Systeme_Barre()
On va maintenant apprendre à utiliser les Actions
Ceci est tres simple :
- Code: Select All Code
if Action_Barre == "Quitter" then
break
MACXT_Repertoire:Anti_Bug()
end
La, c'est tres simple aussi, vous dites que si l'action est "Quitter" ( précédemment donnée ) alors on casse la boucle pour revenir sous le bureau de MACXT ou l'application lancée avant la votre, MACXT_Repertoire:Anti_Bug() permet à MACXT de ne pas répéter en boucle l'action.
Après cela il vous suffit d'appeler le kernel de MACXT en mettant tout simplement :
- Code: Select All Code
MACXT_Kernel:Load_Kernel_Application()
Si vous n'appelez pas le kernel de MACXT, votre application plantera ou vous aurez de gros problèmes.
Après il vous suffit de mettre la fin du code.
- Code: Select All Code
screen.waitVblankStart()
screen:flip()
end
Voila vous avez fait votre première application destinée à MACXT, certes elle ne sert a rien mais c'est un début par manque de temps pour faire le tuto, je compte le mettre a jour rapidement pour vous apprendre à gérer votre clic droit, gérer votre registre, gérer vos fenêtres vos textes, appeler un le finder pour charger un fichier ( présent dans pratiquement toute les applications sauf adibou et QuickTime ( QuickTime devait normalement être l'application que vous deviez faire )
Bon a part cela on va résumer le code :
- Code: Select All Code
Fond = Image.load(MACXT_Path.."/Programs/monappli/Fond.png")
MACXT_Programmes:NewAppli_MACXT()
while true do
screen:blit(0,0,Fond)
MACXT_Objets_Barre[1] = {Caption = "Mon Application",Fonction = "Options_Appli"}
MACXT_Objets_Barre[2] = {Caption = "Autres options",Fonction = ""}
if Fonction_Barre == "Options_Appli" then
MACXT_Objets_Barre_Fonction[1] = {Caption = "Quitter",Action = "Quitter"}
MACXT_Repertoire:Actualise_Fonction()
end
if Action_Barre == "Quitter" then
break
MACXT_Repertoire:Anti_Bug()
end
MACXT_Repertoire:Actualise_Systeme_Barre()
MACXT_Kernel:Load_Kernel_Application()
screen.waitVblankStart()
screen:flip()
end
En espérant qu'il n'y ait aucun erreur, n'ayant plus de psp je n'ai pas pu tester, veuillez me prévenir si il y a une erreur ( normalement non )
Voila j'espère que vous avez appréciés mon premier tuto en espérant que certaines personnes fassent une ou plusieurs applications ^^ c'est quand même le but...
Vive Xtreamlua !!!
A plus pour d'autres explications sur le système MACXT........
Juste une chose désolé de ne pas avoir pu mettre de screenshots, ça aurait été plus jolie lol.
Voilà la deuxième partie du tuto, gérer votre clic droit.
Pour utiliser le clic droit vous devez connaitre les coordonnées du curseur, en axe X la variable est "x" et en axe Y la variable est y.Très simple exemple ( on va aussi voir les messages d'indications sur le code :
- Code: Select All Code
if x >= 50 and x <= 100 and y >= 50 and y <= 100 then
MACXTAide = "Mon indication"
end
MACXTAide correspond est la variable qui correspond à votre indication ( ou aide si vous préréfez ), c'est à dire que si le curseur est > 50 et < 100 and X et que que le curseur > 50 et < 100 en Y alors il va vous afficher votre indication dans cet espace.
vous pouvez aussi désactiver le pad directionnel ou le stick analogique en mettant :
- Code: Select All Code
MACXTMouse:DesactivePadAnalog()
Cela va désactiver le stick analogique
Pour le réactiver il faut mettre :
- Code: Select All Code
MACXTMouse:ActivePadAnalog()
Pour désactiver le pad directionnel il faut mettre :
- Code: Select All Code
MACXTMouse:DesactivePad()
Pour le réactiver il faut mettre donc :
- Code: Select All Code
MACXTMouse:ActivePad()
Voila maintenant vous savez tout sur le curseur
On va passer donc à la gestion du clic droit. Pour ça il faut utiliser encore un tableau ( table ) comme la gestion de la taskbar.
Exemple :
- Code: Select All Code
if x >= 50 and x <= 100 and y >= 50 and y <= 100 then
MACXTAide = "Mon indication"
MACXT_Objets_Properties[1] = {Caption = "Ouvrir Options",Action = "Ouvrir_Options"}
MACXT_Objets_Properties[2] = {Caption = "Quitter",Action = "Quitter"}
end
Voila donc après ce beau code ^^ vous avez toujours l'utilisation des coordonnées du curseur et l'affichage de l'application avec en plus la gestion du clic droit, on va voir ce que tout ca veut dire;
MACXT_Objets_Properties[1] ou [2] sont les variables de la table, Caption est le nom de la premiere "option", Action est comme vous l'avez deviné l'action à faire lors du choix de l'option
La MACXT va vous afficher un rectangle blanc avec les 2 Caption ( soit les options ).
PS : vous n'êtes pas obligés d'actualiser la table, MACXT le fait tout seul
Maintenant on va gérer l'action.
Exemple suivi des explications :
- Code: Select All Code
if Action_Properties == "Quitter" then
break
MACXT_Repertoire:Anti_Bug()
end
Voila, on va expliquer pour ceux qui ont du mal.
la on dit que si l'action est "Quitter" alors on casse la boucle puis on appel
la fonction d'anti-bug ( elle sert à ne pas répéter en boucle l'action sous peine de problèmes )
c'est a dire que Action_Properties == "Quitter" est la condition pour quitter votre application ou juste casser la boucle.
Voila c'est pas trop compliqué je pense ( dites moi si ça l'est que je cherche de meilleurs explications )
Gestion du registre ( pour sauvegarder toute modification apportée à votre application )
On va donc passer à la gestion du registre.
C'est tres simple à comprendre vous n'avez pas à écrire dans un fichier, MACXT est la pour vous ^^
-Premièrement où se trouve le registre??
il se trouve dans MACXT2/MACXT/Systeme/Registre, pour mettre vos éventuels fichiers ( vos fichiers doivent être au format .MACXT
Deuxièmement Lecture dans le registre :
Tres simple il vous faut écrire un ligne qui est celle si :
- Code: Select All Code
REGISTRY:Read("MonDossier","MonFichier")
Voilà vous avez lu un fichier dans le registre, explications :
Il vous suffit donc d'appeler la fonction REGISTRY:Read() en y mettant en premier le dossier où est situé votre fichier avec vos données ou autre ( ici MonDossier ) et en deuxième le nom du fichier ( ici c'est MonFichier.MACXT )
Vous n'êtes pas obligés de mettre l'extension ( MonFichier.MACXT , MonFichier suffit )
Voilà c'est tout bête
Maintenant on va écrire dans le registre
- Code: Select All Code
REGISTRY:Write_On_File("MonDossier","MonFichier",VALUE_WRITE)
Ici c'est la même chose pour les deux premiers arguments ( le dossier puis le fichier ), VALUE_WRITE correspond à la valeur à écrire
par exemple si je veux écrire "Vive Xtreamlua" dans mon fichier appelé "MonFichier" qui est dans mon dossier "MonDossier" je vais mettre :
- Code: Select All Code
REGISTRY:Write_On_File("MonDossier","MonFichier","Vive Xtreamlua")
Voilà vous savez aussi maintenant comment écrire dans le registre.
Vous pouvez aussi créer un dossier dans le registre depuis votre programme
Pour cela il vous suffit de mettre :
- Code: Select All Code
REGISTRY:Create_Dir(Nom_Dossier)
Il vous faut donc appeler la fonction REGiSTRY:Create_Dir() puis donner un nom à votre dossier.
Exemple : si je veux créer un dossier appelé Emeric0101^^
- Code: Select All Code
REGISTRY:Create_Dir("Emeric0101")
Voilà votre dossier est créé dans le registre.
Vous pouvez aussi créer un fichier dans le registre pour ça il vous faire mettre :
- Code: Select All Code
REGISTRY:Create_File(Nom_Dossier,Nom_Value,VALUE_Write)
Plusieurs choses sont possibles :
-Premièrement vous pouvez ecrire une ou des valeurs directement à sa création ou alors vous pouvez aussi bien ne pas le faire pour cela il vous suffit de ne pas mettre VALUE_Write
Exemple :
- Code: Select All Code
REGISTRY:Create_File(Nom_Dossier,Nom_Value)
Ici il y aura juste un fichier de créé sans rien dedans.
Donc pour créer un fichier il vous suffit d'appeler le fonction REGISTRY:Create_File() et de donner comme premier argument le dossier et comme deuxième argument le nom du fichier.
Exemple :
Si je veux crréer un fichier appelé "Xtreamlua" dans mon dossier précédent je dois mettre :
- Code: Select All Code
REGISTRY:Create_File("MonDossier","Xtreamlua")
Et si je veux écrire directement une valeur dedans qui serait par exemple "TonySoad = 1" je dois mettre :
- Code: Select All Code
REGISTRY:Create_File("MonDossier","Xtreamlua","TonySoad = 1")
Voilà vous savez aussi créer un fichier dans le registre ^^.
Vous pouvez aussi effacer un fichier ou un dossier
On va commencer par savoir comment effacer un fichier.
On va mettre :
- Code: Select All Code
REGISTRY:Clear_File(Nom_Dossier,Nom_Value)
Ici il vous suffit encore une fois d'appeler une fonction , REGISTRY:Clear_File() et de mettre comme arguments le nom du dossier et le nom du fichier à supprimer.
si je veux supprimer le fichier "Xtreamlua" donc mon dossier je dois donc mettre :
- Code: Select All Code
REGISTRY:Clear_File("MonDossier","Xtreamlua")
Voilà c'est simple quand même non??
Vous savez maintenant supprimer un fichier dans le registre
Ca en fait des choses la mais il reste encore une possibilité, supprimer un dossier dans le registre ( Attention la supression d'un dossier supprimera tous les dossier et fichiers présents dans le dossier à supprimer )
Pour supprimer un dossier c'est aussi très simple :
- Code: Select All Code
REGISTRY:Clear_Directory(Nom_Dossier)
il vous suffit donc encore d'appeler une fonction, REGiSTRY:Clear_Directory() puis de donner comme seul argument le nom du dossier.
Si je veux supprimer mon dossier précédemment créé ( MonDossier ) je dois donc mettre :
- Code: Select All Code
REGISTRY:Clear_Directory("MonDossier")
La MACXT va supprimer le dossier avec ( si il y est toujours ) le fichier Xtreamlua donc vous n'aurez plus rien dans votre dossier meme le dossier ne sera plus là ( c'est quand même le principe de la supression ^^ )
Voilà vous savez Supprimer un dossier de votre registre.
Vous savez aussi gérer le registre impécablement.
PS : dans toutes les fonction vous n'êtes pas obligés de mettre les extensions .MACXT
A venir, comment gérer mes fenêtres, le texte dans la fenetre et les boutons, gérer le Module Finder pour charger un fichier.
Gestion du Module Finder
Avant toute chose, Ã quoi sert la Module Finder.
Le Module Finder est donc d'après son nom le module de l'explorateur de fichiers appelé Finder.
Le Module Finder permet dans notre cas de charger des composants ( présent dans Itunes, Iphoto, Adhoc, et peut etre bientot QuickTime ^^ ), par exemple de charger une musique ou une image ou autre.
Son utilisation est simple il vous suffit juste de donner le dossier à explorer à son appel, l'extension du fichier et d'appeler la fonction.
Pour l'extension c'est simple si c'est un .mp3 ou .mp3 il vous suffit de mettre :
- Code: Select All Code
Extension = ".mp3"
Les deux charactères des extensions seront reconnues automatiquement ( .mp3 et .MP3 )
Si c'est une image il vous suffit de mettre :
- Code: Select All Code
Extension = ".png"
Pareil les charactères seront reconnus
Si c'est un autre type de fichier ( extension ) il vous faut donner la grande extension et la petite extension, pour cela il faut mettre :
- Code: Select All Code
Pextension = ".macxt"
Gextension = ".MACXT"
Pextension est la petite extension et Gextension est la grande extension.
Pour le dossier exploré à l'appel du Module Finder, si vous ne le mettez pas, le répertoire par défaut sera "ms0:/".
Bien passons au code qui permet d'appeler le Module Finder.
Si on résume tout vous devez mettre le dossier ou pas cela dépend de vous, l'extension ( ".mp3", ".png", ou Pextension et Gextension )
Si on code, ça nous donne :
- Code: Select All Code
Finder_Module_Directory = "ms0:/PSP/MUSIC"
Gextension = ".JPG"
Pextension = ".jpg"
Module_Finder:Init_Finder_Module()
Ici, Finder_Module_Directory correspond au dossier à explorer à l'appel du Module Finder, Gextension et Pextension vous le savez normalement et Module_Finder:Init_Finder_Module() est la fonction qui appel le Module Finder.
Ca y est vous savez utiliser le Module Finder. Vous pouvez l'appeler n'importe où que ce soit dans la taskbar ou clic droite ou correspondance avec la souris ( par exemple un bouton dans l'image ). Si vous appelez le Module Finder dans la taskbar ou le clic droit n'oubliez pas d'appeler la fonction d'anti-bug :
- Code: Select All Code
MACXT_Repertoire:Anti_Bug()
Exemple avec la taskbar ( c'est la même chose avec le clic droit )
- Code: Select All Code
if Action_Barre == "truc que vous voulez" then
Finder_Module_Directory = "ms0:/PICTURE"
Pextension = ".lua"
Gextension = ".LUA"
Module_Finder:Init_Finder_Module()
MACXT_Repertoire:Anti_Bug()
end
Ca y est vous savez tout sur le Module Finder vous pouvez dorénavent charger tout type de fichier.
Maintenant le plus dur et le meilleur évidemment
Voici donc la gestion de(s) fenête(s)
Tout d'abord qu'est-ce que je peux faire avec ces fenêtes??
Et bien elle peuvent vous servir à afficher des messages ou des confirmations, ce que vous voulez ou même des options (comme dans Itunes ).
Premièrement comment ça se passe??
Vous pouverz en tout dans une fenêtre mettre du texte, un ou des bouton(s )et une ou des image(s)
L'ordre est en premier si je me souviens bien, c'est le texte en haut, au milieu la ou les image(s) et en dernier le ou les bouton(s)
L'utilisation des fenêtes est le module le plus avancé en terme d'efficacité mais pas ai niveau du code de l'application, n'ayant pas eu le temps de finir réellement MACXT ( Si je mets en ligne mes versions c'est pour l'avancement ).
Bon on va passer au code et aux explications.
on va faire un exemple très simple puis on va suivre par les explications bien évidemment :
- Code: Select All Code
MACXT_Repertoire:Reinitialiser_Window()
Window_Hauteur = 30
Window_Longueur = 300
MACXT_Title = "Erreur"
MACXT_Graphic:Init_New_Personnal_Window()
MACXT_Graphic:New_Textes()
MACXT_Texte_Window[1] = {Caption = "Veuillez Activer le Adhoc"}
MACXT_Repertoire:Actualise_Texte_Window()
Bon passons aux explications pour ceux qui ont du mal :
MACXT_Repertoire:Reinitialiser_Window() est la fonction que vous êtes obligés de mettre pour éviter tout problème lié à votre fenêtre ou tout bug, elle réinitialise toutes les données importantes liées à l'utilisation de votre fenêtre.
Window_Hauteur = 30 est la hauteur de votre fenêtre ( 30 est le nombre de pixels en ordonnée soit y bien évidemment )
Window_Longueur = 300 est la longueur de votre fenêtre ( 300 est le nombre de pixels en abscisse soit en x )
MACXT_Title = "Erreur" est le titre de votre fenêtre donc votre fenêtre aura comme titre "Erreur" je pense que tout le monde l'aura compris
MACXT_Graphic:Init_New_Personnal_Window() est la fonction qui initialise votre fenêtre pour s'afficher à votre écran.
MACXT_Graphic:New_Textes() initialise le texte que vous allez écrire dans votre fenêtre
Là comme d'habitude ( pourquoi changer les habitudes ?? ) vous devez utliser un tableau comme la taskbar ou le clic droit pour afficher votre texte ( si une phrase est trop longue, le texte "débordera" de votre écran même si cela théoriquement est impossible on se comprend ), Caption est toujours la variable associée à votre première ligne soit 'Veuillez Activer le Adhoc".
MACXT_Repertoire:Actualise_Texte_Window() permet d'actualiser le texte de votre fenêtre comme d'habitude.
Vous pouvez biensur mettre plusieurs lignes il suffit de remplacer la valeur 1 par 2 ( MACXT_Texte_Window[2] = {Caption = "Veuillez Activer le Adhoc"})
Cet exemple est tiré de l'application Adhoc fournie avec MACXT V 2.1
Bon si on résume tout avec la langue française et non du code, ça nous donne :
On réinitialise la fenêtre que l'on veut afficher
On donne la hauteur de la fenêtre
On donne la longueur de la fenêtre
On donne le titre de la fenêtre
On initialise la fenêtre à afficher
On initialise le texte à afficher
On donne la première ligne à afficher à l'aide d'un tableau ( vous pouvez mettre plusieurs lignes comme dit précédemment )
Et on actualise le texte à afficher.
Voilà j'espere que vous avez tout compris, en clair ce code est sencé nous afficher sur l'écran une fenêtre de hauteur 30 pixels, de longueur 300 pixels, portant le titre "Erreur" avec marqué comme seule ligne "Veuillez Activer le Adhoc".
Voilà vous savez tout sur le texte dans une fenêtre ( c'est pas fini avec le texte ^^ )
Maintenant, Les boutons ^^
Pour les boutons c'est très simple, si vous affichez du texte, les boutons seront placés en dessous du texte.
En clair si on reprend le même principe on va afficher la même chose que précédemment mais avec une ligne de texte en plus ( pour le fun ^^ ) et deux boutons.
- Code: Select All Code
MACXT_Repertoire:Reinitialiser_Window()
Window_Hauteur = 30
Window_Longueur = 300
MACXT_Title = "Erreur"
MACXT_Graphic:Init_New_Personnal_Window()
MACXT_Graphic:New_Textes()
MACXT_Texte_Window[1] = {Caption = "Veuillez Activer le Adhoc"}
MACXT_Texte_Window[2] = {Caption = "Vive Xtreamlua!!!"}
MACXT_Repertoire:Actualise_Texte_Window()
Affichage_Button = "Horizontal_Drawing"
MACXT_Draw_Button[1] = {Caption = "Ouvrir",Action = "Open"}
MACXT_Draw_Button[2] = {Caption = "Fermer",Action = "Close"}
MACXT_Repertoire:Actualise_Draw_Button()
Voilà , bon pour le debut vous savez à quoi ça correspond ( normalement )
A partir de Affichage_Button = ..... commence la gestion des boutons.
Deux modes d'affichage des boutons, Horizontalement ou Verticalement;
Si vous voulez les afficher Horizontalement ( comme dans notre cas ), il vous suffit de mettre :
- Code: Select All Code
Affichage_Button = "Horizontal_Drawing"
Si vous voulez les placer verticalement il faut mettre :
- Code: Select All Code
Affichage_Button == "Vertical_Drawing"
Maintenant, c'est pratiquement la même methode que pour le texte, il faut utiliser une table, Caption correspond au nom de votre bouton et Action correspond à l'action lors d'un clic dessus.
MACXT_Repertoire:Actualise_Draw_Button() permet donc d'actualiser les boutons.
Donc très simple si on résume tout ça nous donne :
On le mode de position des boutons,
On donne les caractéristiques ( nom et action ) de chaque bouton à l'aide d'un tableau
Et on actualise les boutons à l'écran.
Voilà c'est tout pour l'affichage, mais comme dit au debut du tuto de la gestion des fenêtres, ce module est avancé mais pas au niveau de l'utilisation il vous faut renvoyer une valeur avant des les utiliser au niveau de leurs actions.
On va prendre un exemple avec la souris où on va faire un clic tout en haut à droite puis faire en sorte d'afficher la fenêtre:
- Code: Select All Code
if x >= 470 and y <= 22 then
if MACXTKeyPad:cross() then
Afficher_Fenetre = 1
end
end
if Afficher_Fenetre == 1 then
--on met le code de la fenetre ici
end
Si on fait un exemple complet avec la fenêtre ça nous donne :
- Code: Select All Code
if x >= 470 and y <= 22 then
if MACXTKeyPad:cross() then
MACXT_Repertoire:Reinitialiser_Window()
Afficher_Fenetre = 1
end
end
if Afficher_Fenetre == 1 then
Window_Hauteur = 30
Window_Longueur = 300
MACXT_Title = "Erreur"
MACXT_Graphic:Init_New_Personnal_Window()
MACXT_Graphic:New_Textes()
MACXT_Texte_Window[1] = {Caption = "Veuillez Activer le Adhoc"}
MACXT_Texte_Window[2] = {Caption = "Vive Xtreamlua!!!"}
MACXT_Repertoire:Actualise_Texte_Window()
Affichage_Button = "Horizontal_Drawing"
MACXT_Draw_Button[1] = {Caption = "Ouvrir",Action = "Open"}
MACXT_Draw_Button[2] = {Caption = "Fermer",Action = "Close"}
MACXT_Repertoire:Actualise_Draw_Button()
end
MACXT_Repertoire:Reinitialiser_Window() ne doit pas être mis dans la boucle d'affichage ( if Affichage_Fenetre == 1 then .... ), mais lors du clic ( sinon il y aura une erreur ).
Voilà vous savez presque tout, il ne manque plus que les images ^^
Bon passons donc aux images
-
luaacro
Gamer du Dimanche
- Messages: 16
- Inscription: 12 Déc 2008, 19:57
2 messages
• Page 1 sur 1