D: Error raro S:[LUA DEV]

Os explicare que intento hacer, mi balon se blitea en la cordenada Y=500(fuera de pantalla) y para que venga hacia abajo se le tiene que restar, y a fin de cuentas tiene que llegar a 272, y despues regresar´..

Lo raro esque en ningun momento del script veo el balon S:.

 

Balon={}
Balon[1]={balon=image.load("Imagenes/balon.png"),x=500,y=-44}
cuadro=image.create(30,30,color.new(0,0,0))
 
local fondo=image.load("Imagenes/fondo.png")
 
while true do
	screen.clear(color.new(0,255,0))
	fondo:blit(0,0)
	Balon[1].balon:blit(Balon[1].x,Balon[1].y)
		cuadro:blit(100,10)
		Balon[1].y=Balon[1].y+7
			if Balon[1].y>=272 then Balon[1].y=-44 end
		screen.flip()
end


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 NauTiluS1

Pero por qué no usas está función?

nau = {}
nau[1] = {img=image.load("x"),x=x,y=yxxxx}
 
function tilus()
nau[1].y = math.random(0,272)--Elegirá un numero aleatorio entra la coordenada Y0 y la coordenada Y272
end
end
 
while true do
 
nau[1].x = nau[1].x + 1
 
if nau[1].x > 0 then
tilus()
end
--Eso hara que si nau llega a 0 se repita de nuevo pero en otra coordenada(math.random) 

Si lo haces de esa forma se repetirá y se repetirá


Follow me twitter nautilus1_jmccu!!
Sony, ya a nadie le interesa tus UMD si alguien compra una psp es por nosotros los coders. Madura y has un FW que haga la diferencia y anime a las personas en comprar un PSP

Imagen de barney77

A fin de cuentas es lo

A fin de cuentas es lo mismo..

Pero probar nunca está de más ;)

EDITO: Ya checaste el code más actualizado?..

Es este:

Balon={}
Balon[1]={balon=image.load("Imagenes/balon.png"),x=500,y=-44}
cuadro=image.create(30,30,color.new(0,0,0))
 
local fondo=image.load("Imagenes/fondo.png")
 
while true do
	screen.clear(color.new(0,255,0))
	fondo:blit(0,0)
	Balon[1].balon:blit(Balon[1].x,Balon[1].y)
		cuadro:blit(100,10)
		Balon[1].y=Balon[1].y+7
			if Balon[1].y>=272 then Balon[1].y=-44 end
		screen.flip()
end

Cual es el error?--

 

Es un error de lógica: x vale

Es un error de lógica: x vale inicialmente 500, ok, está fuera de la pantalla, pero cada pasada de tu while le sumas 7, lo que la incrementa muy rápido. Mientras más grande sea, más se aleja del borde derecho de la pantalla (vamos, que no la verás si no la haces entrar en la pantalla)

Imagen de barney77

No has visto el code posteado

No has visto el code posteado en el Post?..

Este es el viejo, mira ahora el nuevo:

Balon={}
Balon[1]={balon=image.load("Imagenes/balon.png"),x=500,y=-44}
cuadro={cuadro=image.create(30,30,color.new(0,0,0)),x=205,y=256,h=30,w=30}
 
local fondo=image.load("Imagenes/fondo.png")
 
function control(object)
if controls.right() then
	object.x=object.x+7
elseif controls.left() then
	object.x=object.x-7
end
end
 
function colision(ob1,ob2)
if ob1.x+ob1.w>=ob2.x and
	ob1.y+ob1.h>=ob2.y and
	ob1.y<=ob2.y+ob2.h and
	ob1.x<=ob2.x+ob2.w then
		return true
else
		return false
end
end
 
 
while true do
	controls.read()
	screen.clear(color.new(0,255,0))
	fondo:blit(0,0)
	control(cuadro)
	Balon[1].balon:blit(Balon[1].x,Balon[1].y)
		cuadro.cuadro:blit(cuadro.x,cuadro.y)
		Balon[1].y=Balon[1].y+7
			if Balon[1].y>=272 then Balon[1].y=-44 end
				if cuadro.x+cuadro.w>= 480 then cuadro.x=1 elseif cuadro.x<=0 then cuadro.x=480-cuadro.x end
	screen.flip()
end

Ese code no está en el post

Ese code no está en el post -_-

Como sea... no verás ese balón porque está fuera de la pantalla. Mientras no hagas que x sea menor que 480 de alguna manera, no lo verás.

Imagen de barney77

Oh Shí...Me equivoque de

Oh Shí...

Me equivoque de code, este es el real:

Balon={}
Balon[1]={balon=image.load("Imagenes/balon.png"),x=500,y=-44}
portero={portero=image.load("Imagenes/portero.png"),x=205,y=256,h=50,w=50}
 
local fondo=image.load("Imagenes/fondo.png")
 
function control(object)
if controls.right() then
	object.x=object.x+7
elseif controls.left() then
	object.x=object.x-7
end
end
 
