µLua DS - Forum officiel | Official forum Index du Forum

µLua DS - Forum officiel | Official forum
Le bon endroit pour en savoir plus sur MicroLua et pour parler de vos projets ! | The right place to learn more about MicroLua and talk about your projects !

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer   ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Multijoueur, librairies
Aller à la page: 1, 2  >
 
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Demande d'aide
Sujet précédent :: Sujet suivant  
Auteur Message
Hedgestock


Hors ligne

Inscrit le: 23 Juil 2015
Messages: 13

MessagePosté le: Jeu 23 Juil 2015 - 14:22    Sujet du message: Multijoueur, librairies Répondre en citant

Bonjour, je débute en µLua, et je me retrouve bloqué quand je veux faire du multijoueur. En effet je ne connais aucune fonction liée à l'utilisation de la connexion infrarouge sur ds. De plus, je me demandais s'il était possible de créer des fichiers Lua qui définiraient juste des fonctions et qui seraent utilisé par un fichie principal (sorte de bibliothèque ?) ça m'aiderai vachement poour la clarté de mn programme. Voila. sur ce salut !
_________________
HELP ! Je sais pas coder, ça foire de tout les cotés !


Revenir en haut
Publicité






MessagePosté le: Jeu 23 Juil 2015 - 14:22    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 358

MessagePosté le: Jeu 23 Juil 2015 - 16:00    Sujet du message: Multijoueur, librairies Répondre en citant

Il n'existe pas de fonctions pour l'infrarouge, et ce parce que cette fonctionnalité n'est présente que sur 3ds et certaines cartouches.
Si tu veux faire du multijoueurs local, utilise les fonctions Nifi, et ajoute un protocole par dessus (c'est du transfert brut, avec seulement 13 canaux, c'est facile de perdre des paquets, etc.)


Pour faire des libraries, crée le fichier, et fais-lui créer une table globale avec tes fonctions. (Ça c'est la base des libs, y'a plus complexe aussi avec des classes par exemple.)
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
Hedgestock


Hors ligne

Inscrit le: 23 Juil 2015
Messages: 13

MessagePosté le: Jeu 23 Juil 2015 - 17:04    Sujet du message: Multijoueur, librairies Répondre en citant

Merci ! J'ai appris que jétais sur une trop vielle version de µlua pour le Nifi ducoup je suis passé sur la dernière mais je galère encore a m'adapter. Et sinon, j'ai pas du comprendre le princie de librairie parce que ça ne marche toujours pas. en tout cas merci.
_________________
HELP ! Je sais pas coder, ça foire de tout les cotés !


Revenir en haut
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 358

MessagePosté le: Jeu 23 Juil 2015 - 17:25    Sujet du message: Multijoueur, librairies Répondre en citant

Bon alors pour créer une librairies bien faite et qui respecte tous les standards, on fait comme ça:

Code:
local mod = {} --on crée la table contenant la librairies

mod._VERSION = "0.0: Toto" --on ajoute une valeur utile accessible en dehors de la librarie

local function helloWorld() --on crée une fonction utile à la librairie, mais pas accessible en dehors
  return "Hello, world !"
end

function mod.helloWorld() --on crée une fonction accessible dans la librairie
  print(helloWorld())
end

return mod


Ensuite, pour utiliser la librairie, il faut faire comme ça:

Code:
local helloWorld = require("leNomDuFichierContenantLaLibrairieSansLe.luaÀLaFin") --on met le contenu de la librairie dans une variable locale, ou globale si besoin

helloWorld.helloWorld() --on appelle une fonction de la librarie


Voilà ! C'est beau, c'est propre, et c'est lisible !
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
Hedgestock


Hors ligne

Inscrit le: 23 Juil 2015
Messages: 13

MessagePosté le: Ven 24 Juil 2015 - 13:47    Sujet du message: Multijoueur, librairies Répondre en citant

Merci ! C'est vachement plus pratique en effet. Maintenant, Je rencontre un autre problème, je ne sais pas si c'est normal ou pas, mais quand je charge plusieurs sprites dans la VRAM, seul le dernier sprite chargé fonctionne correctement, Du coup je dois les chargers, et détruire avant chaque utilisation c'est donc très lourd. J'ai vérifié je n'exède pas la VRAM, les sprites se mélangent juste les uns aux autres.
_________________
HELP ! Je sais pas coder, ça foire de tout les cotés !


Revenir en haut
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 358

MessagePosté le: Ven 24 Juil 2015 - 15:05    Sujet du message: Multijoueur, librairies Répondre en citant

Arf ... C'est peut-être ma faute ça ... J'ai modifié la lib Sprites pour permettre d'avoir la même image sur plusieurs sprites, mais j'ai pas trop poussé les tests à plusieurs images ... Envoie ton code, histoire de voire si c'est bien le cas.
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
Thomas99


Hors ligne

Inscrit le: 12 Avr 2012
Messages: 141
Localisation: Le forum.

MessagePosté le: Sam 25 Juil 2015 - 17:40    Sujet du message: Multijoueur, librairies Répondre en citant

C'est pas la faute de geeker, d'ailleurs j'attendais que ce bug refasse surface à un moment ou un autre... En fait, la librairie Sprite était (très) mal codée, au point que lorsqu'on créais un Sprite, l'image était stockée dans une variable globale, donc forcément, quand on en créer un second, la nouvelle image écrase l'ancienne... il n'y avait donc qu'une seule image utilisable en même temps pour tous les Sprites.

(EDIT : en fait si c'est la faute de geeker, je viens de revérifier l'historique de libs.lua, à un moment geeker a rendu la variable img globale. Enfin bon dans tous les cas il y avait quand même plein d'autres trucs pas net dans la lib Sprite avant...)

Enfin bon, il y a quelques temps j'avais fait le ménage dans la lib Sprite et corrigé ce problème. Cependant, comme il n'y a pas eu entre temps de nouvelle version de µLua sortie, la lib à jour n'est pas comprise dans l'archive de la version 4.7.2 que tu dois certainement utiliser.

Cependant, cela devrait être assez facile de mettre à jour libs.lua (le fichier qui contient la lib Sprite) ; tu peux télécharger le fichier à jour ici : http://sourceforge.net/p/microlua/uLua/ci/master/tree/Fat/lua/libs/libs.lua…
Télécharge le fichier et remplace le fichier /lua/libs/libs.lua de ta carte SD par celui-là. Normalement les Sprites devraient marcher sans problème après ça.
_________________
Publié : ctrµLua, Candran
A publier : TCPDebugger, FastShell
A finir : µPortal, LLUL, µStore, serveur wifis, microlua.js, d'autres trucs
Mon site \o/


Revenir en haut
Visiter le site web du posteur
Hedgestock


Hors ligne

Inscrit le: 23 Juil 2015
Messages: 13

MessagePosté le: Dim 26 Juil 2015 - 15:38    Sujet du message: Multijoueur, librairies Répondre en citant

Merci ! J'ai tout compris ! Je tiens à m'excuser au près de geeker, qui m'avait déjà donné ta version de lib, sauf que j'avais remplacé la lib dans fat/lua. ducoup, en effet c'est plus effectif maintenant. J'ai plus qu'à corriger mes propres bugs.
Et justement, y'en a un qui me tracasse, Parfois, mais pas tout le temps (je n'ai pas repèré de shéma d'apparition du bug)  j'ai une erreur quand je lance un certain sprite il me dit que dans /lua/libs/libs.lua, ligne 189, je ne peux pas comparer un nombre avec rien.
Ligne 189 c'est la fonction is Animation At End. Est-ce possible que ce soit parce que j'utilise cette fonction sur une animation qui a été reset ? Si vous n'avez pas la solutionà ce problème, je le règlerai par alchimie. En tout cas merci à vous deux, j'avais commencé à coder mon propre afficheur de sprite mais  Mad  j'aurais abandonné je pense.


Edit : chuis juste idiot... je détruisais une variable une ligne trop tot... Mr. Green
_________________
HELP ! Je sais pas coder, ça foire de tout les cotés !


Revenir en haut
Hedgestock


Hors ligne

Inscrit le: 23 Juil 2015
Messages: 13

MessagePosté le: Lun 27 Juil 2015 - 12:42    Sujet du message: Multijoueur, librairies Répondre en citant

Encore une petite question sur les librairies, si dans une fonction locale je crée une variable sans présiser qu'elle est locale, la variable sera globale ? 
_________________
HELP ! Je sais pas coder, ça foire de tout les cotés !


Revenir en haut
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 358

MessagePosté le: Lun 27 Juil 2015 - 13:40    Sujet du message: Multijoueur, librairies Répondre en citant

Si une variable est déclarée sans "local" devant, elle est globale. C'est une règle universelle.
Donc elle sera globale. Mais de tout façon, il faut le plus souvent possible utiliser des variables locales (plus rapides, et plus faible impact sur la RAM au final)
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
Hedgestock


Hors ligne

Inscrit le: 23 Juil 2015
Messages: 13

MessagePosté le: Lun 27 Juil 2015 - 14:49    Sujet du message: Multijoueur, librairies Répondre en citant

Ok Merci. J'ai une autre question, je viens de me rendre compte que ma librairie ne marche pas. --' Je charge le fichier et tout, mais au moment de l'appel des fonctions rien ne se passe. Faut il remplirs la table avec le nom des fonctions ? 
J'ai essayé mais ça n'a pas marché. 


<code>
local Table = {}
function Table.GetKeys()
Dpad = true
if Keys.held.Down then
direction = 1
elseif Keys.held.Left then
direction = 2
elseif Keys.held.Right then
direction = 3
elseif Keys.held.Up then
direction = 4
else
Dpad = false
end
Buttons = true
if Keys.newPress.A then
A = true
else
Buttons = false
end
return direction,Dpad,Buttons,A
end


function Table.Motion()
Map.draw(SCREEN_DOWN, map, -16,-16,9,7)
if direction == 1 then
Y = Y+1
elseif direction == 2 then
X = X-1
elseif direction == 3 then
X = X+1
elseif direction == 4 then
Y = Y-1
end
Map.scroll(map,X,Y)
end


return Table

</code>
Ai-je oublié quelque chose ?


j'appelle les fonctions en faisant par exemple : 
<code>
local Interactions = require("Interactions") -- c'est le nom du fichier. cette partie là semble marcher


Interactions.GetKeys()
</code>


Je suis désolé de poser tant de questions qui peuvent vous parraitre stupides, mais j'ai vraiment un petit niveau en matière de programmation...
_________________
HELP ! Je sais pas coder, ça foire de tout les cotés !


Revenir en haut
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 358

MessagePosté le: Lun 27 Juil 2015 - 18:01    Sujet du message: Multijoueur, librairies Répondre en citant

"ça n'a pas marché", c'est à dire ? Crash ? Juste rien ?
Si c'est un crash, c'est normal: dans ces codes, nulle part tu ne définis les variables utilisées par les fonctions (genre X et Y).


PS: utilise les balises [.code] et [./code] (sans les points) pour ton code, pas <code> </code>.
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
Hedgestock


Hors ligne

Inscrit le: 23 Juil 2015
Messages: 13

MessagePosté le: Lun 27 Juil 2015 - 18:06    Sujet du message: Multijoueur, librairies Répondre en citant

tout est défini et tout.
Il fait juste comme si le fonctions n'existaient pas. voici le code test précis
local Interactions = require("Interactions")
Tiles = Image.load("tiles.png", VRAM)
map = Map.new(Tiles,"map.map",25,25,32,32)
direction = 1
X=1
Y=1
while not Keys.held.Start do
Map.draw(SCREEN_DOWN, map, -16,-16,9,7)
direction,Dpad,Buttons,A = Interactions.GetKeys()
if Dpad then
Interactions.Motion()
end
screen.print(SCREEN_UP, 0, 184, "FPS : "..NB_FPS.." direction : "..direction.." x : "..X.." y : "..Y)
render()
end
_________________
HELP ! Je sais pas coder, ça foire de tout les cotés !


Revenir en haut
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 358

MessagePosté le: Lun 27 Juil 2015 - 18:16    Sujet du message: Multijoueur, librairies Répondre en citant

Je viens de tester avec le Lua PC (c'est pareil pour les libs), et les fonctions de ta librairies sont bien retournées par le module, et par require(). "Comme si les fonctions n'existaient pas", ça veut dire crash ou rien ?

Si c'est un crash, c'est très bizare. Je n'ai aucun mal à appeler les fonctions depuis un programme qui require() la lib, ni à voire les valeurs globales.
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
Hedgestock


Hors ligne

Inscrit le: 23 Juil 2015
Messages: 13

MessagePosté le: Lun 27 Juil 2015 - 18:31    Sujet du message: Multijoueur, librairies Répondre en citant

ça veut dire que ça tourne comme si c'était ça :

local Interactions = require("Interactions")
Tiles = Image.load("tiles.png", VRAM)
map = Map.new(Tiles,"map.map",25,25,32,32)
direction = 1
X=1
Y=1
while not Keys.held.Start do
Map.draw(SCREEN_DOWN, map, -16,-16,9,7)
screen.print(SCREEN_UP, 0, 184, "FPS : "..NB_FPS.." direction : "..direction.." x : "..X.." y : "..Y)
render()
end


j'ai testé avec des fonctions pour afficher chaque variable et ça tourne comme ça.
_________________
HELP ! Je sais pas coder, ça foire de tout les cotés !


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 09:29    Sujet du message: Multijoueur, librairies

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Demande d'aide Toutes les heures sont au format GMT + 1 Heure
Aller à la page: 1, 2  >
Page 1 sur 2

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com