Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Problème avec les fonctions (luaFx)
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Problème avec les fonctions (luaFx)

Posté le 03/04/2014 18:06

Bonjour à tous,
J'aimerais savoir en détail comment faire des sprites avec le lua sous Windows ?
merci
J'aimerais optimiser directement la fonction nbdraw.pixeltest !
Comment faire ?



-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 08/05/2014 20:04 | #


J'ai utilisé ma calto mais aussi l'émulateur du SDK qui marche pour les add-ins et ça m'a envoyé une erreur de Rom et c'est peut être à cause de ça que mon truc ne veut pas marcher
In Arch, I trust ! And you ?
Purobaz Hors ligne Membre d'honneur Points: 2690 Défis: 110 Message

Citer : Posté le 10/05/2014 13:27 | #


Je te conseille de t'inspirer des programmes déjà fonctionnels. Notamment pour la gestion des sprites.
I'll be back !
pour plus de fun
mes programmes fun
de technique
mes projets
et de Swag
les projets que je soutiens
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 10/05/2014 13:40 | #


merci beaucoup, je regarde les programmes déjà existant et je continue le tuto la dessus

Ajouté le 10/05/2014 à 14:21 :
pushxspr ...
drawspr ..., ....
pushxspr ...
drawspr ..., ...
pushxspr ...
drawspr ..., ...


je ne comprends pas ces fonctions mais ça ne m'affiche pas ce que j'ai compilé

Ajouté le 10/05/2014 à 14:35 :
Je connait maintenant le pb de spirte, l'OS 2.04 ne fonctionne pas avec les niveaux de gris du lua mon OS avait une erreur interne

Ajouté le 10/05/2014 à 15:09 :
graydraw.setcolor(true)
x = 10
y = 10
clear(0)

boule = "\000\000������\000�\000��������\000������\000"
spritexy x,y,boule
refresh
misc.wait(100)
misc.exit()


Ce code marche
In Arch, I trust ! And you ?
Drac0300 Hors ligne Membre Points: 839 Défis: 39 Message

Citer : Posté le 15/05/2014 18:53 | #


Cool !
Dans Z/1Z, 42==666
Coïncidence ? Je ne pense pas.
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 15/05/2014 19:39 | #


Oui mais le codage ne marche pas bien mais il me semble que j'oublie les deux "/" entre le code C

foo = { /le code du sprite/ }
et je mets foo = { le code du sprite }

J'ai essayé mais ça me met une erreur avec le "/"
In Arch, I trust ! And you ?
Drac0300 Hors ligne Membre Points: 839 Défis: 39 Message

Citer : Posté le 19/05/2014 15:20 | #


Je suis quasi-sur que ce n'est qu'une notation et qu'il ne faut pas les mettre. Je pense que ce n'est pas le codage qui marche mal mais l'affichage (les niveaux de gris, c'est galère... ).
Dans Z/1Z, 42==666
Coïncidence ? Je ne pense pas.
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 20/05/2014 19:34 | #


Le souci c'est que je trace mon sprite en noir et blanc puis je fais le reste mais ça me sort à la fin des niveaux de gris
In Arch, I trust ! And you ?
Drac0300 Hors ligne Membre Points: 839 Défis: 39 Message

Citer : Posté le 23/05/2014 19:50 | #


... J'ai pas compris
Dans Z/1Z, 42==666
Coïncidence ? Je ne pense pas.
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 25/05/2014 10:40 | #


Avec sprite maker, je dessine en noir et blanc mais quand je le compile avec le lua for Windows puis quand je met le sprite dans un programme, ça me dessine un sprite avec des niveaux de gris

Ajouté le 01/06/2014 à 16:12 :
Coment je peux récupérer toutes les valeurs de ça
table1 ={}
table1={g=0,h=1,i=0,j=1,k=0,
l=1,m=0,n=1,o=0,p=1,
q=1,r=1,s=1,t=1,u=1,
v=1,w=1,z=1,ab=1,ac=1,ad=1}

In Arch, I trust ! And you ?
Drac0300 Hors ligne Membre Points: 839 Défis: 39 Message

Citer : Posté le 01/06/2014 17:47 | #


Comment ça récupérer toutes les valeurs ? Avec la fonction unpack() ? Avec une boucle for ?
Dans Z/1Z, 42==666
Coïncidence ? Je ne pense pas.
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 01/06/2014 19:21 | #


je voudrait récuperer toutes les valeurs de la table
Je m'explique :
ceci est un niveau et pour optimiser je met toutes les variable dans une table que je voudrais les récuperer pour que mon niveau marche normalement mais je ne peux pas enfin... je ne sais pas comment faire
In Arch, I trust ! And you ?
Vebveb Hors ligne Membre Points: 797 Défis: 14 Message

Citer : Posté le 01/06/2014 19:36 | #


Pourrais tu mieux expliquer ce que tu veux ?

Si c'est juste stocker un niveau, tu devrais regarder la librairie pour gérer les fichiers.
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 01/06/2014 20:29 | #


Je veux stocker un niveau ou plusieurs et pendant le programme, ressortir ce niveau dans le programme
In Arch, I trust ! And you ?
Vebveb Hors ligne Membre Points: 797 Défis: 14 Message

