if構文をrepeat-loopなどの中に記述しているなら、getkeyもループの中に入れればOKと思います
もしifがループの中でなく、getkeyの実行結果によって1回だけ呼び出されているようであれば、その構造ごと変えないといけません
以下、サンプルです。ウインドウのタイトルバーにifの判断の結果を表示します。
screen 0, 200, 200, 0
color 0, 0, 0
boxf 50, 50, 100, 100
repeat
getkey m, 1
if mousex>50 & mousex<100 & mousey>50 & mousey<100 & m==1 {
title "HIT"
} else {
title "NONE"
}
await 15
loop
逆に、今できていないということは
if の判断を実行するきっかけが足りていない(たとえばキーを押した瞬間しか判断してないとか)か、または、判断をするときにキーの状態を取得せずに古い情報を使ってしまっているかのどっちかではないでしょうか。
サンプルでは、判断のきっかけを「15ミリ秒ごとに判断する」として、そのたびに必ずgetkeyを実行しています)