| Votar por el foro |  | | Web amiga |  | | | Parte10-Fragmentos de código Lua (Snippet) | Dom Jul 27, 2008 1:51 pm por Anonymous | 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
| | Comentarios: 0 |
| | Estadísticas | Tenemos 3 miembros registrados. El último usuario registrado es nicog_777.
Nuestros miembros han publicado un total de 43 mensajes. en 42 argumentos.
| | ¿Quién está en línea ? | En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado Ninguno La mayor cantidad de usuarios en línea fue 4 el Miér Sep 03, 2008 10:53 am. |
|