function colision(ob1,ob2)
if ob1.x+ob1.w>=ob2.x and
	ob1.y+ob1.h>=ob2.y and
	ob1.y<=ob2.y+ob2.h and
	ob1.x<=ob2.x+ob2.w then
		return true
else
		return false
end
end
 
 
while true do
	controls.read()
	screen.clear(color.new(0,255,0))
	fondo:blit(0,0)
	control(portero)
	Balon[1].balon:blit(Balon[1].x,Balon[1].y)
		portero.portero:blit(portero.x,portero.y)
		Balon[1].y=Balon[1].y+7
			if Balon[1].y>=272 then Balon[1].y=-44 end
				if portero.x+portero.w>=480 then portero.x=1 elseif portero.x<=0 then portero.x=480-portero.w end
	screen.flip()
end

EDITO: ._. perdona soy un tarado, me equivoce en algo bien chico, como seá gracias.!

Imagen de sting18

xD. No te hacen caso RG jajajaja

Balon[1]={balon=image.load("Imagenes/balon.png"),x=500,y=-44}
x=500 eso esta mal ponle x=100 y ya veras e balon

Imagen de barney77

Lo he echo

Lo he echo así:

Bola={}
Bola[1]={bola=image.load("bola.png"),x=-50,y=100}
 
function X()
Bola[1].x=-50
end
 
while true do 
screen.clear(color.new(255,255,255))
	Bola[1].x=Bola[1].x+20
		if Bola[1].x>=0 then X() end
screen.flip()
end

Pero nah, nunca sale la bola se queda toda la pantalla en blanco :(

Pero hombre, no pusiste el

Pero hombre, no pusiste el blit, cómo quieres que salga la pelota así? xD

Imagen de barney77

Si eso ya lo solucione, ahora

Si eso ya lo solucione, ahora mira mi duda de arriba y mi error.

Reinicia el homebrew. Eso

Reinicia el homebrew. Eso suele solucionar ese clase de problemas :P

Imagen de barney77

Alrato pruebo y postro otra

Alrato pruebo y postro otra duda mas que tengo

EDITO: Aqui mi duda..

Ininicia el juego: las bolas vienen desde afuera, pero.. tienen que botar!!...

EJ:

La bola tiene que ir bajando y rebotar..

Pero como lo hago?..

Por ahí leí algo del "Arco Tan Gente", pero creo que eso es en HM.

Imagen de NauTiluS1

Crea una tabla,despues una

Crea una tabla,despues una función que contenga esto: tabla.y = math.random(coor-y-inicial,coor-y-acaba) y cierras la función y dentro del bucle: tabla.x = tabla.x + velocidad y para que se repita: if tabla.x > 0 then debajo: nombrefunction(). Lo siento estoy en la psp.

 

nautilus = {}
nautilus[1] = {img=image.load("xxx"),x=-100}
 
function nauti()
nautilus[1].x = math.random(0,272)
end
 
while true do
nautilus[1].x = nautilus[1].x + 1
 
if nautilus[1] > 0 then
nauti()
end

Debería funcionar


Follow me twitter nautilus1_jmccu!!
Sony, ya a nadie le interesa tus UMD si alguien compra una psp es por nosotros los coders. Madura y has un FW que haga la diferencia y anime a las personas en comprar un PSP

Imagen de sting18

math.random es aleatorio tu

math.random es aleatorio tu bola aparecera en lugares diferentes en las cordenadas 0 a 272 la x pantalla completa son 480

Imagen de NauTiluS1

Sí, pero el dice qué aparesca

Sí, pero el dice qué aparesca de la coordenada x480 a x0 osea que aparesca ej en la coor 5Y y cuándo llegue a X0 ej aparesca en la 8Y, eso er lo qué entiendo qué el quiere.


Follow me twitter nautilus1_jmccu!!
Sony, ya a nadie le interesa tus UMD si alguien compra una psp es por nosotros los coders. Madura y has un FW que haga la diferencia y anime a las personas en comprar un PSP

Imagen de sting18

Entonces a la hora de hacer

Entonces a la hora de hacer la comprobacion esta mal ya que el [1] lo pones que lo aga de 0 y no le das una especificacion como [1].x asi que no saldra lo mejor es hacer una IA conforme el quiere que aga su movimiento.


Blitea tu imagen fuera de la

Blitea tu imagen fuera de la pantalla (coordenada en x negativa). Si quieres que sean varias, pues la bliteas varias veves.

Imagen de barney77

Si ya lo hise, y ise que se

Si ya lo hise, y ise que se moviera, pero por ejemplo, lo que me pasa es que: Viene desde fuera, si se mueve, pero ahora tiene que salir de la pantallla..

Eso no se acerlo muy bien S:.

Otra cosa, la bola tiene que venir desde fuera y rebotar eso podría hacerlo cambiando la cordenada Y cada X segundos,no?

Imagen de sting18

Si ... usando las cordenadas

Si ... usando las cordenadas X he Y haces que mueva para donde tu quieras incluso salir de la pantalla solo no le pongas bordes y listo.


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.