1

我用的是 Borland Pascal 7.0,我想做一个老虎机游戏(如果 3 个随机数相同,你就赢了)。问题是当我单击菜单上的开始(Inditas)按钮时,该过程会执行多次,直到我松开鼠标按钮。有人告诉我,我应该在执行一次程序之前检查鼠标按钮是否被释放。我怎样才能做到这一点?这是菜单的样子:

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;

谢谢,罗伯特

4

1 回答 1

0

如果鼠标单元不提供等待鼠标单击或类似的方法,
您可以使用几个标志变量模拟“按钮释放”行为。

例子:

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 (...);

(我不知道是什么m.left,但我认为它表示左键是否按下)

于 2010-04-04T20:01:16.907 回答