Anuncios Google

AYUDA en PROGRAMACION LUA para PsP

Por favor borrar este hilo.

Esta pregunta es obsoleta

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.

ayuda con este codigo de lua

hola buenas noches necesito ayuda con este codigo no puedo hacer que el cubo blanco cuando salte ensima del cubo verde salte como si estubiera en el suelo porfavor ayudaaaaaaaaaaaa. y grasias alos q puedan ayudarme y los q no puendan....?

ACA LES DEJO EL CODIGO PRUEBENLO EN EL EMULADOR DE LUA PARA PC O EN EL PSP 3000 QUE ES EL Q TENGO O EN CUALQUIER PSP ADIOS....?

 

--Creamos los Colores.
verde=Color.new(0,255,0)
blanco = Color.new(255,255,255)
 
--Creamos el suelo.
suelo = Image.createEmpty(480,10)
suelo:clear(verde)
 
--Creamos el bloque.
bloque1 = Image.createEmpty(32,32)
bloque1:clear(verde)
 
personaje1 = Image.createEmpty(32,32)
personaje1:clear(blanco)
 
 
--Definicion de variables.
personajeAltura = 32
personajeAnchura = 32
 
--Array del bloque, con sus tres elementos.
Bloque = {}
Bloque[1] = { x = 100, y = 200, Altura = bloque1:height(), Anchura = bloque1:width() }
Bloque[2] = { x = 300, y = 200, Altura = bloque1:height(), Anchura = bloque1:width() }
Bloque[3] = { x = 200, y = 200, Altura = bloque1:height(), Anchura = bloque1:width() }
 
 
--Array del personaje.
personaje = { x = 50, y = 50 }
personaje.x = 10
personaje.y = 20
personaje.w = 50
personaje.h = 20
 
personaje.gravedad = 230
personaje.y = 230
personaje.x = 50
personaje.velocidadSalto = 10
personaje.estadoSalto = "suelo"
personaje.salto = "suelo"
 
--Bucle principal
while true do
    pad = Controls.read()
    screen:clear()
if personaje.x >= 480  then ---Codigo a realizar---
    personaje.x = personaje.x - 480
end
if personaje.x <= - 40   then ---Codigo a realizar---
personaje.x = personaje.x + 480
end
if personaje.y >= 272  then ---Codigo a realizar---
personaje.y = personaje.y - 270
end
if personaje.y <=  0   then ---Codigo a realizar---
personaje.y = personaje.y - 0
end
 
    if pad:left() then
        personaje.x = personaje.x - 2
    end
    if pad:right() then
        personaje.x = personaje.x + 2
    end
 
    if pad:cross() and personaje.estadoSalto == "suelo" then
        personaje.estadoSalto = "saltando"
    end
 
    if personaje.estadoSalto == "saltando" then
        personaje.velocidadSalto = personaje.velocidadSalto - 0.5
        personaje.gravedad = personaje.gravedad - personaje.velocidadSalto
    end
 
    if personaje.velocidadSalto < 0 then
        personaje.estadoSalto = "cayendo"
    end
 
    if personaje.gravedad < 230 and personaje.estadoSalto == "cayendo" then
        personaje.velocidadSalto = personaje.velocidadSalto + 0.5
        personaje.gravedad = personaje.gravedad + personaje.velocidadSalto
    end
 
    if personaje.gravedad == 230 then
        personaje.velocidadSalto = 10
        personaje.estadoSalto = "suelo"
    end
 
    if personaje.gravedad > 230 then personaje.gravedad = 230 end
 
    personaje.y = personaje.gravedad
 
    screen:blit(personaje.x,personaje.y,personaje1)
    screen:clear()
    screen:blit(0,263,suelo)
 
    screen:print(10,10,"X: "..personaje.x.." Y: "..personaje.y,verde)
    screen:print(10,20,"estadoSalto: "..personaje.estadoSalto,verde)
 
--Funcion que comprueba si se produce alguna colisión.
function comprobarColision(object)
   if (personaje.x + personajeAnchura > object.x) and (personaje.x < object.x + object.Anchura) and (personaje.y + personajeAltura > object.y) and (personaje.y < object.y + object.Altura) then
      personaje.x = oldx
      personaje.y = oldy
   end
end
 
 
--Comprobamos si hay colisión para cada bloque.
comprobarColision(Bloque[1])
comprobarColision(Bloque[2])
comprobarColision(Bloque[3])
 
--Muestra el personaje en pantalla.
screen:blit(personaje.x,personaje.y,personaje1)
 
 
-- Variables que almacenan la posicion del personaje al comienzo de cada bucle.
oldx = personaje.x
oldy = personaje.y
 
 
--Muestra los tres bloques en pantalla.
for a = 1,3 do
screen:blit(Bloque[a].x,Bloque[a].y,bloque1)
end
 screen.waitVblankStart()
