hier ein funktionstüchtiges Beispiel.
Es nutzt das spezielle verhalten der tasten unter windows:
nicht gedrückt (wert =
0) ->
gedrückt (wert
> 1) ->
nicht gedrückt (wert =
1) ->
gedrückt (wert
> 1) ->
nicht gedrückt (wert =
0) (wieder am anfang)
#include <acknex.h>
// --- Das Wichtige vvv
#include <windows.h>
#define mouse_4 (GetKeyState(5) > 1) // status (1 oder 0) der 4. maustaste
#define mouse_5 (GetKeyState(6) > 1) // status (1 oder 0) der 5. maustaste
var _M4_toggle_var = 0; // hilfsvariable zum resetten
var _M5_toggle_var = 0; // hilfsvariable zum resetten
#define mouse_4_toggle ((GetKeyState(5) > 0) == _M4_toggle_var) // status (1 oder 0) der mit der 4. maustaste an und ausgeschaltet werden kann
#define mouse_5_toggle ((GetKeyState(6) > 0) == _M5_toggle_var) // status (1 oder 0) der mit der 5. maustaste an und ausgeschaltet werden kann
#define mouse_4_toggle_reset if(mouse_4_toggle) _M4_toggle_var = 1 - _M4_toggle_var // setzt mouse_4_toggle auf 0 zurück
#define mouse_5_toggle_reset if(mouse_5_toggle) _M5_toggle_var = 1 - _M5_toggle_var // setzt mouse_5_toggle auf 0 zurück
// --- Das Wichtige ^^^
void main()
{
fps_max = 60;
mouse_4_toggle_reset; // beide toggles auf 0 setzen
mouse_5_toggle_reset;
while(1)
{
DEBUG_VAR(mouse_4_toggle, 20);
DEBUG_VAR(mouse_5_toggle, 40);
DEBUG_VAR((var)GetKeyState(5), 80);
DEBUG_VAR((var)GetKeyState(6), 100);
if(key_enter)
{
mouse_4_toggle_reset; // beide toggles auf 0 setzen
mouse_5_toggle_reset;
}
wait(1);
}
}
mouse_4_toggle und mouse_5_toggle geben eine variable zurück, die mit den tasten immer zwischen 1 und 0 geschalten werden kann.
Da die variablen über windows laufen, werden sie auch außerhalb der Applikation (selbst wenn sie nicht geöffnet ist) getoggelt,
deshalb hab ich die reset-funktionen eingebaut. Die sind auch hilfreich, wenn du die variablen resetten willst sobald das spiel startet,
sodass man das automatische Laufen nicht schon im menü aktiviert und im spiel sofort losrennt.
Ich hoffe das ist jetzt nicht zu kompliziert geworden...