Anuncios Google

WeaponLib

AplicacionesLUA Playersrces

v4.0

Una nueva utilidad de programación se nos une a nuestra larga lista. Esta vez se trata de WeaponLib, una librería creada por xerpi, coder de nuestra comunidad, cuya función es realizar múltiples disparos hacia multiples direcciones con la imagen que queráis. Sin duda, esta fantástica librería será muy util para muchos coders que andan liados con este tema.

Autor: xerpi (Coder de la Comunidad).

Modo de uso:

Lo primero de todo tenemos que hacer un dofile a la libreria.

dofile("weaponlib.lua")

Luego cargamos la imagen de la bala ( DEBE DE ESTAR EN HORIZONTAL):

bala = image.load("bala.png")

Luego de eso creamos el "arma":

arma = (imagen_de_la_bala,tiempo)

El primer parámetro es la imagen de la bala previamente cargada/creada, y el segundo el tiempo en milisegundos entre disparo y disparo .

Ahora inicializamos el "arma":

weapon.action(tabla,accion)

En acción va "start" o "stop".

El siguiente paso será disparar:

weapon.shoot(arma,x,y,velocidad,ángulo)

  • arma: es el arma previamente creada
  • x: coordenada x de donde va a salir la bala
  • y: coordenada y de donde va a salir la bala
  • velocidad: la velocidad que irá la bala (recomendable entre 2 y 10)
  •  ángulo: el ángulo con que irá la bala ( 0 a la derecha, 90 abajo, -90 o 270 arriba y 180 izquierda)

Por último será blitear las balas:

weapon.blit(arma)  

Si quieremos comprobar una colisión tan solo debemos hacer esto:

weapon.collision(tabla,x,y,w,h,boolean)

"x","y","w" y "h" són las coordenadas y el ancho y alto del "sitio" donde queremos colisionar. En boolean va true si quieres que al colisionar la bala desaparezca o false o un espacio vacio si no.


Este es un script de ejemplo creado por xerpi para orientaros mejor en la utilización de WeaponLib:

--Dofile a la libreria
	dofile("weaponlib.lua")
--Cargamos la imagen de la bala (podemos hacer un image.create) NOTA: LA IMAGEN DEBE DE ESTAR EN HORIZONTAL
	bala =  image.load("bala.png") --image.create(20,5,color.new(255,0,0))
--Esa función devuelve un color sin alpha aleatorio
	function random_color()
		return color.new(math.random(0,255),math.random(0,255),math.random(0,255))
	end
--Array de los enemigos
	object = {}	 
--Creamos 10 enemigos
	for i = 1, 10 do
		table.insert(object,{x=math.random(20,460), y=math.random(20,252),w=math.random(15,90),h=math.random(15,90),color=random_color()})
	end
--Variables del "personaje"
	x=240
	y=136
	ang =0 
---CREAMOS UNA NUEVA "ARMA"
	disparo =  weapon.create(bala,100)
--LA INICIAMOS JUSTO ANTES DEL BUCLE
	weapon.action(disparo,"start")
 
while true do
--Limpiamos buffer de color blanco
	screen.clear(color.new(255,255,255))
--Leemos controles
	controls.read()
--Movemos el personaje con el joystick
	if math.abs(controls.analogx())>50 then x=x+controls.analogx()/50 end
	if math.abs(controls.analogy())>50 then y=y+controls.analogy()/50 end
--Dibuja un cuadrado verde donde está nuestro "personaje" y el cañón
	draw.fillrect(x-5,y-5,10,10,color.new(0,255,0))	
	draw.line(x,y,x+math.cos(math.rad(ang))*40,y+math.sin(math.rad(ang))*40,color.new(0,0,255))
--DISPARA CON LA ARMA PREVIAMENTE CREADA
	if controls.cross() then weapon.shoot(disparo,x,y,7,ang) end
--Rotamos el "cañón" del personaje
	if controls.r() then ang = ang+2 end
	if controls.l() then ang = ang-2 end
--Dibuja los enemigos y cambia su color si hay colision con las balas
	for i =1, 10 do	
		--Dibuja enemigos
			draw.fillrect(object[i].x,object[i].y,object[i].w,object[i].h,object[i].color)
		--COMPRUEBA LA COLISIÓN
			if weapon.collision(disparo,object[i].x,object[i].y,object[i].w,object[i].h,true) then
				object[i].color = random_color()	
			end
	end