screen.flip()
end


luis

Imagen de Dioni0396

Aqui tu error

personaje = { x = 50, y = 50 }
personaje.x = 10
personaje.y = 20
personaje.w = 50
personaje.h = 20
 
personaje.gravedad = 230
personaje.y = 230
personaje.x = 50
personaje.velocidadSalto = 10
personaje.estadoSalto = "suelo"
personaje.salto = "suelo"

Estas especificando 3 veces la X y la Y y por eso personaje.gravedad no funciona.

ayuda con este codigo de lua

hola gracias por ayudarme a limpiar mi codigo pero no e podido hacer que el personaje salte como en el suelo osea q brinque ala misma distacia q en el suelo.

Aca les dejo el codigo remodelado.

 

--Creamos los Colores.
verde=Color.new(0,255,0)
blanco = Color.new(255,255,255)
 
--Creamos el suelo.
suelo = Image.createEmpty(480,10)
suelo:clear(verde)
 
--Creamos el bloque.
bloque1 = Image.createEmpty(32,32)
bloque1:clear(verde)
 
personaje1 = Image.createEmpty(32,32)
personaje1:clear(blanco)
 
 
--Definicion de variables.
personajeAltura = 32
personajeAnchura = 32
 
--Array del bloque, con sus tres elementos.
Bloque = {}
Bloque[1] = { x = 100, y = 200, Altura = bloque1:height(), Anchura = bloque1:width() }
Bloque[2] = { x = 300, y = 200, Altura = bloque1:height(), Anchura = bloque1:width() }
Bloque[3] = { x = 200, y = 200, Altura = bloque1:height(), Anchura = bloque1:width() }
 
 
--Array del personaje.
personaje = {}
personaje.gravedad = 230
personaje.y = 0
personaje.x = 50
personaje.velocidadSalto = 10
personaje.estadoSalto = "suelo"
 
--Bucle principal
while true do
	pad = Controls.read()
	screen:clear()
if personaje.x >= 480  then ---Codigo a realizar---
    personaje.x = personaje.x - 480
end
if personaje.x <= - 40   then ---Codigo a realizar--- 
personaje.x = personaje.x + 480
end
if personaje.y >= 272  then ---Codigo a realizar--- 
personaje.y = personaje.y - 270 
end
if personaje.y <=  0   then ---Codigo a realizar--- 
personaje.y = personaje.y - 0
end
 
	if pad:left() then
		personaje.x = personaje.x - 2
	end
	if pad:right() then
		personaje.x = personaje.x + 2
	end
 
	if pad:cross() and personaje.estadoSalto == "suelo" then
		personaje.estadoSalto = "saltando"
	end
 
	if personaje.estadoSalto == "saltando" then
		personaje.velocidadSalto = personaje.velocidadSalto - 0.5
		personaje.gravedad = personaje.gravedad - personaje.velocidadSalto
	end
 
	if personaje.velocidadSalto < 0 then
		personaje.estadoSalto = "cayendo"
	end
 
	if personaje.gravedad < 230 and personaje.estadoSalto == "cayendo" then
		personaje.velocidadSalto = personaje.velocidadSalto + 0.5
		personaje.gravedad = personaje.gravedad + personaje.velocidadSalto
	end
 
	if personaje.gravedad == 230 then
		personaje.velocidadSalto = 10
		personaje.estadoSalto = "suelo"
	end
 
	if personaje.gravedad > 230 then personaje.gravedad = 230 end
 
	personaje.y = personaje.gravedad
 
	screen:blit(personaje.x,personaje.y,personaje1)
 
	screen:blit(0,263,suelo)
 
	screen:print(10,10,"X: "..personaje.x.." Y: "..personaje.y,verde)
	screen:print(10,20,"estadoSalto: "..personaje.estadoSalto,verde)
 
--Funcion que comprueba si se produce alguna colisión.
function comprobarColision(object)
   if (personaje.x + personajeAnchura > object.x) and (personaje.x < object.x + object.Anchura) and (personaje.y + personajeAltura > object.y) and (personaje.y < object.y + object.Altura) then
      personaje.x = oldx
      personaje.y = oldy
   end
   end
 
 
--Comprobamos si hay colisión para cada bloque.
comprobarColision(Bloque[1])
comprobarColision(Bloque[2])
comprobarColision(Bloque[3])
 
 
-- Variables que almacenan la posicion del personaje al comienzo de cada bucle.
oldx = personaje.x
oldy = personaje.y
 
--Muestra los tres bloques en pantalla.
for a = 1,3 do
screen:blit(Bloque[a].x,Bloque[a].y,bloque1)
end
 screen.waitVblankStart()
screen.flip()
end


luis