Citer : Posté le 01/06/2014 23:13 | #


C'est exactement le but de la librairie pour gérer des fichiers dans la ram. Le but initial de cette librairie était de pouvoir résoudre le problème de mémoire limitée de fichiers lua lors de l'éxécution: en stockant des niveaux dans la RAM, on résoud le problème. Le second but était de permettre des sauvegardes.
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 02/06/2014 18:23 | #


Ok je regarde ton super tuto pour voir comment je peux faire

Ajouté le 02/06/2014 à 19:42 :
ce bout de code ne marche pas et ça me met "bad argument #1"
file.delete(LFcasse)
peut être faut il que je mette ça file.delete("LFcasse")
In Arch, I trust ! And you ?
Drac0300 Hors ligne Membre Points: 839 Défis: 39 Message

Citer : Posté le 02/06/2014 21:43 | #


Oui c'est ça !
Dans Z/1Z, 42==666
Coïncidence ? Je ne pense pas.
Vebveb Hors ligne Membre Points: 797 Défis: 14 Message

Citer : Posté le 03/06/2014 03:29 | #


-florian66-: si la variable LFcasse ne contient pas "LFcasse', alors oui.
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 03/06/2014 18:02 | #


alors je regarde si ça marche maintenant
Je n'arrive pas à récuperer une valeurs dans un fichier

Ajouté le 04/06/2014 à 13:56 :
voila veb²
local fichier = (file.search("LFcasse") ) or file.new("LFcasse",1)

best=file.read(fichier,1)
c'est au début du prog
et à la fin :
if score >= best
then file.write(fichier,1,score)
end

best=file.read(fichier,1)


ça ne veut pas m'afficher le score au début lors que j'ai fait quelques partie pour essayer


Ajouté le 04/06/2014 à 14:16 :
voila le code en entier
le code
Cliquer pour enrouler
local line=graydraw.line
local pixeltest=graydraw.pixeltest
graydraw.setcolor(true)
local text=graydraw.text
local rand=misc.random
a,b,e,f=50,50,0,4
x,y=40,60
lvl=1
vie=3
score=0
bonus=0
vitball=1
local fichier = (file.search("LFcasse") ) or file.new("LFcasse",1)

best=file.read(fichier,1)

repeat --menu
text(30,5,"casse brique")
text(40,20,"c'est parti")
text(1,30,"pour jouer")
text(1,41,"appuyer sur EXE")
text(80,40,"BEST :")
text(115,40,best)
text(1,55,"reinitialiser : DEL")
refresh
if key(36)
then misc.exit()
elseif key(19)
then file.delete("LFcasse")
end
until key(5)

g,h,i,j,k=0,0,0,0,0 -- niveau 1
l,m,n,o,p=0,0,0,0,0 -- niveau 2
q,r,s,t,u=0,0,0,0,0 -- niveau 3
v,w,z,ab,ac,ad=0,0,0,0,0,0 -- bique pas cassante

function table(x,y)
line(x,y,x+20,y,4)
line(x-1,y+1,x+21,y+1,4)
line(x,y+2,x+20,y+2,4)
end

function brique(x1,y1,x2,y2)
line(x1,y1,x1,y2,4)
line(x2,y1,x2,y2,4)
line(x1,y1,x2,y1,4)
line(x1,y2,x2,y2,4)
line(x1,y1,x2,y2,4)
line(x1,y2,x2,y1,4)
line(x1,y2-1,x2,y2-1)
end

function balle()
line(a,b,a,b+1,4)
line(a+1,b,a+1,b+1,4)
end
function brik()
if g==0 -- niveau 1
then brique(1,1,21,10)
end
if h==0
then brique(22,1,42,10)
end
if i==0
then brique(43,1,63,10)
end
if j==0
then brique(64,1,84,10)
end
if k==0
then brique(85,1,105,10)
end
if l==0 -- niveau 2
then brique(1,11,21,20)
end
if m==0
then brique(22,11,42,20)
end
if n==0
then brique(43,11,63,20)
end
if o==0
then brique(64,11,84,20)
end
if p==0
then brique(85,11,105,20)
end
if q==0 -- niveau 3
then brique(1,21,21,30)
end
if r==0
then brique(22,21,42,30)
end
if s==0
then brique(43,21,63,30)
end
if t==0
then brique(64,21,84,30)
end
if u==0
then brique(85,21,105,30)
end
if v==0 -- niveau 4
then brique(1,40,16,45)
end
if w==0
then brique(17,40,32,45)
end
if z==0
then brique(33,40,48,45)
end
if ab==0
then brique(49,40,64,45)
end
if ac==0
then brique(65,40,80,45)
end
if ad==0
then brique(81,40,96,45)
end
graydraw.text(107,10,"score")
graydraw.text(109,15,score)
refresh
graydraw.text(107,25,"vie")
graydraw.text(109,30,vie)
refresh
graydraw.text(107,40,"F1 :")
graydraw.text(107,45,"pause")
refresh
table(x,y) -- plateforme
balle()
end

