Anuncios Google

Necesito que alguien me ayude con mi hb (relacionado con las colisiones)

Buenas, en mi proyecto Sabion quiero que mi sprite al chocar con una imagen bliteada en pantalla no pueda pasar es decir una pared invisible, a base de intentarlo y con la ayuda de Nau he conseguido que se produzca una colision pero resulta que cuando el sprite llega al arbol (la imagen bliteada) es como si patinara muy deprisa por encima  =(

pido ayuda a alguien que le pasara como yo y haya conseguido que le funcione xD

PD:Quien quiera ayudarme que me lo diga por mp o algo ya que hay bastante code xD y si lo tengo que poner todo...


-> Creaciones <-

Os invito a probar el lol xD

http://signup.leagueoflegends.com/?ref=50814a20894be236637679

 


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 sisinio

.

He tomado una decision xD voy a empezar desde el principio el script ya que tanto code por aqui y por alla me estaba empezando a bloquear aun mas xD aun así muchas gracias a todos por vuestro tiempo y dedicacion, ya os comentare como me va Lengua fuera

PD: Gracias Chus por la motivacion xD


-> Creaciones <-

Os invito a probar el lol xD

http://signup.leagueoflegends.com/?ref=50814a20894be236637679

 

Imagen de markef

Crea

diferentes scripts para diferenciar parte de código y haz uso de las tabulaciones. Es bueno tener las funciones por una banda, carga de imágendes, sonido, moelos por otra... etc


Dicen que soy programador... Eso dicen.

Imagen de NauTiluS1

Comenzar el script desde 0?

Comenzar el script desde 0? mira el code del megaman para llegar a acabarlo tuve que usar 500 booleanos y algunos se quedaron sin ninguna funcion y nadie me hace hacerlo de nuevo :B y se quedo con varios errores tambien :B
Eres valiente pues xD


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 -chus-

no será desde 0

Lo que hará es re-hacer las colisiones con las ideas que le di, y el ejemplo que tengo de mi metroid(le pase code), el que si lo inicio desde 0 soy yo (llevo 20%) XD vaya enfado y lio al portarlo de hmv2 a dev XD pero valdrá la pena, por que dices que nadie te hace hacerlo desde 0? XD

Pd de nada sisinio


                                          Mis Homebrew´s

 http://psp.scenebeta.com/noticia/memorama-games#comment-803033


Imagen de NauTiluS1

Lo estas haciendo desde 0?

Lo estas haciendo desde 0? :O

pues digo que nisiquiera con un arma en mi cabeza lo hago desde 0 xD aunque si lo hago desde 0 lo puedo hacer con 50% code menos :D pero esta muy @# hacerlo nuevamente xD


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 -chus-

asi es

tienes razón lo que dices, esta muy difícil, pero así aprendes y miras code que no era necesario XD pero vale la pena, sobre el juego les adelanto que tendrá un escenario re-diseñando, con mejor profundidad, las nubes se moverán para ser un poco mas real, la profundidad del escenario mejorada hacia las montañas, el movimiento del mismo muy similar al original, los enemigos mejorados(ahora podrán ver, sentir, hacer ruidos, moverse a su gusto, etc etc) pero lo llevo con calma ya que me toparé con muchos bugs en el cambio a lua dev XD


                                          Mis Homebrew´s

 http://psp.scenebeta.com/noticia/memorama-games#comment-803033


Imagen de Dioni0396

si pones el code

te ayudaria.

Imagen de sisinio

.

Code:

guerrero_sabion = {}
guerrero_sabion["stay"]={}
guerrero_sabion["walk"]={}
 
guerrero_sabion["stay"]["up"] = image.load("Imagenes/Sprites/guerrero sabion arriba.png")
guerrero_sabion["stay"]["down"] = image.load("Imagenes/Sprites/guerrero sabion abajo.png")
guerrero_sabion["stay"]["right"] = image.load("Imagenes/Sprites/guerrero sabion derecha.png")
guerrero_sabion["stay"]["left"] = image.load("Imagenes/Sprites/guerrero sabion izquierda.png")
suelo = image.load("Imagenes/suelo.png")
arbol = {img=image.load("Imagenes/Sprites/arbol.png"),x=250,y=96,w=100,h=114}   
guia = image.load("Imagenes/guia.png")
barra_guia = image.load("Imagenes/barra guia.png")
planta = image.load("Imagenes/planta.png")
troncolado = image.load("Imagenes/troncolado.png")
trocoabajo = image.load("Imagenes/trocoabajo.png")
cofre = image.load("Imagenes/cofre.png")
 
 
black=color.new(0,0,0)
 
menu = {}
menu[1] = image.load("Imagenes/submenu1.png")
menu[2] = image.load("Imagenes/submenu2.png")
 
 
options = 2
mActual = 1
 
rawset(guerrero_sabion["walk"],"up",image.loadsprite("Imagenes/Sprites/arribam.png",32,48))
rawset(guerrero_sabion["walk"],"down",image.loadsprite("Imagenes/Sprites/abajom.png",32,48))
rawset(guerrero_sabion["walk"],"right",image.loadsprite("Imagenes/Sprites/derecham.png",32,48))
rawset(guerrero_sabion["walk"],"left",image.loadsprite("Imagenes/Sprites/izquierdam.png",32,48))
 
status = "stay" 
direction = "down" 
guerrero_sabion.x = 5	
guerrero_sabion.y = 5
guerrero_sabion.w = 48
guerrero_sabion.h = 32
anim = 0
 
 
tiempo = timer.new()
tiempo:start()
 
cuenta_atras = 50 
 
 
function save()
        mydata = {
                "nick='LuaDEV'",
                "age=69",
                "watermark='Ouch'",
                "anydata='foo'",
                "foo='bar'"
        };
 
 
 
        spaces = { "DATA0", "DATA1", "DATA2" };
        saveplace = {gameid="Sabion", savenames=spaces};
        saveconfig = { 
                title="Partida guardada Sabion", 
                subtitle=os.date(), 
                details="VDEMO",
                savetext="New Savedata",
				icon0="Imagenes/ICON0.PNG"
        }
 
        done, where = savedata.save(saveplace,saveconfig,mysavedata);
        if done then return where 
        else return nil end
end
 
 
 
function colin(objeto1,objeto2)
if objeto1.x+objeto1.w > objeto2.x and objeto1.x < objeto2.x+objeto2.w and
objeto1.y +objeto1.h > objeto2.y and objeto1.y < objeto2.y + objeto2.h  then 
return true
else
return false
end
end
 
 
 
while true do
	tiempo_en_segundos = math.floor( tiempo:time() / 5000)
	controls.read()
	image.blit(0,0,suelo)
	arbol.img:blit(250,96)
	image.blit(352,160,planta)
	image.blit(288,192,planta)
	image.blit(256,192,planta)
	image.blit(128,192,planta)
	image.blit(64,192,planta)
	image.blit(32,160,planta)
	image.blit(352,32,troncolado)
	image.blit(416,32,trocoabajo)
	image.blit(384,64,cofre)
 
if colin(guerrero_sabion,arbol) then
if direction == "left" then
guerrero_sabion.x = guerrero_sabion.x - 1
end
if direction == "up" then
guerrero_sabion.y = guerrero_sabion.y - 1
end
if direction == "down" then
guerrero_sabion.y = guerrero_sabion.y + 1
end
if direction == "right" then
guerrero_sabion.x = guerrero_sabion.x + 1
end
end
 
	if tiempo_en_segundos >= 5 then
		image.blit(5,211,guia)
		image.blit(55,241,barra_guia)
		screen.print(75,246,"Ya estoy de vuelta Zefiro,traigo noticias del castillo")
end
if tiempo_en_segundos >= 8 then
		image.blit(55,241,barra_guia)
		screen.print(75,246,"La reina Mia quiere veros cuanto antes")
end
if tiempo_en_segundos >= 10 then
		image.blit(55,241,barra_guia)
		screen.print(75,246,"Ha insistido en que acabeis vuestro entrenamiento")
end
if tiempo_en_segundos >= 12 then
		image.blit(55,241,barra_guia)
		screen.print(75,246,"Asi que sera mejor que acabemos lo mas pronto posible")
end
if tiempo_en_segundos >= 12 then
		image.blit(55,241,barra_guia)
		screen.print(75,246,"¿Por donde ibamos?... AH ! si los cofres, bien")
end
 
	if controls.press("l") then
    if mActual<=1 then mActual=2 else mActual = mActual - 1 end
elseif controls.press("r") then
    if mActual >=2 then mActual = 1 else mActual = mActual + 1 end
end
 
 
	if controls.up() or controls.down() or controls.left() or controls.right() then
		anim = anim + 0.1
		status = "walk"
		if math.floor(anim)>3 then
			anim = 0
		end
	else
		anim = 0
		status = "stay"
	end
 
	if controls.up() then
		guerrero_sabion.y=guerrero_sabion.y-1
		direction = "up"
	elseif controls.down() then
		guerrero_sabion.y=guerrero_sabion.y+1
		direction = "down"
	elseif controls.right() then
		guerrero_sabion.x=guerrero_sabion.x+1
		direction = "right"
	elseif controls.left() then
		guerrero_sabion.x=guerrero_sabion.x-1
		direction = "left"
	end
 
	if status=="walk" then
		guerrero_sabion[status][direction]:setframe(anim)
	end
 
	if guerrero_sabion.x<0 then
	guerrero_sabion.x=0
	elseif guerrero_sabion.x+32>480 then
	guerrero_sabion.x=480-32
end
 
if guerrero_sabion.y<0 then
	guerrero_sabion.y=0
	elseif guerrero_sabion.y+48>272 then
	guerrero_sabion.y=272-48
end
	guerrero_sabion[status][direction]:blit(guerrero_sabion.x,guerrero_sabion.y)              	
	screen.flip()
 
if controls.start() then
save()
end
 
if controls.select() then
dofile("script menu.lua")
end
end

Simplemente quiero que mi sprite colisione con los arboles,los trocos,etc y no pase por encima =(


-> Creaciones <-

Os invito a probar el lol xD

http://signup.leagueoflegends.com/?ref=50814a20894be236637679

 

Imagen de Dioni0396

bufff

if colin(guerrero_sabion,arbol) then
if direction == "left" then
guerrero_sabion.x = guerrero_sabion.x - 1
end
if direction == "up" then
guerrero_sabion.y = guerrero_sabion.y - 1
end
if direction == "down" then
guerrero_sabion.y = guerrero_sabion.y + 1
end
if direction == "right" then
guerrero_sabion.x = guerrero_sabion.x + 1
end
end


Si la colision se produce entonces se mueve?
Imagen de sisinio

.

Nau me dijo que probara con eso xD

¿Entonces que pongo?

Imagen de Dioni0396

pues yo pondria

lo primero hago una copia, y despues lo que pondria es que el sprite se pare, despues con una variable, mira mejor te dejo el code con las partes cambiadas xD:

guerrero_sabion = {}
guerrero_sabion["stay"]={}
guerrero_sabion["walk"]={}
 Choque = false
guerrero_sabion["stay"]["up"] = image.load("Imagenes/Sprites/guerrero sabion arriba.png")
guerrero_sabion["stay"]["down"] = image.load("Imagenes/Sprites/guerrero sabion abajo.png")
guerrero_sabion["stay"]["right"] = image.load("Imagenes/Sprites/guerrero sabion derecha.png")
guerrero_sabion["stay"]["left"] = image.load("Imagenes/Sprites/guerrero sabion izquierda.png")
suelo = image.load("Imagenes/suelo.png")
arbol = {img=image.load("Imagenes/Sprites/arbol.png"),x=250,y=96,w=100,h=114}   
guia = image.load("Imagenes/guia.png")
barra_guia = image.load("Imagenes/barra guia.png")
planta = image.load("Imagenes/planta.png")
troncolado = image.load("Imagenes/troncolado.png")
trocoabajo = image.load("Imagenes/trocoabajo.png")
cofre = image.load("Imagenes/cofre.png")
 
 
black=color.new(0,0,0)
 
menu = {}
menu[1] = image.load("Imagenes/submenu1.png")
menu[2] = image.load("Imagenes/submenu2.png")
 
 
options = 2
mActual = 1
 
rawset(guerrero_sabion["walk"],"up",image.loadsprite("Imagenes/Sprites/arribam.png",32,48))
rawset(guerrero_sabion["walk"],"down",image.loadsprite("Imagenes/Sprites/abajom.png",32,48))
rawset(guerrero_sabion["walk"],"right",image.loadsprite("Imagenes/Sprites/derecham.png",32,48))
rawset(guerrero_sabion["walk"],"left",image.loadsprite("Imagenes/Sprites/izquierdam.png",32,48))
 
status = "stay" 
direction = "down" 
guerrero_sabion.x = 5	
guerrero_sabion.y = 5
guerrero_sabion.w = 48
guerrero_sabion.h = 32
anim = 0
 
 
tiempo = timer.new()
tiempo:start()
 
cuenta_atras = 50 
 
 
function save()
        mydata = {
                "nick='LuaDEV'",
                "age=69",
                "watermark='Ouch'",
                "anydata='foo'",
                "foo='bar'"
        };
 
 
 
        spaces = { "DATA0", "DATA1", "DATA2" };
        saveplace = {gameid="Sabion", savenames=spaces};
        saveconfig = { 
                title="Partida guardada Sabion", 
                subtitle=os.date(), 
                details="VDEMO",
                savetext="New Savedata",
				icon0="Imagenes/ICON0.PNG"
        }
 
        done, where = savedata.save(saveplace,saveconfig,mysavedata);
        if done then return where 
        else return nil end
end
 
 
 
function colin(objeto1,objeto2)
if objeto1.x+objeto1.w > objeto2.x and objeto1.x < objeto2.x+objeto2.w and
objeto1.y +objeto1.h > objeto2.y and objeto1.y < objeto2.y + objeto2.h  then 
return true
else
return false
end
end
 
 
 
while true do
	tiempo_en_segundos = math.floor( tiempo:time() / 5000)
	controls.read()
	image.blit(0,0,suelo)
	arbol.img:blit(250,96)
	image.blit(352,160,planta)
	image.blit(288,192,planta)
	image.blit(256,192,planta)
	image.blit(128,192,planta)
	image.blit(64,192,planta)
	image.blit(32,160,planta)
	image.blit(352,32,troncolado)
	image.blit(416,32,trocoabajo)
	image.blit(384,64,cofre)
 
if colin(guerrero_sabion,arbol) then
Choque = true
Mov --Esto seria para que tu movieras el personaje, y asi choque sera false, ya que si no no se movera, esta tarea la haces tu
else
Choque = false
end
 
	if tiempo_en_segundos >= 5 then
		image.blit(5,211,guia)
		image.blit(55,241,barra_guia)
		screen.print(75,246,"Ya estoy de vuelta Zefiro,traigo noticias del castillo")
end
if tiempo_en_segundos >= 8 then
		image.blit(55,241,barra_guia)
		screen.print(75,246,"La reina Mia quiere veros cuanto antes")
end
if tiempo_en_segundos >= 10 then
		image.blit(55,241,barra_guia)
		screen.print(75,246,"Ha insistido en que acabeis vuestro entrenamiento")
end
if tiempo_en_segundos >= 12 then
		image.blit(55,241,barra_guia)
		screen.print(75,246,"Asi que sera mejor que acabemos lo mas pronto posible")
end
if tiempo_en_segundos >= 12 then
		image.blit(55,241,barra_guia)
		screen.print(75,246,"¿Por donde ibamos?... AH ! si los cofres, bien")
end
 
	if controls.press("l") then
    if mActual<=1 then mActual=2 else mActual = mActual - 1 end
elseif controls.press("r") then
    if mActual >=2 then mActual = 1 else mActual = mActual + 1 end
end
 
 
	if controls.up() or controls.down() or controls.left() or controls.right() then
		anim = anim + 0.1
		status = "walk"
		if math.floor(anim)>3 then
			anim = 0
		end
	else
		anim = 0
		status = "stay"
	end
 if Choque == false then --dfgdgfd parte cambiada.
	if controls.up() then
		guerrero_sabion.y=guerrero_sabion.y-1
		direction = "up"
	elseif controls.down() then
		guerrero_sabion.y=guerrero_sabion.y+1
		direction = "down"
	elseif controls.right() then
		guerrero_sabion.x=guerrero_sabion.x+1
		direction = "right"
	elseif controls.left() then
		guerrero_sabion.x=guerrero_sabion.x-1
		direction = "left"
	end
 end
	if status=="walk" then
		guerrero_sabion[status][direction]:setframe(anim)
	end
 
	if guerrero_sabion.x<0 then
	guerrero_sabion.x=0
	elseif guerrero_sabion.x+32>480 then
	guerrero_sabion.x=480-32
end
 
if guerrero_sabion.y<0 then
	guerrero_sabion.y=0
	elseif guerrero_sabion.y+48>272 then
	guerrero_sabion.y=272-48
end
	guerrero_sabion[status][direction]:blit(guerrero_sabion.x,guerrero_sabion.y)              	
	screen.flip()
 
if controls.start() then
save()
end
 
if controls.select() then
dofile("script menu.lua")
end
end

Imagen de NauTiluS1

Que vergüenza como no Pensé

Que vergüenza como no Pensé eso
Soy un completo }%**>% :/

Imagen de sisinio

.

Me has ayudado mucho NAU =)

