Buenas chicos! estoy aquí denuevo porque tengo una duda con respecto a los clicks y al mouse.
Quiero saber si es posible (ya sea con funciones o con codigo) bloquear la cantidad de clicks que puede hacer el usuario durante una fracción de tiempo.
En mi caso me gustaría que no fuesen mas de 2 clicks por segundo.
Pensé que a lo mejor se podría con Alarmas pero la verdad es que no se me ocurre bien como hacerlo.
Lo otro.
Tengo un sprite para el cursor , el cual contiene 3 sub imagenes distintas, las cuales cambiarán dependiendo de la situacion del juego. Ahora bien, mi duda es la siguiente. Cual es la forma más "EFICIENTE" de hacer que el sprite del cursor siga al mouse (obiamente) y que a la vez que permita ir cambiando el sprite acorde a las colisiones que se presenten ?
Pregunto porque, en un principio utilicé la opción que trae el GM para cambiar directamente el sprite del cursor, pero el problema es que al usarla el sprite no puede cambiar al colisionar con objetos (o por lo menos no vi que puediese poner esa opción); por lo que me vi obligado a usar las opciones de "jump to position" en un evento "step" para así poder ir variando el sprite y que siga al mouse... el problema es que siento que esta no es la forma correcta... la encuentro "ineficiente"... entonces eso... creo que es todo... alguna solución chicos?
PD: sorry por escribir mucho, pero me gusta plantear bien la situación, los problemas, dudas, y lo que "busco".
1:
crea un objeto controlador para todo lo del mouse llamado por ejemplo "obj_mouse":
create:
[gml]clicks = 0;[/gml]
step:
[gml]if mouse_check_button_pressed(mb_left)
&& clicks < 2 {
clicks++;
alarm[0] = 1*room_speed; //1 es ese segundo que preguntas como ejemplo
}[/gml]
en la alarm0:
[gml]clicks = 0;[/gml]
entonces, para todo lo que necesites clickar con esta limitación, deberías encerrarlo en un
[gml]if obj_controlador.clicks < 2 {
//lo que necesites hacer
}[/gml]
----------------------
2: respondo ahora pero las reglas dicen que UNA PREGUNTA POR POST, vigila para la siguiente ok? ;)
puedes usar este mismo objeto controlador...
evento create:
[gml]sprcursor = 0;[/gml]
evento draw:
[gml]
var cur = spr_cursor0;
switch sprcursor {
case 0:
cur = spr_cursor0;
break;
case 1:
cur = spr_cursor1;
break;
case 2:
cur = spr_cursor2;
break;
case 3:
cur = spr_cursor3;
break;
case 4:
cur = spr_cursor4;
break;
case 5:
cur = spr_cursor5;
break;
//y así sucesivamente a la cantidad de cursores que tengas
}
draw_sprite(mouse_x,mouse_y,cur);[/gml]
y cuando tengas que cambiar de cursor, solo por ejemplo, al spr_cursor3:
[gml]obj_mouse.sprcursor = 3;[/gml]
Eso es todo :B
Vale kostra!
La verdad puse las 2 preguntas porque sabía que la de los clicks no sería una respuesta muy larga, y hubiese sido un poco latoso hacer al mismo tiempo 2 post distintos :c
Vale vale vale... fui muy tonto, no se me pasó por la cabeza usar un switch xDDDDD
Gracias por el codigo del bloqueo de clicks !
Nos vemos en la proxima duda que tenga !