- 自動化ツールuwsc使いよ集まれ7
409 :名無しさん@お腹いっぱい。[sage]:2011/12/03(土) 11:52:21.95 ID:9zFEGBoU0 - それ、test_flag で何も切り替わってない気がするけど
if peekcolor(446,182)=$FFFF then 〜 ではダメな理由は何? それと、一行にまとめたからって同時に実行されるわけじゃないかと
|
- 自動化ツールuwsc使いよ集まれ7
418 :名無しさん@お腹いっぱい。[sage]:2011/12/03(土) 12:45:34.02 ID:9zFEGBoU0 - 私が>>409を書いた理由も>>408が原因だぞ。充分に反省するように。
とりあえず、条件式を1行にまとめたからって全てが同時に判定されるわけじゃなく 優先度の順にビット演算されていくだけなので、IFを多重にした方が高速な場合が多い。 そして実はあるシンプルな回答 if peekcolor(446,182)=$FFFF xor test_flag then 〜 たぶんこの1行で行けるんじゃないかな
|
- 自動化ツールuwsc使いよ集まれ7
424 :名無しさん@お腹いっぱい。[sage]:2011/12/03(土) 14:55:45.80 ID:9zFEGBoU0 - >>422
>ビット演算が実は逆に時間がかかる場合もあると聞いてビックリです そういう意味じゃなくて、条件式というのは全てビット演算なのですよ。 マッチしたら1 しなかったら0 という1ビットの値として扱われるものなので ビット演算子で条件を繋いだりできるわけです。 そしてたとえば if 超重い関数() and クソ重い関数() and 死ぬほど重い関数() then 〜 このような条件式があった場合、andなので一つが0ならそれで確定するのに ビット演算を全部終わらせようとして常に関数3つとも実行されてしまうので 一つの長い条件式にするよりは多段IFの方が無難なのです。 でも今回の場合は関係なかったかも。
|
- 自動化ツールuwsc使いよ集まれ7
426 :名無しさん@お腹いっぱい。[sage]:2011/12/03(土) 20:26:44.32 ID:9zFEGBoU0 - ところで、>>407の1行目ってやっぱり
test_flagがどっちであっても同じ動作をするように見えるんだけど・・・ つまり>>409に書いた通り if peekcolor(446,182)=$FFFF then 〜 これと全く同じ動作になってるような?
|