Imagen de sisinio

.

Gracias ahora pruebo el code y te aviso =)

Imagen de sisinio

Error

Con la parte de movimiento te referias a esto ?

if colin(guerrero_sabion,arbol) then
Choque = true
else controls.up() or controls.down() or controls.left() or controls.right() then
        anim = anim + 0.1
        status = "walk"
        if math.floor(anim)>3 then
            anim = 0
        end
    else
        anim = 0
        status = "stay"
    else
Choque = false
end


-> Creaciones <-

Os invito a probar el lol xD

http://signup.leagueoflegends.com/?ref=50814a20894be236637679

 

Imagen de NauTiluS1

Jajaja mire mal el code de

Jajaja mire mal el code de dioni eso quiere decir que no soy un completo XXX
Prueba esto
Ir cilindrase then
Ir direction == "right" then
Direction="left"
End
If direction=="left" then
Direction="right"
End
If direction=="up" then
Direction="down"
End
If direction=="up" then
Direction"down"
End
End
Muahahaha ese si sirve


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 sisinio

.

Ir cilindrase then ? xD

Imagen de NauTiluS1

Colisión xD

Colisión xD

Imagen de Dioni0396

normal

else no lleva then!"

Imagen de sisinio

then retirado,probando de

then retirado,probando de nuevo el code

