2010-04-04 26 views
1

J'utilise Borland Pascal 7.0, et je voudrais faire un jeu de machines à sous (Si 3 numéros aléatoires sont les mêmes, vous gagnez). Le problème est que lorsque je clique sur le bouton de démarrage (Inditas) dans le menu, la procédure s'exécute plusieurs fois jusqu'à ce que je relâche le bouton de la souris. On m'a dit que je devrais vérifier si le bouton de la souris est relâché avant d'exécuter la procédure une fois. Comment puis je faire ça? Voici ce que le menu ressemble:Comment puis-je vérifier si le bouton de la souris est relâché, et ensuite exécuter une procédure une fois dans Borland Pascal 7.0?

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; 

Merci, Robert

+0

Robert, quels sont les champs inscrits 'm' ? –

+0

On nous a appris à l'utiliser de cette façon, je ne sais pas. Je suppose que m.left et m.right sont booléens, et m.x et m.y sont des entiers ou quelque chose comme ça .. Nous utilisons un fichier dans le programme, nommé mymouse.tpu – Robert

Répondre

0

Si l'unité de la souris ne fournit pas un moyen d'attendre un clic de souris, ou quelque chose de similaire,
vous pouvez simuler un " bouton relâché "comportement avec un couple de variables de drapeau.

Exemple:

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

(Je ne sais pas ce que m.left est, mais je suppose qu'il indique si le bouton gauche est en panne ou non)