Wie kann ich überprüfen, ob die Maustaste losgelassen wird, und dann ein Verfahren einmal in Borland Pascal 7.0 ausführen?

StackOverflow https://stackoverflow.com/questions/2575529

  •  24-09-2019
  •  | 
  •  

Frage

verwende ich Borland Pascal 7.0, und ich möchte eine Slots-Spiel machen (wenn 3 Zufallszahlen gleich sind, Sie gewinnen). Das Problem ist, dass, wenn ich auf der Start (Inditas) Taste im Menü klicken, wird die Prozedur mehrmals ausgeführt, bis ich die Maustaste loslassen. Mir wurde gesagt, ich solle prüfen, ob die Maustaste vor der Ausführung der Prozedur einmal freigegeben wird. Wie kann ich das machen? Hier ist, was das Menü aussieht:

procedure eger;
begin;
  mouseinit;
  mouseon;
  menu;
  repeat  
    getmouse(m);
    if (m.left) and (m.x>60) AND (m.x<130) and (m.y>120) and (m.y<150) then
      teglalap(90,90,300,300,blue);
    if (m.left) and (m.x>60) AND (m.x<130) and (m.y>160) and (m.y<190) then
      jatek(a,b,c,coin,coins);     

  until ((m.left) and (m.x>60) AND (m.x<130) and (m.y>240) and (m.y<270));
end;

Danke, Robert

War es hilfreich?

Lösung

Falls die Maus Einheit bietet keine Möglichkeit für einen Mausklick zu warten, oder etwas ähnliches,
Sie können eine „Taste losgelassen“ Verhalten mit ein paar Flag-Variablen simulieren.

Beispiel:

button_down := false; // 1
repeat
   button_released := false; // 2
   getmouse(m);
   // 3
   If m.left and not button_down Then button_down := true;
   If not m.left and button_down Then
   Begin
      button_released = true; 
      button_down := false;
   End;
   //
  if button_released and ... then ...
  if button_released and ... then ...
until (...);

(Ich weiß nicht, was m.left ist, aber ich nehme an, es zeigt an, ob die linke Taste ist oder nicht)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top