µ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 

Problème avec les sprites

 
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
Sharkou


Hors ligne

Inscrit le: 22 Fév 2012
Messages: 84
Localisation: Bretagne

MessagePosté le: Ven 3 Jan 2014 - 20:04    Sujet du message: Problème avec les sprites Répondre en citant

Salut Smile


Je n'arrive pas à faire fonctionner les sprites sur ma DS :/
J'ai lancé le fichier Sprite.lua dans les exemples sur ma DS : 


Code:


 --[[

        ==>[ MICROLUA EXAMPLE ]<==
                    ==>{ Sprites }<==
        
        About putting people in your RPG!

]]--

spr = Sprite.new("sprite.png", 24, 32, VRAM)                -- Load sprite image

-- Create animations; frame indexes begin at 0; 300ms is the delay between two frames
spr:addAnimation({0,1,2,1}, 300)                                   -- Walk up
spr:addAnimation({3,4,5,4}, 300)                                   -- Walk right
spr:addAnimation({6,7,8,7}, 300)                                   -- Walk down
spr:addAnimation({9,10,11,10}, 300)                              -- Walk left

x = 150
y = 80
direction = 1


while not Keys.newPress.Start do
    Controls.read()
    
    if Keys.held.Up or Keys.held.Down or Keys.held.Left or Keys.held.Right then
        spr:playAnimation(SCREEN_DOWN, x, y, direction)                                                     -- Play the right movement animation
    else                                                                                
        spr:drawFrame(SCREEN_DOWN, x, y, -2 + direction * 3)                                              -- Play the right idle frame (the calculation is just a trick to get the right frame)
    end

    if Keys.held.Up then direction = 1 y = y - 1 end
    if Keys.held.Right then direction = 2 x = x + 1 end
    if Keys.held.Down then direction = 3 y = y + 1 end
    if Keys.held.Left then direction = 4 x = x - 1 end

    screen.print(SCREEN_UP, 0, 184, "FPS: "..NB_FPS)
    screen.print(SCREEN_UP, 0, 0, "Press START to quit")

    render()
end

spr:destroy()                       -- Destroy the sprite
spr = nil
x = nil
y = nil
direction = nil






mais j'ai ce message d'erreur :
 
Code:


 *** ERRORS OCCURED ***
/lua//libs//libs.lua:210: attempt to call field 'getn' (a nil value)
stack traceback:
 /lua//libs//libs.lua:304: in main chunk
 [C]: in function 'dofile'
 /lua/boot.lua:46: in main chunk
*********************





J'ai essayé de faire mon propre programme pour déplacer un sprite (en déplaçant la map cette fois-ci) :
 
Code:


 sprite = Sprite.new("images/sprite.png", 24, 32, VRAM)

direction = 1

sprite:addAnimation ({7,8,7,6},100)    -- Marcher vers le bas
sprite:addAnimation ({10,11,10,9},100)    -- Marcher vers la gauche
sprite:addAnimation ({1,2,1,0},100)    -- Marcher vers le haut
sprite:addAnimation ({4,5,4,3},100)    -- Marcher vers la droite


tileset = Image.load("images/tileset.gif", VRAM)
map = ScrollMap.new(tileset,"map.map",16,12,16,16)

scrollX = 0
scrollY = 0

function deplacer_sprite()

    sprite:startAnimation(direction)
    
    if Keys.held.Up then
        direction = 3
    elseif Keys.held.Down then
        direction = 1
    elseif Keys.held.Right then
        direction = 4
    elseif Keys.held.Left then
        direction = 2
    else
        sprite:resetAnimation(direction)
    end
end

function deplacer_map(scrollX, scrollY)

    if Keys.held.Up then
        scrollY = scrollY - 3
    end
    
    if Keys.held.Down then
        scrollY = scrollY + 3
    end
    
    if Keys.held.Right then
        scrollX = scrollX + 3
    end
    
    if Keys.held.Left then
        scrollX = scrollX - 3
    end
    
    return scrollX, scrollY
end