Imagen de Dioni0396

prueba este

if colin(guerrero_sabion,arbol) then
Choque = true
else 
if controls.up() or controls.down() or controls.left() or controls.right() then
        anim = anim + 0.1
        status = "walk"
        if math.floor(anim)>3 then
            anim = 0
        end
    else
        anim = 0
        status = "stay"
end
Choque = false
end

Imagen de sisinio

Funciona !!!!

Pero cuando colisiona se queda quieto y no se mueve !!

Imagen de sisinio

.

Dionni xD contesta ...

Imagen de Dioni0396

Ya te he dicho que cuando colisone

tienes TU que hacer que se mueva automaticamente 1 o 2 X a la izquierda y 1 o 2 Y hacia ariiba o abajo

Te lo he puesto expresamente en un comentario, pero no le has hecho caso.

Imagen de NauTiluS1

Probaste lo que te dije o

Probaste lo que te dije o funciona ese?

Imagen de sisinio

.

He probado el de dioni y me pasa esto, el tuyo aun no... ahora lo pruebo

¿Porque se queda parado al colisionar ?

Imagen de Dioni0396

tampoco ira.

ya lo veras.

Imagen de sisinio

.

Probando...

Imagen de sisinio

.

Siempre tiene que haber algun error =(

Imagen de -chus-

eso es

eso es por que solo están adivinando el buscar la forma XD mándame por MP ese detalle haber en que te ayudo...saludos

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.