Imagen de Dioni0396

El problema

es que el personaje.gravedad debe ser el mismo numero que personaje.y

Te voy a dar el code, pero aprendetelo bien:

--Creamos los Colores.
verde=Color.new(0,255,0)
blanco = Color.new(255,255,255)
 
--Creamos el suelo.
suelo = Image.createEmpty(480,10)
suelo:clear(verde)
 
--Creamos el bloque.
bloque1 = Image.createEmpty(32,32)
bloque1:clear(verde)
 
personaje1 = Image.createEmpty(32,32)
personaje1:clear(blanco)
 
 
--Definicion de variables.
personajeAltura = 32
personajeAnchura = 32
 
--Array del bloque, con sus tres elementos.
Bloque = {}
Bloque[1] = { x = 100, y = 200, Altura = bloque1:height(), Anchura = bloque1:width() }
Bloque[2] = { x = 300, y = 200, Altura = bloque1:height(), Anchura = bloque1:width() }
Bloque[3] = { x = 200, y = 200, Altura = bloque1:height(), Anchura = bloque1:width() }
 
 
--Array del personaje.
personaje = {}
personaje.gravedad = 230
personaje.y = 230
personaje.x = 50
personaje.velocidadSalto = 10
personaje.estadoSalto = "suelo"
 
--Bucle principal
while true do
	pad = Controls.read()
	screen:clear()
if personaje.x >= 480  then ---Codigo a realizar---
    personaje.x = personaje.x - 480
end
if personaje.x <= - 40   then ---Codigo a realizar--- 
personaje.x = personaje.x + 480
end
if personaje.y >= 272  then ---Codigo a realizar--- 
personaje.y = personaje.y - 270 
end
if personaje.y <=  0   then ---Codigo a realizar--- 
personaje.y = personaje.y - 0
end
 
	if pad:left() then
		personaje.x = personaje.x - 2
	end
	if pad:right() then
		personaje.x = personaje.x + 2
	end
 
	if pad:cross() and personaje.estadoSalto == "suelo" then
		personaje.estadoSalto = "saltando"
	end
 
	if personaje.estadoSalto == "saltando" then
		personaje.velocidadSalto = personaje.velocidadSalto - 0.5
		personaje.gravedad = personaje.gravedad - personaje.velocidadSalto
	end
 
	if personaje.velocidadSalto < 0 then
		personaje.estadoSalto = "cayendo"
	end
 
	if personaje.gravedad < 230 and personaje.estadoSalto == "cayendo" then
		personaje.velocidadSalto = personaje.velocidadSalto + 0.5
		personaje.gravedad = personaje.gravedad + personaje.velocidadSalto
	end
 
	if personaje.gravedad == 230 then
		personaje.velocidadSalto = 10
		personaje.estadoSalto = "suelo"
	end
 
	if personaje.gravedad > 230 then personaje.gravedad = 230 end
 
	personaje.y = personaje.gravedad
 
	screen:blit(personaje.x,personaje.y,personaje1)
 
	screen:blit(0,263,suelo)
 
	screen:print(10,10,"X: "..personaje.x.." Y: "..personaje.y,verde)
	screen:print(10,20,"estadoSalto: "..personaje.estadoSalto,verde)
 
--Funcion que comprueba si se produce alguna colisión.
function comprobarColision(object)
   if (personaje.x + personajeAnchura > object.x) and (personaje.x < object.x + object.Anchura) and (personaje.y + personajeAltura > object.y) and (personaje.y < object.y + object.Altura) then
      personaje.x = oldx
      personaje.y = oldy
   end
   end
 
 
--Comprobamos si hay colisión para cada bloque.
comprobarColision(Bloque[1])
comprobarColision(Bloque[2])
comprobarColision(Bloque[3])
 
 
-- Variables que almacenan la posicion del personaje al comienzo de cada bucle.
oldx = personaje.x
oldy = personaje.y
 
--Muestra los tres bloques en pantalla.
for a = 1,3 do
screen:blit(Bloque[a].x,Bloque[a].y,bloque1)
end
 screen.waitVblankStart()
screen.flip()
end

No se si estara correcto, por favor compruebalo ya que no uso LuaHM

ayuda con este codigo de lua

hola grasias portu ayuda telo agradesco, pero no puedo saber si funciona porque no puedo hacer que el persnaje se quede en cima del bloque verde porfavor ayudame soy novato y ademas me falta muchoooooooooooooo por aprender

Grasias  portu ayuda de nuevo............


luis

Imagen de Chimecho

entonces...

podrías empezar por lo fácil, primero haciendo que se mueva un personaje, luego haciendo que salte, luego que se mueva mientras salte... etc.. hasta que tengas tu juego funcionando con todo lo que quieres.

Y dioni, si vas a dar code, explica que hace línea por línea, o mejor no des code y deja que aprenda, que bastantes dudas resueltas hay, el resto es imaginación del programador.



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

grasias por tu colaboracion

grasias alos que me ayudaron y alos que no

ya entendi todo

programacion lua player HM

hola necesito ayuda con esto, como hacer para crear una colicion entre un personaje y un bloque

 

LuaPlayerHM

hola lo siento lo que quise decir es como definir los comandos de LuaPlayerHM por ejemplo

System.currentDirectory()  
System.listDirectory()  
System.createDirectory()  
System.removeDirectory()  
System.removeFile() 
 
porque los defino de la siguiente manera y no me sale

yo creo que como los estoy definiendo esta mal hono se que hacer

supongamos que quiero crear un reproductor de musica pero deve tener un explorador de archivos

entonces comienso acrear el xplorador pero no puedo pasar de definir los comandos

--creo una variable que defina el codigo

directorio = System.currentDirectory()

bueno hay me quede en definirlo

ayuda porfavor selo agradesere de corazon lo necesito para avansar en programacion lua y disculpen tanta preguntadera pero quiero aprender para colaborar ala scenabeta psp gracias

 

 

 


luis

Imagen de Kenta15

Pero a que lua tu buscas

Pero a que lua tu buscas hacer el homebrew? en Lua DeV oh Lua HM??
En avanzada en Lua DeV cambian los comandos si quieres puedes ver la documentacion(lo cual no tengo en mano en este momento pero algun otro te lo puede pasar)


 ODIO ser Bipolar... ME ENCANTA!! D:

     

     Twitter       Facebook      WebPage

Imagen de NauTiluS1

Sobre el scrool 2D dejé un

Sobre el scrool 2D dejé un tutorial "[TUTORIAl] Scrool 2D"

grasias porla ayuda

Te agradesco tu ayuda me as facilitado la vida a por sierto como puedo definir las funciones de lua para psp como las funciones del systema y disculpa las molestias pero lo nesecito para mi homebrew


luis

Imagen de barney77

Funciones del sistema, mm...

Funciones del sistema, mm... en que lua estas programando? y que tipo de funciones necesitas?.

Imagen de zerozelta

en los tutoriales que leiste

en los tutoriales que leiste no vienen ese tipo de cosas porque indirectamente ya te dicen como hacer todo, solo es cuestion de analizar lo que tienes y manejarlo a tu conveniencia.

tu dices que quieres que la camara siga tu personage, entonses tu personage debe ser un objeto, un "objeto" se define con un array de esta manera:

objeto = {}

suponiendo que tengas tu objeto, ahora necesitas darle sus caracteristicas, puedes hacerlo de dos maneras:

---- Manera 1
objeto = {x = 10 , y = 20 , w = 50, h = 20 }
 
---- Manera 2
objeto = {}
objeto.x = 10
objeto.y = 20 
objeto.w = 50
objeto.h = 20

de la manera 1 te ahorras mas lineas, pero hay gente que le gusta manejar el segundo metodo

bueno ahora que ya tienes tu objeto (esto ya debiste de haverlo visto en los tutoriales), es hora de manejarlo

tus herramientas son estas:

  1. objeto que elaboraste
  2. conocimiento de las dimenciones de la pantalla del PSP (480 x 272)

solo tienes que hacer que la cuando el objeto llege al limite de la pantalla realize cierta funcion( para saver que el objeto lego a la orilla es muy facil, supongo que lo sabes pero aún asi lo redactaré)

if objeto.x >= 480  then ---Codigo a realizar--- end
if objeto.x <= 0     then ---Codigo a realizar--- end
if objeto.y >= 272  then ---Codigo a realizar--- end
if objeto.y <= 0     then ---Codigo a realizar--- end

en cada objeto tenemos los ejes de localisacion (generalmente llamados por X e Y) con estos nos guiaremos para controlas la posicion del objeto en la pantalla

ahora, para lo que creo que quieres puedes usar un fondo, y cuando el objeto toque el borde de lapantalla podrás mover el fondo en direccion opuesta, para hacer el efecto de que el objeto se desplaza y la pantalla lo sigue.

 

en todos los tutoriales bienen herramientas muy utiles, que aunqe no te digan como hacer cada cosa, puedes usarlas para crear tu propio metodo, de eso se trata la programacion (de crear xD)

espero te sirva de algo saludos

 


ayuda lua playerHM

hola loque necesito es hacer un homebrew que use las funciones del systema en luaplayerHM

 

Imagen de barney77

Tomando como referencia el

Tomando como referencia el ejemplo de zerozelta, no tendrás ningún inconveniente :), ya que los if's, la forma de definir los arrays, el uso de coordenadas, entre otras cosas, son iguales en ambos Lua's(HH y DEV).

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.