while not Keys.newPress.Start do
    Controls.read()

    screen.drawFillRect(SCREEN_DOWN, 0, 0, 256, 192, Color.new(0, 20, 31))
    
    screen.print(SCREEN_UP, 0, 0, 'FPS : '..NB_FPS)
    screen.print(SCREEN_UP, 0, 10, 'ScrollX : '..scrollX)
    screen.print(SCREEN_UP, 0, 20, 'ScrollY : '..scrollY)
    
    ScrollMap.draw(SCREEN_DOWN, map)
    sprite:playAnimation(SCREEN_DOWN, 118, 86, direction)
    
    deplacer_sprite()
    
    scrollX, scrollY = deplacer_map(scrollX, scrollY)    
    ScrollMap.scroll(map, scrollX, scrollY)

    render()
end

ScrollMap.destroy(map)
sprite:destroy()
map, tileset, direction, scrollX, scrollY, sprite = nil, nil, nil, nil, nil, nil




Mais j'ai exactement le même message d'erreur Sad
Pourtant ces deux fichiers fonctionnent bien sur MLS, je vois pas du tout comment faire...


Pourriez-vous m'aider svp ?
Merci d'avance !

P.S : J'ai la dernière version de MicroLua 4.7.1 et les autres exemples fonctionnent très bien.


Revenir en haut
Publicité






MessagePosté le: Ven 3 Jan 2014 - 20:04    Sujet du message: Publicité

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


Hors ligne

Inscrit le: 07 Avr 2012
Messages: 47

MessagePosté le: Ven 3 Jan 2014 - 20:11    Sujet du message: Problème avec les sprites Répondre en citant

Je dirais que le problème vient du "getn(table)" qui a été remplacé par #table si je ne me trompe pas.

Revenir en haut
Thomas99


Hors ligne

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

MessagePosté le: Sam 4 Jan 2014 - 11:00    Sujet du message: Problème avec les sprites Répondre en citant

En effet, libs.lua n'a pas été mit à jour pour Lua 5.2.
Voilà une version sans les table.getn() : libs.lua (à placer dans /lua/libs/libs.lua).
Pas testé, mais ça devrait marcher.
_________________
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
Sharkou


Hors ligne

Inscrit le: 22 Fév 2012
Messages: 84
Localisation: Bretagne

MessagePosté le: Sam 4 Jan 2014 - 14:24    Sujet du message: Problème avec les sprites Répondre en citant

Merci ! Je vais essayer Smile

EDIT : c'est bon ça fonctionne merci encore  ((:


Mais j'ai un autre problème maintenant... Sur ma DS ça affiche des mauvais tiles alors que sur MLS ce sont les bons tiles :/
Comment faire ?


Revenir en haut
Reylak
Administrateur

Hors ligne

Inscrit le: 24 Nov 2008
Messages: 2 838
Localisation: Toulouse

MessagePosté le: Sam 4 Jan 2014 - 22:28    Sujet du message: Problème avec les sprites Répondre en citant

C'est bizarre que libs.lua n'ai pas été mis à jour, je veux dire quand je teste j'utilise le fichier du dépôt et tout, donc normalement j'ai la même version que vous... Tu n'aurais pas oublié de remplacer le fichier libs.lua (voir le dossier libs entier) par hasard ? Smile

C'est pareil chez tout le monde ?


EDIT : okay j'ai rien dit, y a bien getn() dans le dépôt u_u Pfff j'avais oublié que comme Lua était un langage de script, si une partie n'était pas testée on ne pouvait pas voir ce genre de choses.
_________________


Plein d'infos sur le SourceForge !


Revenir en haut
Visiter le site web du posteur MSN Skype
Sharkou


Hors ligne

Inscrit le: 22 Fév 2012
Messages: 84
Localisation: Bretagne

MessagePosté le: Sam 4 Jan 2014 - 22:58    Sujet du message: Problème avec les sprites Répondre en citant

Je peux rien faire alors ? :/

Revenir en haut
Reylak
Administrateur

