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 に答える