Anuncios Google

Duda ad-hoc

Buenas, estoy intentando hacer un jueguillo multijugador para PSP en LuaDev y cuando empiezo con el ad-hoc parece que no soporta esas funciones. Se puede meter alguna libreria o algo?? si no es el caso tendria que hacerlo con el Lua player? es que soy un poco novato en esto....

Os dejo el codigo de todas formas, si me puedierais explicar que debo hacer para que funcione os lo agredeceria mucho ^^

link = {} 
link["stay"]={} 
link["walk"]={} 
 
link["stay"]["up"] = image.load("sprites/link_stay_up.png")
link["stay"]["down"] = image.load("sprites/link_stay_down.png")
link["stay"]["right"] = image.load("sprites/link_stay_right.png")
link["stay"]["left"] = image.load("sprites/link_stay_left.png")
 
link["walk"]["up"] = image.loadsprite("sprites/link_walk_up.png",22,27)
link["walk"]["down"] = image.loadsprite("sprites/link_walk_down.png",22,27)
link["walk"]["right"] = image.loadsprite("sprites/link_walk_right.png",22,27)
link["walk"]["left"] = image.loadsprite("sprites/link_walk_left.png",22,27)
 
link.status = "stay" 
link.direction = "down"
link.x = 10 
link.y = 10 
link.w = 22 
link.h = 27 
link.anim = 0 
 
 
link2 = {} 
link2["stay"]={} 
link2["walk"]={} 
 
link2["stay"]["up"] = image.load("sprites/j2_stay_up.png")
link2["stay"]["down"] = image.load("sprites/j2_stay_down.png")
link2["stay"]["right"] = image.load("sprites/j2_stay_right.png")
link2["stay"]["left"] = image.load("sprites/j2_stay_left.png")
 
link2["walk"]["up"] = image.loadsprite("sprites/j2_walk_up.png",22,27)
link2["walk"]["down"] = image.loadsprite("sprites/j2_walk_down.png",22,27)
link2["walk"]["right"] = image.loadsprite("sprites/j2_walk_right.png",22,27)
link2["walk"]["left"] = image.loadsprite("sprites/j2_walk_left.png",22,27)
 
link2.status = "stay" 
link2.direction = "up" 
link2.x = 458 
link2.y = 245 
link2.w = 22 
link2.h = 27 
link2.anim = 0  
 
 
blanco = color.new(255,255,255)
 
fondo = image.load("sprites/back.jpg")
winner = image.load("sprites/win.png")
coin = image.load("sprites/money.png")
 
mensaje_recibido        = ""
mensaje_enviado         = ""
ultimo_mensaje_recibido = ""
ultimo_mensaje_enviado  = ""
mensaje                 = 65
caracter                = "A"
fin_espera = true
objetos = {} 
function generar_objetos() -- una función para generar los objetos cada que queramos
 
		objetos[1] = {} -- cada objeto, es una tabla con ciertas propiedades:
		objetos[1].w =(6) 
		objetos[1].h =(8) 
		objetos[1].x = math.random(0,480-objetos[1].w) -- ahora, cada objeto tiene una posicion en pantalla, en X, va de 0 a 480, pero! el objeto tiene ancho, entonces, para que no se salga de pantalla el límite será 480 - el ancho del objeto (objetos[i].w)
		objetos[1].y = math.random(0,272-objetos[1].h) -- lo mismo que arriba, en Y el límite sería 272, pero el objeto tiene alto (objetos[i].h)
 
end
 
jugador = {}
function generar_jug()
	for k=1,2 do
		jugador[k] = {}
		jugador[k].m = 5
		jugador[k].p = 0
	end
end
 
function colision(obj1, obj2) -- esta función, verifica si hay colisión o no entre dos objetos, notar que, DENTRO de la función se usan los parámetros que recibe, más adelante, veremos como se usa
	if obj1.x+obj1.w>obj2.x -- borde derecho obj1 > borde izquierdo obj2
	and obj1.x<obj2.x+obj2.w -- borde izquierdo obj1 < borde derecho obj2
	and obj1.y+obj1.h>obj2.y -- borde inferior obj1 > borde superior obj2
	and obj1.y<obj2.y+obj2.h then -- borde superior obj1 < borde inferior obj2
		return true -- retorna verdadero si hay colisión
	end
return false -- si el if no se cumple, viene a esta línea y retorna false, es decir, no hay colisión
end
 
function transmite_datos_seguro()
 
  fin_espera = false
  repeat
     Adhoc.send(mensaje_enviado)
     System.sleep(8)
     for espera = 1, 5 do
         mensaje_recibido = Adhoc.recv()
         if string.sub( mensaje_recibido, 1, 1) == string.char(mensaje) then fin_espera = true ; break end
         if mensaje_recibido == ultimo_mensaje_recibido then Adhoc.send(ultimo_mensaje_enviado); System.sleep(8) end
         System.sleep(8)
     end
  until fin_espera
  ultimo_mensaje_recibido = mensaje_recibido
  ultimo_mensaje_enviado  = mensaje_enviado
  mensaje = mensaje + 1
  if mensaje > 122 then mensaje = 65 end
 
