Wie implementiere ich einen Doppelklick?

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
danielklotz
Frischling
Frischling
Beiträge: 6
Registriert: 24.07.2007, 23:20

Wie implementiere ich einen Doppelklick?

Beitrag von danielklotz »

Moin, moin

Ich möchte die Möglichkeit implementieren den Charakter bei einem Doppelklick rennen zu lassen. Dafür bräuchte ich natürlich erst mal eine Lösung für einen Doppelklick, der dann die View und die Geschwindigkeit der Figur ändert.

Hat also jemand ne Idee, wie ich einen Doppelklick skripten kann?
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Use gopher repellent on funny little man
danielklotz
Frischling
Frischling
Beiträge: 6
Registriert: 24.07.2007, 23:20

Beitrag von danielklotz »

Hmmm, danke schon mal

Ich kann aber grad leider nicht auf die AGS Seite zugreifen. Weißt Du zufällig woran das liegen könnte? (ping auf 83.170.69.77 hat geantwortet)
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Keine Ahnung, bei mir gehts. Diese 83er IP ist eh nicht die richtige, seltsam.

Hier der relevante Code:

Code: Alles auswählen

#define DCDELAY 7

function left_click(bool single) {
  if (single) {
    // single-click code
    ProcessClick(mouse.x, mouse.y, mouse.Mode );
  }
  else {    
    // double-click code
    Display("Double-click detected!");
  }
}

int lastclick, mx, my;

#sectionstart repeatedly_execute  // DO NOT EDIT OR REMOVE THIS LINE
function repeatedly_execute() {
  // put anything you want to happen every game cycle here
  if (lastclick>0 && lastclick<=DCDELAY) lastclick++;
  else if (lastclick>DCDELAY) {
    lastclick=0;
    left_click(true);
  }
}
#sectionend repeatedly_execute  // DO NOT EDIT OR REMOVE THIS LINE

#sectionstart on_mouse_click  // DO NOT EDIT OR REMOVE THIS LINE
function on_mouse_click(MouseButton button) {
  // called when a mouse button is clicked. button is either LEFT or RIGHT
  if (IsGamePaused() == 1) {
    // Game is paused, so do nothing (ie. don't allow mouse click)
  }
  else if (button == eMouseLeft) {
    if (lastclick && mouse.x==mx && mouse.y==my) {
      lastclick=0;
      left_click(false);  
    }
    else {
      lastclick=1;
      mx=mouse.x;
      my=mouse.y;
    }
  }
  else {   // right-click, so cycle cursor
    mouse.SelectNextMode();
  }
}
#sectionend on_mouse_click  // DO NOT EDIT OR REMOVE THIS LINE
Use gopher repellent on funny little man
danielklotz
Frischling
Frischling
Beiträge: 6
Registriert: 24.07.2007, 23:20

Beitrag von danielklotz »

Cool Danke :D
Antworten