Programación
Índice­Portal­FAQ­Buscar­Miembros­Grupos de Usuarios­Registrarse­Conectarse
Compartir | 
 

 Parte10-Fragmentos de código Lua (Snippet)

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Huésped
Invitado



MensajeTema: Parte10-Fragmentos de código Lua (Snippet)   Dom Jul 27, 2008 1:51 pm

Integración de Adhoc en Multijugador LUA

PRIMERO DEFINIMOS LAS VARIABLES DEL TUTORIAL ADHOC

Código:
 blanco = Color.new( 255, 255, 255 )
negro = Color.new( 0, 0, 0 )

pad = Controls.read() -- Variable que lee el teclado.
oldpad = pad -- Teclado estado anterior.

SA = 60 -- Sensibilidad del Analógico (Se me ha olvidado ) --

fin_espera = true
fin_juego = false
fin_partida = false

nickname = System.nickName()
nickname = tostring(nickname)

macaddress = Adhoc.getMac()
macaddress = tostring(macaddress)

Adhoc_state = 0

mensaje_recibido = ""
mensaje_enviado = ""
ultimo_mensaje_recibido = ""
ultimo_mensaje_enviado = ""
mensaje = 65
caracter = "A"

jugador = {}
jugador[1] = {

sprite = img_sprite_1,
vida = 99, -- 100 Vida máxima / 0 = Destruido.
p_fuego = 5, -- Daño inflingido.
combustible = 99, -- Litros de Combustible.
municion = 99, -- Numero de Proyectiles.
x = 50, -- Posicion X.
y = 136, -- Posicion Y.
direccion = 0, -- Direccion del tanque en grados 0 - 360.
accion = true, -- True = Operativo / False = Destruido.
en_juego = true -- Si juega o no.

}
jugador[2] = {

sprite = img_sprite_2,
vida = 99, -- 100 Vida máxima / 0 = Destruido.
p_fuego = 5, -- Daño inflingido.
combustible = 99, -- Litros de Combustible.
municion = 99, -- Numero de Proyectiles.
x = 430, -- Posicion X.
y = 136, -- Posicion Y.
direccion = 0, -- Direccion del tanque en grados 0 - 360.
accion = true, -- True = Operativo / False = Destruido.
en_juego = true -- Si juega o no.

}


DEFINIMOS LAS FUNCIONES DEL TUTORIAL ADHOC

Código:
function reiniciar_nivel() -- TU CODIGO -- end
function pintar_fondo_juego() -- TU CODIGO -- end
function mueve_sprite_arriba( numero ) -- TU CODIGO -- end
function mueve_sprite_abajo( numero ) -- TU CODIGO -- end
function mueve_sprite_derecha( numero ) -- TU CODIGO -- end
function mueve_sprite_izquierda( numero ) -- TU CODIGO -- end
function accion_sprite( numero ) -- TU CODIGO -- end
function dibujar_sprites() -- TU CODIGO -- end
function mostrar_marcadores() -- TU CODIGO -- end
function muestra_pantalla() -- TU CODIGO -- end
function determina_fin_partida_y_ganador() -- TU CODIGO -- end


AVISO DE INTERRUPTOR WLAN

Código:
 while pcall ( Adhoc.init ) == false do
screen:print( 130, 116, "CONECTA EL INTERRUPTOR WLAN" , blanco )
screen:print( 130, 126, " PULSA X " , blanco )
screen.flip()
fin_espera = true
while fin_espera do
pad = Controls.read()
System.sleep(50)
if pad:cross() then fin_espera = false end
end
end

screen:print( 140, 86, "nickname = " .. nickname , blanco )
screen:print( 140, 96, "macaddress = " .. macaddress , blanco )
screen:print( 130,116, " ESPERANDO ADHOC " , blanco )
screen.flip()
System.sleep(50)

Adhoc.connect()
System.sleep(50)
repeat
Adhoc_state = Adhoc.getState()
System.sleep(50)
until Adhoc_state == 1


-- La idea es transmitir via Adhoc un "String" o cadena de cuatro caracteres: --
-- El primer carácter sera uno de control que variará desde el número 65 que es la --
-- letra "A" hasta el número 122 que es la letra "z". Esto es para evitar que falte --
-- un mensaje, por ejemplo: Si nos ha llegado el mensaje número 75 y después nos --
-- llega el mensaje 77, pues está claro que el 76 no ha llegado. Ahora tenemos que --
-- pedirle a la otra consola que nos repita el mensaje 76. --
-- El segundo carácter es el de arriba o abajo, como no se pueden pulsar las dos --
-- teclas a la vez si es arriba "U", abajo "D" y no pulsadas "F". --
-- El tercer carácter es de derecha, izquierda igual que el anterior. Derecha "R", --
-- Izquierda "L" y no pulsadas "F". --
-- Y el cuarto carácter es de pulsar el botón cruz. Pulsado "C", no pulsado "F". --

Código:
 fin_juego = false
repeat

reiniciar_nivel()

mensaje_recibido = ""
mensaje_enviado = ""
ultimo_mensaje_recibido = ""
ultimo_mensaje_enviado = ""
mensaje = 65

fin_partida = false
repeat

pintar_fondo_juego()

pad = Controls.read()

if jugador[1].accion then -- Jugador que controlas tu. --

mensaje_enviado = string.char(mensaje) -- Cabecera de mensaje. --


SI PULSAS ARRIBA O ABAJO (No creo que puedas pulsar los dos a la vez)

Código:
 if pad:up() or pad:analogY() < -SA then
mensaje_enviado = mensaje_enviado .. "U"
mueve_sprite_arriba( 1 )

elseif pad:down() or pad:analogY() > SA then
mensaje_enviado = mensaje_enviado .. "D"
mueve_sprite_abajo( 1 )
else
mensaje_enviado = mensaje_enviado .. "F"
-- no hay movimiento --
end


Por pipagerardo
Volver arriba Ir abajo
 

Parte10-Fragmentos de código Lua (Snippet)

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

Permiso de este foro:No puedes responder a temas en este foro.
.-_-ProgramaBerkins-_ :: Programación PSP :: LUA-