repeat
repeat
clear(nil)
clear(0)
graydraw.text(40,30,"niveau :")
graydraw.text(80,30,lvl)
refresh
until key(5)

g,h,i,j,k=rand(2),rand(2),rand(2),rand(2),rand(2)
l,m,n,o,p=rand(2),rand(2),rand(2),rand(2),rand(2)
q,r,s,t,u=rand(2),rand(2),rand(2),rand(2),rand(2)
v,w,z,ab,ac,ad=rand(2),rand(2),rand(2),rand(2),rand(2), rand(2)
repeat
clear(nil)
repeat
brik()
refresh
if score>=300 -- augmentation de la vitesse de la balle
then vitball=2
end
if key(40)
then x=x+4
elseif key(37)
then x=x-4
end
refresh
line(106,1,106,64,4)
if x>=85
then x=85
elseif x<=1
then x=1
end
if pixeltest(a,b+2)>=1 -- limite bas
then e=1
elseif b>=61
then vie=vie-1
a,b,e,f=50,50,0,4
x,y=40,60
elseif vie<=0
then break
end
if e==1
then b=b-vitball
elseif e==0
then b=b+vitball
end
if b<=2 -- limite haut
then e=0
end
if a<=1 -- limite droite-gauche
then
f=1
elseif a>=104
then
f=0
end
refresh
if f==0
then a=a-vitball
elseif f==1
then a=a+vitball
elseif f==2
then a=a+vitball+1
elseif f==3
then a=a-vitball-1
end
if key(40) and pixeltest(a,b+2)>=1 and b>=55 -- retour de la balle
then f=2
elseif key(37) and pixeltest(a,b+2)>=1 and b>=55
then f=3
end
refresh
if pixeltest(a,b-1)>=1
then e=0
elseif pixeltest(a+2,b)>=1
then f=0
elseif pixeltest(a-1,b)>=1
then f=1
end
if pixeltest(a,b-2)>=1 and e==1 and b<=35
then score=score+10 -- score
end
if key(36) -- option
then
break
elseif key(45)
then
repeat
clear(0)
clear(nil)
misc.wait(1)
graydraw.text(35,20,"pause")
graydraw.text(20,41,"appuyer sur EXE")
refresh
until key(5)
end
misc.wait(1)
clear(0)
until b<=31 or key(1) or key(36)

if a>=1 and a<=21 and b<=11 --brique du haut
then g=1
elseif a>=22 and a<=42 and b<=11
then h=1
elseif a>=43 and a<=63 and b<=11
then i=1
elseif a>=64 and a<=84 and b<=11
then j=1
elseif a>=85 and a<=105 and b<=11
then k=1
end

if a>=1 and a<=21 and b>=12 and b<=21 --brique du bas
then l=1
elseif a>=22 and a<=42 and b>=12 and b<=21
then m=1
elseif a>=43 and a<=63 and b>=12 and b<=21
then n=1
elseif a>=64 and a<=84 and b>=12 and b<=21
then o=1
elseif a>=85 and a<=105 and b>=12 and b<=21
then p=1
end

if a>=1 and a<=21 and b>=22 and b<=31 --brique 3eme niveau
then q=1
elseif a>=22 and a<=42 and b>=22 and b<=31
then r=1
elseif a>=43 and a<=63 and b>=22 and b<=31
then s=1
elseif a>=64 and a<=84 and b>=22 and b<=31
then t=1
elseif a>=85 and a<=105 and b>=22 and b<=31
then u=1
end

if g==1 and h==1 and i==1 and j==1 and k==1 and l==1 and m==1 and n==1 and o==1 and p==1 and q==1 and r==1 and s==1 and t==1 and u==1
then break
end
if vie<=0
then break
end
until key(1) or key(36)
lvl=lvl+1
a,b,e,f=50,50,0,4
x,y=40,60
if vie<=0
then break
end
until key(36) or key(1)
clear(nil)

if score >= best
then file.write(fichier,1,score)
end

repeat
best=file.read(fichier,1)
graydraw.text(40,10,"perdu")
text(40,25,"SCORE")
text(70,25,score)
text(40,35,"BEST")
text(70,35,best)
refresh
until key(5)
misc.wait(50)
misc.exit()

In Arch, I trust ! And you ?
Vebveb Hors ligne Membre Points: 797 Défis: 14 Message

Citer : Posté le 05/06/2014 02:36 | #


Tu utilises les mode nuances de gris.

Lorsque le programme quitte, il te propose de quitter ou resetter.

Si tu resette, la calculatrice restaure la RAM à l'état où elle était au dernier éteignage/rallumage.
Donc en gros tu perd tes fichiers crée par le LuaFX.
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 05/06/2014 06:41 | #


ah c'est donc pour ça car la calculatrice resette, il n'y a aucun moyen de sauver le score ?

In Arch, I trust ! And you ?
Drac0300 Hors ligne Membre Points: 839 Défis: 39 Message

Citer : Posté le 05/06/2014 08:54 | #


Il faudrait pouvoir copier les fichiers dans la mémoire de stockage ...
Dans Z/1Z, 42==666
Coïncidence ? Je ne pense pas.

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 219 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd