Anuncios Google

(solucionado gracias a toñoz) Ayuda por dios :( en LUA ....

Hola de nuevo, va dirigido a los moderadores, ojalá lean esto y me puedan auxiliar ... resulta que tengo un codigo en el cual no puedo hacer:
- al oprimir una vez "x" me de una imagen (boca1)    boca = imagen

- al oprimir por segunda vez "x" que me de otra imagen (boca2) borrando la primera   boca2 = imagen

- al oprimir por tercera vez "x" que me de otra imagen (nube) borrando la anterior  nube = imagen

 

aqui el codigo y ojala me ayuden , robionne me ayudo pero no es lo que buscaba, maiki me ayudo pero resulto similar la imagen se quitaba.

 

 

cuadro1 = Image.load("cuadro1.png")
cuadro2 = Image.load("cuadro2.png")
boca1 = Image.load ("boca1.png")
boca2 = Image.load("boca2.png")
nube = Image.load ("nube.png")
x=0
y=0 
cambiar = 1
cambio = 1
cambiar2 = false
 
while true do   
screen:clear()  
pad = Controls.read() 
--------------------------------------------------------------------------------------------------------------------------
 
if cambiar == 2 then
screen:blit (0,0,cuadro1)
end
 
if cambiar == 3 then
screen:blit (0,0,cuadro2)
end
 
if pad:r() and oldpad:r() ~= pad:r() then
cambiar = cambiar +1
end
 
if cambiar > 4 then
cambiar = 2
screen.waitVblankStart()
end
 
 
---------------------//poner aqui el codigo que pido//------------------------------------------------------------------------------------------------------
if pad:cross () then
screen:blit (x,y,boca1)
end
----------------------// Fin del codigo pedido//------------------------------------------------------------------------------------------------------
 
 
if pad:right() then  
x = x +1 
end      
if pad:left() then   
x = x -1 
end
if pad:up() then  
y = y -1 
end     
if pad:down() then
y = y +1 
end
 
----------------------------------------------------------------------------------------------------------------------------
 
oldpad = pad
screen.waitVblankStart() 
screen.flip() 
end

Ojala me ayuden :(

ARREGALDO ( GRACIAS A TOÑOZ)

creando una variable

cambios = 1

 

if pad:cross() and oldpad:cross() ~= pad:cross() then  
cambios  = cambios +1
end
if cambios > 4 then 
cambios = 1
end
if cambios == 2 then
screen:blit(x,y,nube)
elseif cambios == 3 then
screen:blit(x,y,boca1)
elseif cambios == 4 then
screen:blit(x,y,boca2)
end

Pd: les agrdezco a todos los que se preocuparon por ayudarme se los agradezco :)

Editado: Movido a programacion, por favor postea en el lugar correcto, revise las normas de la comunidad. Gracias. -Viciuz-



Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Robione22

Idea, creo que así puede funcionar

Metodo extra 2:

cuadro1 = Image.load("cuadro1.png")
cuadro2 = Image.load("cuadro2.png")
menu = Image.load("menu.png")
nube = Image.load("nube.png")
cambiar = 1
Imostrada= 0
 
x = 0
y = 0
cambiar2 = false
 
boca = Image.load("boca.png")
 
boca2 = Image.load("boca2.png")
 
boca3 = Image.load("boca3.png")
 
oldpad = Controls.read()
 
while true do  
screen:clear() 
pad = Controls.read()
---botones---
if pad:down() then
screen:blit(0,0,menu)
end
 
if cambiar == 2 then
screen:blit(0,0,cuadro1)
end
if cambiar == 3 then
screen:blit(0,0,cuadro2)
end
 
if pad:r() and oldpad:r() ~= pad:r() then
cambiar = cambiar +1
end
 
if cambiar > 4 then
cambiar = 2
screen.waitVblankStart()
end
 
---- prueba---
if cambiar2 == true then
Imostrada = 1
elseif pad:cross() and oldpad:cross() ~= pad:cross() then
Imostrada = Imostrada + 1
end
 
if Imostrada == 1 then
screen:blit(x,y,boca)
elseif Imostrada == 2 then
screen:blit(x,y,boca2)
elseif Imostrada == 3 then
screen:blit(x,y,nube)
elseifImostrada >= 4
Imostrada = 1
end
 
if pad:right() then  x = x +1 
end      
if pad:left() then   
x = x -1
end
if pad:up() then 
y = y -1 
end     
if pad:down() then  
y = y +1
end
 
oldpad = pad
end

Salu2

Imagen de po3ta_zero

no funca :S

Otra vez la idea no funciono :S jeje creo que no podre :S ojala me ayuden.

 

pd: lo que dice moikop es algo razonable de hecho asi se lo plantie ojala sea la salvación :S :(

 

Saludos!!


Imagen de Robione22

Te muestra algún error

el código anterior?

Imagen de po3ta_zero

si

Me ponia solo la primera imagen y las demás no ...

pero gracias ya quedo resuelto :P

Saludos!!!

Imagen de moikop

Y si...

Divide todo el codigo por secciones. Con esas secciones crea funciones. Y al final pone el screen:blit(x,y,[ habria que crear una variable nueva ]).( el screen:blit() adentro del bucle principal. No de una funcion.

Saludos


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.

No preguntes por MP, mejor pregunta aquí.

Imagen de moikop

Y asi : ? cuadro1 =

Y asi : ?

cuadro1 = Image.load("cuadro1.png")
cuadro2 = Image.load("cuadro2.png")
boca1 = Image.load("boca1.png")
boca2 = Image.load("boca2.png")
nube = Image.load("nube.png")
 
x = 0
y = 0
cambiar = 1
cambio = 1
cambiar2 = false
def = boca1
op = 1
 
oldpad = Controls.read()
 
function cam()
 
if cambiar == 2 then
screen:blit (0,0,cuadro1)
end
 
if cambiar == 3 then
screen:blit (0,0,cuadro2)
end
 
if pad:r() and oldpad:r() ~= pad:r() then
cambiar = cambiar +1
end
 
if cambiar > 4 then
cambiar = 2
end
 
if pad:right() and not oldpad:right() then  
x = x +1 
end      
if pad:left() and not oldpad:left() then   
x = x -1 
end
if pad:up() and not oldpad:up() then  
y = y -1 
end     
if pad:down() and not oldpad:down() then
y = y +1 
end
 
end
 
function men()
if op == 1 then def = boca1; end
if op == 2 then def = boca2; end
if op == 3 then def = nube; end
 
if pad:cross() and not oldpad:cross() then op = op + 1; end
 
if op <= 0 then op = 3; end
if op >= 4 then op = 1; end
end
 
while true do
pad = Controls.read()
men()
cam()
screen:blit(x,y,def)
screen.waitVblankStart()
screen.flip()
end


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.

No preguntes por MP, mejor pregunta aquí.

Imagen de po3ta_zero

:S

Se ponen todas juntas encimadas ...

Gracias!!!! de todas formas maik ;)

Imagen de moikop

Trata con este :

cuadro1 = Image.load("cuadro1.png")
cuadro2 = Image.load("cuadro2.png")
boca1 = Image.load("boca1.png")
boca2 = Image.load("boca2.png")
nube = Image.load("nube.png")
 
x = 0
y = 0
cambiar = 1
cambio = 1
cambiar2 = false
def = boca1
op = 1
 
oldpad = Controls.read()
 
function cam()
 
if cambiar == 2 then
screen:blit (0,0,cuadro1)
end
 
if cambiar == 3 then
screen:blit (0,0,cuadro2)
end
 
if pad:r() and oldpad:r() ~= pad:r() then
cambiar = cambiar +1
end
 
if cambiar > 4 then
cambiar = 2
end
 
if pad:right() and not oldpad:right() then  
x = x +1 
end      
if pad:left() and not oldpad:left() then   
x = x -1 
end
if pad:up() and not oldpad:up() then  
y = y -1 
end     
if pad:down() and not oldpad:down() then
y = y +1 
end
 
end
 
function ClearScreen()
screen:clear()
cam()
men()
end
 
function men()
if op == 1 then def = boca1; end
if op == 2 then def = boca2; end
if op == 3 then def = nube; end
 
if pad:cross() and not oldpad:cross() then
op = op + 1
ClearScreen()
end
 
if op <= 0 then op = 3; end
if op >= 4 then op = 1; end
end
 
while true do
pad = Controls.read()
men()
cam()
screen:blit(x,y,def)
screen.waitVblankStart()
screen.flip()
end


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.

No preguntes por MP, mejor pregunta aquí.

Imagen de moikop

Tal vez asi : ? def =

Tal vez asi : ?

def = boca1
 
while true do
pad = Controls.read()
 
if pad:cross() then
 
if def == boca1 then def = boca2
elseif def == boca2 then def = nube
elseif def == nube then def = boca1; end
end
 
screen:blit(x,y,def)
 
screen.waitVblankStart()
screen.flip()
end

Saludos


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.

No preguntes por MP, mejor pregunta aquí.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.