end
 
 sound.load("Guile.mp3")
 sound.loop("Guile.mp3")
 generar_objetos()
 generar_jug()
 
while true do
 
 
	while pcall ( Adhoc.init ) == false do --Aqui da el error
     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
       System.sleep(50)
	   if controls.press("cross") then fin_espera = false 
	   end
     end
  end
 
	while jugador[1].p==1000 do
	image.blit(0,0,winner)
		if controls.start() then
			os.exit()
		end
	screen.flip()
	end
	image.blit(0,0,fondo)
	controls.read()
	-- código de movimiento de la animación
	if controls.up() or controls.down() or controls.left() or controls.right() then
		link.anim = link.anim + 0.2
		link.status = "walk"
		if math.floor(link.anim)>9 then
			link.anim = 0
		end
	else
		link.anim = 0
		link.status = "stay"
	end
 
	-- código de desplazamiento
	mensaje_enviado = string.char(mensaje)
	if controls.up() then
		link.y=link.y-1
		link.direction = "up"
		mensaje_enviado =  mensaje_enviado .. "U"
	elseif controls.down() then
		link.y=link.y+1
		link.direction = "down"
		mensaje_enviado =  mensaje_enviado .. "D"
	elseif controls.right() then
		link.x=link.x+1
		link.direction = "right"
		mensaje_enviado =  mensaje_enviado .. "R"
	elseif controls.left() then
		link.x=link.x-1
		link.direction = "left"
		mensaje_enviado =  mensaje_enviado .. "L"
	else
		mensaje_enviado =  mensaje_enviado .. "N"
	end
 
	if link.status=="walk" then 
		link[link.status][link.direction]:setframe(link.anim) 
	end
 
 
	image.blit(objetos[1].x,objetos[1].y,coin)
	if colision(link, objetos[1]) and link.status=="walk" then 
		generar_objetos()
		jugador[1].p = jugador[1].p+100
	end
 
 
 if controls.press("cross") then -- si presionamos X
	if jugador[1].m > 0 then
	generar_objetos() -- generamos de nuevo los objetos
	jugador[1].m=jugador[1].m-1
	end
end
	transmite_datos_seguro()
 
	if string.sub( mensaje_recibido, 1, 1)== "U" or string.sub( mensaje_recibido, 1, 1)== "D" or string.sub( mensaje_recibido, 1, 1)== "R" or string.sub( mensaje_recibido, 1, 1)== "L" then
		link2.anim = link2.anim + 0.2
		link2.status = "walk"
		if math.floor(link2.anim)>9 then
			link2.anim = 0
		end
	else
		link2.anim = 0
		link2.status = "stay"
	end
 
	if string.sub( mensaje_recibido, 1, 1)== "U" then
		link2.y=link.y-1
		link2.direction = "up"
	elseif string.sub( mensaje_recibido, 1, 1)== "D" then
		link2.y=link.y+1
		link2.direction = "down"
	elseif string.sub( mensaje_recibido, 1, 1)== "R" then
		link2.x=link.x+1
		link2.direction = "right"
	elseif string.sub( mensaje_recibido, 1, 1)== "L" then
		link2.x=link.x-1
		link2.direction = "left"
	end
 
	if link2.status=="walk" then -- si no está quieto
		link2[link2.status][link2.direction]:setframe(link2.anim) -- que pueda caminar
	end
 
	link.x = math.min(math.max(0,link.x), 480-link.w) -- límite en X dentro de la pantalla
	link.y = math.min(math.max(0,link.y), 272-link.h) -- límite en Y dentro de la pantalla
	link2.x = math.min(math.max(0,link2.x), 480-link2.w) -- límite en X dentro de la pantalla
	link2.y = math.min(math.max(0,link2.y), 272-link2.h) -- límite en Y dentro de la pantalla
 
 
	link[link.status][link.direction]:blit(link.x,link.y) -- mostrar a link! (al fin xD)
	link2[link2.status][link2.direction]:blit(link2.x,link2.y) -- mostrar a link! (al fin xD)
	screen.print(10,10,"Magias "..jugador[1].m.." Puntuacion "..jugador[1].p.." /1000",blanco)
 
	screen.flip() -- mostrar cambios en pantalla
end


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 Zero40

Me parece....

Me parece que en luadev aun no se han pueto las funciones ad-hoc habra que esperar a que deviante lo saque ...

Y si quisiera usarlo con el

Y si quisiera usarlo con el Lua player o algo, tendria que cambiar mucho? esque me gustaria probarlo de alguna manera, y pronto a ser posible.Gracias ^^

Imagen de Zero40

Se puede pero....

mejor esperar con luadev

Imagen de sisinio

.

Cierto no eres el único que espera...

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.