--BLITEAMOS LAS BALAS	
	weapon.blit(disparo)
---------------------------------------------------------------------
screen.print(5,5,"JoyStick: Move - R/L: Change angle - X: Shoot",color.new(255,0,0))
screen.print(5,25,"WeaponLib sample by xerpi",color.new(0,255,0))
screen.print(5,45,"Bullets in the screen: "..#disparo.bullets,color.new(255,0,255))
screen.print(430,5,"@"..screen.fps(),color.new(0,0,255))
 
if controls.select() then make_an_error() end
screen.flip()
end

Está hecho especialmente para LuaDEV, pero puedes adaptarlo facilmente a otro interprete Lua.


Weaponlib v4.0

Mejoras:

  • Re-hecha de cero.
  • Es un 50% más rápida y más optimizada.
  • Su uso es algo más sencillo.

Descargar WeaponLib v4.0   (Sólo Usuarios Registrados y Programadores).



Weaponlib v3.0

11-08-2011

Mejoras:

  • Mejorado mucho el código.
  • Ahora puede disparar en cualquier ángulo
  • Cuando colisiona devuelve también las coordenadas.

Descargar WeaponLib v3.0   (Sólo Usuarios Registrados y Programadores).


Weaponlib v1.0

Descargar WeaponLib v1.0   (Sólo Usuarios Registrados y Programadores).

4.12676
Tu voto: Ninguno Votos totales: 4.1 (142 votos)

Anuncios Google

Comentarios

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 tramosll

¿Sirve en LD4W?

¿Sirve en LD4W?

¿ O hay una adaptacion para Nintendo?

Si, sirve prfectamente. Si la

Si, sirve prfectamente. Si la vas a usar usa la que hay un comentario más abajo ya que es una versión más nueva.

Imagen de tramosll

No me funciona en LD4W me da

No me funciona en LD4W

me da error en linea 22

Ya se el problema, en LD4W no

Ya se el problema, en LD4W no hay timers xD

Si tuviera el source de LD4W le podría poner pero como no lo tengo :(

A bueno espera que se pueden hacer en Lua, ahora lo hago.

 

EDITO: ya lo teng hecho:

------------------------- Timer - (c) 2012 xerpi -------------------------
 
function os.mclock() --time in miliseconds
	return os.clock()*1000;
end
 
timer = {};
function timer:new() 
	local obj =  {timer_running = false, lastTime = os.mclock(), pauseTime = os.mclock()};
	function obj:start()
		if not self.timer_running then
			self.timer_running = true;
			self.lastTime = self.lastTime + (os.mclock() - self.pauseTime);
		end
	end
	function obj:stop()
		if self.timer_running == true then
			self.timer_running = false;
			self.pauseTime = os.mclock();
		end
	end
	function obj:reset()
		self.lastTime = os.mclock();
		self.pauseTime = self.lastTime;
	end
	function obj:osc()
		if self.timer_running == true then
			--self.stop();
			self.timer_running = false;
			self.pauseTime = os.mclock();
		else
			--self.start();
			self.timer_running = true;
			self.lastTime = self.lastTime + (os.mclock() - self.pauseTime);
		end
	end
	function obj:running()
		return self.timer_running;
	end
	function obj:time()
		if self.timer_running == true then
			return os.mclock() - self.lastTime;
		else
			return self.pauseTime - self.lastTime;
		end
	end
	return obj;
end

Ejemplo de como se usa (solo debes hacer dofile("timer.lua") en el weaponlib y ya funcionará):

dofile("timer.lua")
 
cont = timer.new();
 
cont:start();
while true do
	controls.read();
	if controls.press("cross") then
		cont:osc();
	end
	if controls.press("circle") then
		cont:reset();
	end
 
	screen.print(5, 5, "Time: "..cont:time());
	screen.print(5, 25, "Running: "..tostring(cont:running()));
	screen.print(5, 45, "Native Lua multiplatform timer by xerpi");
	screen.print(5, 65, "X: Pause/Start\nO: Reset");
	if controls.select() then LOL() end
	screen.flip();
end

Imagen de tramosll

Grax amigo, ahora lo pruebo

Grax amigo, ahora lo pruebo

Imagen de tramosll

Espera, lo unico que debo

Espera, lo unico que debo hacer es copiar tu code, ponerlo en un timer.lua y hacer un dofile y funcionara???

Porque yo hice esto mira:

------------------------- WeaponLib v4.0 - (c) 2011 xerpi -------------------------
dofile("timer.lua")
weapon = {};
function weapon:new(image,time)
    local obj = {img = image, time = time,bullets={}, nbullets=0,time_act = timer.new(), running = false,current=1,dec=0};
    function obj:blit()
        for k,v in ipairs(self.bullets) do       
            self.img:rotate(v.ang);
            self.img:blit(v.x,v.y);
        end
    end
    function obj:start()
        self.running = true;
        self.time_act:start();
    end
    function obj:stop()
        self.running = false;
        self.time_act:stop();
        self.time_act:reset();
    end
    function obj:shoot(x,y,vel,ang)
        if self.running then
            if self.time_act:time() > self.time then
                table.insert(self.bullets,{vel=vel,x=x,y=y,ang=ang,inc_x = math.cos(math.rad(ang)),inc_y = math.sin(math.rad(ang))});   
                self.time_act:reset();
            end
        else
            self:start();
        end
    end
    function obj:move()
        for k,v in ipairs(self.bullets) do
            v.x = v.x + v.inc_x * v.vel;
            v.y = v.y + v.inc_y * v.vel;
            if v.x > 480 or v.x < 0 or v.y > 272 or v.y < 0 then table.remove(self.bullets,k); end
        end
    end
    function obj:collision(x,y,w,h,deadcollision)
        for k,v in ipairs(self.bullets) do
            if v.x >= x and v.x <= x+w and
               v.y >= y and v.y <= y+h then
                    if deadcollision then
                        table.remove(obj.bullets,k);
                    end   
                    return true;               
            end
        end
    end   
    return obj;
end

Como ves lo unico que hice fue agregar el dofile al principio del codigo, esta bien hecho??

Si, perfecto.

Si, perfecto.

Imagen de tramosll

Error : 2 Error :

Error : 2

Error : weaponlib.lua:23: attempt to compare nil with number

No funcionaTriste

¿Que hay en esta linea?

¿Que hay en esta linea?

Imagen de tramosll

23          if

23          if self.time_act:time() > self.time then

Te dejo el if completo:

    function obj:shoot(x,y,vel,ang)
        if self.running then
            if self.time_act:time() > self.time then
                table.insert(self.bullets,{vel=vel,x=x,y=y,ang=ang,inc_x = math.cos(math.rad(ang)),inc_y = math.sin(math.rad(ang))});   
                self.time_act:reset();
            end
        else
            self:start();
        end
    end

Hiciste el dofile al

Hiciste el dofile al timer.lua?

Lo hizo

Según el code de ahí arriba, lo hace en la segunda línea

 

Saludos!

Imagen de tramosll

Es raro, porque hice el

Es raro, porque hice el dofile al timer.lua, quizas hice algo mal, no me puedes hacer un zip con el timer.lua ya cargado?? porque yo estoy haciendo algo mal.

Ya lo he

Imagen de tramosll

No funcioooonaaaaa!!!!! A

Enfadado No funcioooonaaaaa!!!!!

A ver.. a ver... te dejo mi script junto con el timer.lua y la weaponlib.lua para a ver si encuentras algo.

http://www.mediafire.com/?r8xczxbb7n78r7w

Ya vi el fallo, al crear la

Ya vi el fallo, al crear la "weapon" debes hacer weapon.new con un solo punto ".", una vez creada las siguientes funciones van con dos puntos ":".

O sea debes cambiar eso así:

arma1 = weapon.new{bala,2000}
arma2 = weapon.new{bala,2500}
arma3 = weapon.new{bala,1200}
arma4 = weapon.new{bala,3000}

 

Por cierto el arma:blit debería ir dentro del while pero fuera de cualquier condición.

Imagen de tramosll

Aaaaaa!!!! No funciona!!!! Me

EnfadadoEnfadadoEnfadadoEnfadadoEnfadadoEnfadadoEnfadadoEnfadadoEnfadadoEnfadadoEnfadadoEnfadadoEnfadadoEnfadadoEnfadadoEnfadado

Aaaaaa!!!! No funciona!!!!

Me sigue dando error en la weaponlib.lua linea 24Llora

Espera mañana y lo pruebo en

Espera mañana y lo pruebo en la wii.

Imagen de tramosll

Gracias. Oye, que le sucedio

Gracias.

Oye, que le sucedio a Chimecho??

Bueno al final ya vi el error

Bueno al final ya vi el error xD

Fíjate aqui: arma1 = weapon.new{bala,2000}

que para llamar a la función usas "{" y "}", debes usar los paréntesis normales.

Imagen de tramosll

Bueno muchas gracias. Me lo

Bueno muchas gracias.Guiño

Me lo has resuelto perfecto =D

Oye, el link del xKeyBoard esta caido.

Imagen de tramosll

Ok xerpi porque la v3.0 me da

Ok xerpi porque la v3.0 me da un error en la linea 67Triste

Probare con la v4

Saludos!

Nueva versión

Nueva versión 4.0

  • Re-hecha de cero
  • Es un 50% más rápida
  • Está mucho más optimizada
  • Su uso es algo más sencillo

DESCARGA: http://pastebin.com/raw.php?i=K6hmt44j


USO:

Lo primero de todo tenemos que hacer un dofile a la libreria.

dofile("weaponlib.lua")

Luego cargamos la imagen de la bala ( DEBE DE ESTAR EN HORIZONTAL):

 bala = image.load("bala.png")

Luego de eso creamos el "arma":

disparo =  weapon:new(bala,50);

El primer parámetro es la imagen de la bala previamente cargada/creada, y el segundo el tiempo en milisegundos entre disparo y disparo .

Ahora inicializamos el "arma":

disparo:start();

El siguiente paso será disparar:

disparo:shoot(x,y,velocidad,ángulo)

  • disparo: es el arma previamente creada
  • x: coordenada x de donde va a salir la bala
  • y: coordenada y de donde va a salir la bala
  • velocidad: la velocidad que irá la bala (recomendable entre 2 y 10)
  •  ángulo: el ángulo con que irá la bala ( 0 a la derecha, 90 abajo, -90 o 270 arriba y 180 izquierda)

Por último será blitear las balas:

disparo:blit()

Si quieremos comprobar una colisión tan solo debemos hacer esto:

disparo:collision(x,y,w,h,boolean)

"x","y","w" y "h" són las coordenadas y el ancho y alto del "sitio" donde queremos colisionar. En boolean va true si quieres que al colisionar la bala desaparezca o false o un espacio vacio si no.

SNIPPET DE EJEMPLO:

--Dofile a la libreria
	dofile("weaponlib.lua")
--Cargamos la imagen de la bala (podemos hacer un image.create) NOTA: LA IMAGEN DEBE DE ESTAR EN HORIZONTAL
	bala =  image.load("bala.png") --image.create(20,5,color.new(255,0,0))
--Esa función devuelve un color sin alpha aleatorio
	function random_color()
		return color.new(math.random(0,255),math.random(0,255),math.random(0,255))
	end
--Array de los enemigos
	object = {}	 
--Creamos 10 enemigos
	for i = 1, 10 do
		table.insert(object,{x=math.random(20,460), y=math.random(20,252),w=math.random(15,90),h=math.random(15,90),color=random_color()})
	end
--Variables del "personaje"
	x=240
	y=136
	ang =0 
---CREAMOS UNA NUEVA "ARMA"
	disparo =  weapon:new(bala,50);
--LA INICIAMOS JUSTO ANTES DEL BUCLE
	disparo:start();
 
while true do
--Limpiamos buffer de color blanco
	screen.clear(color.new(255,255,255))
--Leemos controles
	controls.read()
--Movemos el personaje con el joystick
	if math.abs(controls.analogx())>50 then x=x+controls.analogx()/50 end
	if math.abs(controls.analogy())>50 then y=y+controls.analogy()/50 end
--Dibuja un cuadrado verde donde está nuestro "personaje" y el cañón
	draw.fillrect(x-5,y-5,10,10,color.new(0,255,0))	
	draw.line(x,y,x+math.cos(math.rad(ang))*40,y+math.sin(math.rad(ang))*40,color.new(0,0,255))
--DISPARA CON LA ARMA PREVIAMENTE CREADA
	if controls.cross() then disparo:shoot(x,y,7,ang) end
--Rotamos el "cañón" del personaje
	if controls.r() then ang = ang+2 end
	if controls.l() then ang = ang-2 end
--Dibuja los enemigos y cambia su color si hay colision con las balas
	for i =1, 10 do	
		--Dibuja enemigos
			draw.fillrect(object[i].x,object[i].y,object[i].w,object[i].h,object[i].color)
		--COMPRUEBA LA COLISIÓN
			if disparo:collision(object[i].x,object[i].y,object[i].w,object[i].h,true) then
				object[i].color = random_color()	
			end
	end
--BLITEAMOS LAS BALAS
	disparo:move();
	disparo:blit();
---------------------------------------------------------------------
screen.print(5,5,"JoyStick: Move - R/L: Change angle - X: Shoot",color.new(255,0,0))
screen.print(5,25,"WeaponLib sample by xerpi",color.new(0,255,0))
screen.print(5,45,"Bullets in the screen: "..#disparo.bullets,color.new(255,0,255))
screen.print(430,5,"@"..screen.fps(),color.new(0,0,255))
 
if controls.select() then make_an_error() end
screen.flip()
end

 

Ya hay la 4.0 desde hace

Ya hay la 4.0 desde hace tiempo.

El link de descarga de la v3

El link de descarga de la v3 está mal, se descarga la 1.5.

Imagen de markef

Genial :D

Gran librería y gran coder ;)

Imagen de daniel252

gracias

esta bien pero no entendi en todo

Imagen de jorge_97

By Jorge_97

wtf:

Fecha en la que xerpi subio la V3: Sáb, 2011-07-30 12:47

Fecha en la que subieron esto a portada: Jue, 2011-08-11 11:43

Buen aporte!! Un salu2 a todos


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de _-Viciuz-_

supongo

tu lo harias mejor no?

Imagen de jorge_97

By Jorge_97

La verdad nunca lo sabremos...

Solo digo que hace falta un poco mas de velocidad (Critica) Siento que este no sea el lugar adecuado para decir esto pero me da pereza crear otro tema...

PD: Cuando creas algo y ya tienes por ejemplo la version 2.0 y aun no han subido la V1.0 ... molesta mucho xD (Ej:Lethal Shot)

Salu2 espero no ofender a nadie


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Vic1717

Perdon Patron

Tambien tengo vida y otras prioridades.

Si prefieres ponlas en el foro aportes de usuarios.

PD: ahora me pongo a actualizar noticias...

Fin del off-topic.


Imagen de jorge_97

By Jorge_97

No eres el unico editor no te des por aludido...

Yo tambien soy humano

Salu2

Imagen de Vic1717

...

Y por eso te digo, si me lo mandas por MP solo yo puedo hacerlo, si lo pones en el foro de aportes cualquier editor lo hara.

Imagen de barney77

Si tanto te urge que vean tus

Si tanto te urge que vean tus creaciones, postealas en el foro mientras suban a Portada, o lo más justo de todo, postearla en el foro y que se gane la portada..
Salu2.

Imagen de jorge_97

By Jorge_97

Interesante... Muy interesante

 

Imagen de Dioni0396

Con solo decirte

que en cada noticia, tienes que tener una limpieza y orden extrictas.... Y renombrar los archivos, crear una cabezera "apetitosa", etc,etc,etc.

Ademas, yo tambien espero que publiquen lo mio. Pero tengo paciencia.

Imagen de jorge_97

By Jorge_97

Ya lo se xD y ademas realizan trabajos no remunerados que eso cuenta ;D

Salu2.

PD: Grandiosa esta Libreria sin duda es la mejor!!

Imagen de Nevado0

Si lo dices por la

Si lo dices por la tardanza:

Fecha en la que xerpi subio la V3: Sáb, 2011-07-30 12:47

Fecha en la que se actualizo la lib : Dom, 2011 -07 -31 16:26

Fecha en la que subieron esto a portada: Jue, 2011-08-11 11:43

Salu3!


 Click en la imagen si kieres un avatar o una firma tan espectacular como los mios =P.

Psp 2001 Gen d3 + Memory stick 4 gb

Ps3 Fat 60GB + CFW Rebug 3.55 + Disco duro externo 250 GB+ Multiman

Imagen de Dioni0396

Los editores

tienen bastante trabajo aunque no lo parezca, ademas de que una libreria de lua es menos urgente que una actualizacion de firmware.

Por eso la tardanza.

Imagen de jorge_97

by jorge_97

Ya, no quiero criticar el trabajo de nadie ni mucho menos ademas de que lo hacen sin animo de lucro...

Pero es cierto que llevan un poco de tardanza...

Salu4


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de barney77

Más bien dicho yo diría que

Más bien dicho yo diría que fuerón rapidos, según la fecha que dá nevado, ya estaba actualizada un día despues de que Xerpi posteo la V3, recuerda, que cada noticia que pasa a portada, primero pasa por doscificación, y se queda ahí de acuerdo a su importancía.

Salu2!.

Imagen de anxoganso

Como si esperas 3 meses si te

Como si esperas 3 meses si te interesa miras la noticia de vez en cuando y listo y la gente tiene mas k hacer xd xd no es una critica solo un comentario


Imagen de Dioni0396

Te repito

Que una lib tarda mas en actualizarse que un HB, aunque ya dijeron que se actualizo y no se publico. Asi que la espera era solo de esperar a la portada pero la lib ya estaba ahi.

Versión

Versión 3.

Mejoras:

  • Mejorado mucho el código.
  • Ahora puede disparar en cualquier ángulo
  • Cuando colisiona devuelve también las coordenadas.

Como usarlo:

Lo primero de todo tenemos que hacer un dofile a la libreria.

dofile("weaponlib.lua")

Luego cargamos la imagen de la bala ( DEBE DE ESTAR EN HORIZONTAL):

bala = image.load("bala.png")

Luego de eso creamos el "arma":

disparo =  weapon.create(imagen_de_la_bala, tiempo)

El primer parámetro es la imagen de la bala previamente cargada/creada, y el segundo el tiempo en milisegundos entre disparo y disparo .

Ahora inicializamos el "arma":

weapon.action(arma,accion)

En acción va "start" o "stop".

El siguiente paso será disparar:

weapon.shoot(arma, x, y, velocidad, ángulo)

  • arma: es el arma previamente creada
  • x: coordenada x de donde va a salir la bala
  • y: coordenada y de donde va a salir la bala
  • velocidad: la velocidad que irá la bala (recomendable entre 2 y 10)
  •  ángulo: el ángulo con que irá la bala ( 0 a la derecha, 90 abajo, -90 o 270 arriba y 180 izquierda)

Por último será blitear las balas:

 weapon.blit(arma)

Si quieremos comprobar una colisión tan solo debemos hacer esto:

weapon.collision(tabla,x,y,w,h,boolean)

"x","y","w" y "h" són las coordenadas y el ancho y alto del "sitio" donde queremos colisionar. En boolean va true si quieres que al colisionar la bala desaparezca o false o un espacio vacio si no.

 

Descarga weaponlib v3 + sample

 

NO RESPONDAIS EN ESE COMENTARIO

 

Imagen de bauldescargas

Lo mirare   

Lo mirare 

 

Si la vas a usar, usa la que

Si la vas a usar, usa la que hay unos comentarios mas abajo.

Imagen de NauTiluS1

Ya funciona con la libreria

Ya funciona con la libreria animlib? osea que la bala sea una animacion?

Imagen de NauTiluS1

Forma sencilla

--Creo mi unico disparo
dofile("weaponlib.lua")
nau = {img=image.create(xxxxx),xxxxxxxx}
 
disparo = weapon.create(nau,velocidad,tiempo)
 
weapon.action(disparo,"start")
 
--Hago una variable de direccion arriba
 
tilus = "arriba"
 
while true do
controls.read()
 
if tilus == "arriba" then
if controls.cross() then
weapon.shoot(disparo,direccion-donde-sale-el-disparo-en-la-parte-de-arriba,direccion-donde-sale-el-disparo-en-la-parte-de-arriba,"up")
end
end
 
if tilus == "abajo" then
if controls.cross() then
weapon.shoot(disparo,direccion-donde-sale-el-disparo-en-la-parte-de-abajo,direccion-donde-sale-el-disparo-en-la-parte-de-abajo,"down")
end
end
 
if controls.up() then
xxxx.y = xxxx.y - 1
tilus = "arriba"
end
 
if controls.down() then
xxx.y = xxxx.y + 1
tilus = "abajo"
end
weapon.blit(disparo)
screen.flip()
end

Yo use algo parecido en shooter soccer.

En teoria debe 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

Mira unos cuantos comentarios

Mira unos cuantos comentarios más abajo y verás una forma mucho más rápida y sencilla, por cierto os recomiendo no usar la lib de la noticia, es mejor la que he puesto unos comentarios más abajo.

Imagen de bauldescargas

Perodonen mi ignorancia pero

Perodonen mi ignorancia pero esk no entiendo para que sirve este hombrew y eso de disparar...

Explicarmelo .

Gracias por adelantao

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.