Cursor LuaDEV + Duda

Hola a todos, tengo una duda en LuaDEV, haber si me la podíais solucionar Lengua fuera

 

Haber he hecho un modulo llamado cursor.lua

cursor = {
   img = image.load("cursor.png"),
   x = 10,
   y = 10,
   procesa = function (mouse)
      if controls.analogx() > 40 then mouse.x = mouse.x + 3; end
      if controls.analogx() < 40 then mouse.x = mouse.x - 3; end
      if controls.analogy() > 40 then mouse.y = mouse.y + 3; end
      if controls.analogy() < 40 then mouse.y = mouse.y - 3; end
   end,
   blit = function (mouse) 
      mouse:procesa();
      mouse.img:blit(mouse.x,mouse.y);
   end
}

 

Hasta aquí ningun problema. Pero en el script.lua he puesto esto:

dofile("cursor.lua");
 
while true do
   controls.read();
 
   escritorio:blit();
   cursor:blit();
 
   screen.flip();
 
   if cursor(123,241,358,183) and controls.press("cross") then
   os.exit()
   end
 
end

 

¿Cuál es el error?

 

PS: ¿Cómo se pondrían las coordenadas en esta imagen (del botón salir)?

 

 

¿Así? (77,77,405,200)


Sígueme en Twitter: @Aitor_db


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.

Primer error: en tu script

Primer error: en tu script llamas a cursor y le pasas argumentos, como si fuera una función, pero lo definiste como tabla (ojo con usar codes que no sabes cómo funcionan)

Segundo error: la función procesa que tienes dentro de la tabla cursor, no te va funcionar correctamente (cuando dejes quieto el analógico se moverá solo el cursor, te lo aseguro)

Te recomiendo leer todos los comentarios de este hilo, te será de mucha ayuda.

EDITO: se me olvidó mencionarlo, cuando preguntes por favor incluye el mensaje de error de LuaDEV, para saber el fallo y la línea en que se produce ;)

Imagen de barney77

Esque la condicion está mal,

Esque la condicion está mal, leete los tutos ed chimecho para que ubiques mas o menos que onda, por lo que veo vienes de C, te será facil.

 

Salu2.

Imagen de AitorDB

By Aitor

OK, gracias por el consejo.

PS: Si, vengo de C xD

Imagen de sting18

Si vienes de C no te

Si vienes de C no te recomiendo que te pases a LUA no vallas hacia atras, como decimos aca en mexico "puro pa adelante compa".

Imagen de AitorDB

By 6381

La diferencia es que en LuaDEV estan las cosas mas facilitadas, y si tengo dudas hay muchos usuarios a los que preguntar.

PS: Me he leido las funciones de Chimecho y no veo el fallo.


Sígueme en Twitter: @Aitor_db

Imagen de sting18

Ok mira un ejemplo de cursor

Ok mira un ejemplo de cursor solo con el pad digital tu agregale el analogo.

Ejemplo Lua.

cursor={}
cursor[1]={x=100,y=150,i=cur}
 
function mover_cursor()
controls.read()
if controls.left() then cursor[1].x = cursor[1].x -4 end
if controls.right() then cursor[1].x = cursor[1].x +4 end
if controls.up() then cursor[1].y = cursor[1].y -4 end
if controls.down() then cursor[1].y = cursor[1].y +4 end
image.blit(cursor[1].x,cursor[1].y,cursor[1].i) -- Muestra cursor
end
 
--bordes de cursor
 
function bordes()
if cursor[1].x < 5 then cursor[1].x = 5 end
if cursor[1].y < 5 then cursor[1].y = 5 end
if cursor[1].x > 185 then cursor[1].x = 185 end
if cursor[1].y > 265 then cursor[1].y = 265 end
end

Ejemplo en C.

SceCtrlData currentPad, lastPad, pad;
 
void MoverPuntero(void)
{
sceCtrlReadBufferPositive(&pad, 1);
    if(((pad.Buttons & PSP_CTRL_DOWN) ||(pad.Ly == 255)) && (y < 250))   {y = y+4;}
	if(((pad.Buttons & PSP_CTRL_UP) ||(pad.Ly == 0)) && (y > 0))         {y = y-4;}
	if(((pad.Buttons & PSP_CTRL_LEFT) ||(pad.Lx == 0)) && (x > 0))       {x = x-4;}
	if(((pad.Buttons & PSP_CTRL_RIGHT) ||(pad.Lx == 255)) && (x < 460))  {x = x+4;} 	
}

Espero sigas en C saludos.

 

 


Imagen de AitorDB

By Aitor

Bueno intentaré quedarme en C que me gusta más xD

 

PS: Si te haces mi "tutor en C" me quedo en C sin duda alguna xD.

Imagen de sting18

La verdad me encantaria mucho

La verdad me encantaria mucho pero tengo TeamMex y con la nueva recontruccion de grupo tengo mucho que hacer tanto en HB como en apoyar al grupo pero si tienes dudas postea y cuando tenga tiempo te ayudo saludos y suerte Aitor.


Imagen de AitorDB

By Aitor

OK, Gracias sting, por cierto si necesitas ayuda en algo del team avisa ;)

Imagen de sting18

Ok Aitor gracias lo tendre en

Ok Aitor gracias lo tendre en cuenta saludos.

Imagen de AitorDB

By Aitor

¿Qué? Sinceramente, considero que tu comentario no tiene sentido, pues es obvio que tiene un error y no contribuyes a su solución, resumiendo SPAM.


Sígueme en Twitter: @Aitor_db

Aclaro

Al decir Error me referia a mi, cometi un error al comentar y escribi error para que los mod lo borracen como lo hicieron. No te ofendas.

Imagen de AitorDB

By Aitor

Tranqui no me ofendo, pense que eras de los que postean por scenebitos

Imagen de AitorDB

By Aitor

Ya, pero yo lo que quiero saber es para lo de el cursor, no para imprimir imagen.

Imagen de User170294

Respuesta a lo segundo

image.blit(x posición x de la imagen, y posicion y de la imagen)

No hay mucho que explicar...

Salu2

Imagen de AitorDB

By Aitor

Entonces sería ¿posición en la que empieza la imagen en x y posicion en la que termina? e igual con y ¿no?

Imagen de User170294

image.blit(x -> posicion x en

image.blit(x -> posicion x en la que vas a imprimir la imagen, y -> posicion y en la que vas a imprimir la imagen)

Por ejemplo:

miImagen:blit(0, 0) -> Si la imagen mide 480x272px se verá la pantalla completa.

o...

miImagen:blit(240, 0) -> Si la imagen mide 480x272px se verá la izquierda de la pantalla negro y la derecha la imagen partida.

Salu2


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.