Hors ligne

Inscrit le: 24 Nov 2008
Messages: 2 838
Localisation: Toulouse

MessagePosté le: Sam 4 Jan 2014 - 23:30    Sujet du message: Problème avec les sprites Répondre en citant

Si si bien sûr, soit tu corriges à la main les lignes 192 et 210 pour que
Code:
table.getn(tab)

devienne
Code:
#tab


Soit tu fais une correction globale en utilisant myboot.lua : d'abord, tu peux supprimer l'exemple fourni, puis tu fais un nouveau script Lua et dedans tu mets :
Code:
table.getn = function (tab)
    return #tab
end

return "continue"

Si je suis pas trop bête pour une fois, ça devrait faire l'affaire Smile Concrètement, ça se contente de définir table.getn() comme étant la fonction qui retourne le résultat de l'opérateur # sur son argument. Je ne pense pas que getn() soit plus compliquée, et en tant se rustine ça ira ! Smile
N'oublie pas le return "continue" à la fin, c'est pour revenir à la séquence de boot normale (et c'est ce que tu veux faire !).


Pour les tiles il me semble qu'il y a beaucoup de gens qui s'arrachent les cheveux dessus, mais je ne pense pas (j'ose espérer que) ce n'est pas un bug introduit récemment.
Quel est le numéro de la première frame pour toi ? Car ici ce doit être 0 au vu du code de libs.lua.
_________________


Plein d'infos sur le SourceForge !


Revenir en haut
Visiter le site web du posteur MSN Skype
Sharkou


Hors ligne

Inscrit le: 22 Fév 2012
Messages: 84
Localisation: Bretagne

MessagePosté le: Dim 5 Jan 2014 - 01:19    Sujet du message: Problème avec les sprites Répondre en citant

En fait j'ai mis la version sans table.getn de Thomas99 (plus haut), les sprites fonctionnent bien depuis mais y'a des soucis avec la map sur ma DS (mauvais tiles qui s'affichent..)


Revenir en haut
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Dim 5 Jan 2014 - 10:23    Sujet du message: Problème avec les sprites Répondre en citant

Pour les Tiles, essaie de mettre un "|" (sans les guillemets) à la fin de chaque ligne de ton fichier .map; ensuite, la tile 0 est une tile "vide", elle ne sera pas affichée même si le
tileset la contient .
Essaie ça, on verra ensuite Wink
_________________
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
Sharkou


Hors ligne

Inscrit le: 22 Fév 2012
Messages: 84
Localisation: Bretagne

MessagePosté le: Dim 5 Jan 2014 - 15:11    Sujet du message: Problème avec les sprites Répondre en citant

Ma map était déjà comme ça

  
Code:
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|100|
83|83|83|83|83|83|83|83|83|83|83|83|83|83|83|83|
86|86|86|86|86|86|86|86|86|86|86|86|86|86|86|86|
86|86|86|86|86|86|86|86|86|86|86|86|86|86|86|86|
86|86|86|86|86|86|86|86|86|86|86|86|86|86|86|86|
86|86|86|86|86|86|86|86|86|86|86|86|86|86|86|86|


donc je pense que je n'ai rien à changer :/


Revenir en haut
thermo_nono
Modérateur

Hors ligne

Inscrit le: 31 Déc 2008
Messages: 2 415
Localisation: La Géhenne

MessagePosté le: Mar 7 Jan 2014 - 16:57    Sujet du message: Problème avec les sprites Répondre en citant

il est possible que ce soit une fois de plus dû au "bug de tileset" : http://microlua.xooit.fr/t382-Probleme-avec-les-tuiles.htm  
_________________
“Qui reçoit une idée de moi reçoit de la connaissance sans diminuer la mienne, comme celui qui allume sa chandelle à la mienne reçoit la lumière sans me plonger dans l’obscurité.” - Thomas Jefferson


Revenir en haut
Visiter le site web du posteur MSN
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 21:50    Sujet du message: Problème avec les sprites

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
Page 1 sur 1

 
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