コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
はるき ◆Kc66eeXagMQZ
2017/11/22 16:42
質問
AND OR XORについて
AND OR XORはどう使えばいいでしょうか? この間ANDをボタンで使う方法となぜそうなるかは理解しましたが、他の使い方が分かりません。

コメント

アバター
ほしけん 2017/11/22 17:19 ◆BJ4kbE35MkgI
そもそもAND OR XORって何なのか、という説明はWikiの初心者講座にありますので、ごらん下さい
http://wiki.hosiken.jp/petc3gou/?Beginner%2FChapter11

うまく使うと、ひとつの変数でONかOFFかのフラグを複数管理できます、使う変数が少なくて済みます。プチコンはそこまで変数の数がカツカツにはならないので、無理に使う必要まではありませんが、仕組みは知っていて損はないと思います。
アバター
みなつ 2017/11/22 19:39 ◆hJTkStjweib1
例えば、ある変数Cに色の値が入っている場合にも使いますにゃ(*´▽`*)

・「Gの成分だけ取り出したい」ときにANDを使います
?(C AND &H00FF00)/&H100
もしくは
?(C AND &H00FF00)>>8
もしくは
?(C>>8) AND &H0000FF

・「Bの成分に好きな値をセットしたい」というときは、&HFFFF00でANDをとってマスクしてから、ORで好きな値をセットできます
C=(C AND &HFFFF00) OR &H000080

・「Gの成分だけ反転したい」というときは、&H00FF00でXORをとると、反転できます
C=C XOR &H00FF00
アバター
しょぼーん 2017/11/22 21:41 ◆lp6HwPeaFWPI
自分はフラグ管理に用いていました。
FLAG1=&B001
FLAG2=&B010
FLAG3=&B100
みたいな感じにして、
FLAG=FLAG+FLAG1でフラグを建てて、
(FLAG AND FLAG1)でフラグを検知できるので、結構楽です。
(FLAGであってたっけ)
アバター
あまさとしおん 2017/11/23 12:24 ◆mzDKTVUAtwqE
応用でORとXORで「特定のビットを強制的に落とす」という方法も使ったり使わなかったりします。
みなつさんの最後の例をちょっといじくると

C=C OR &H00FF00 XOR &H00FF00
G(緑)成分だけ消し去ることができます。

と、おもったけど、ANDのマスクでも普通は問題ない(書いてから気づいた)
C=C AND &HFFFF00FF
※8桁なのは透明度情報があっても大丈夫なようにするための対策
アバター
なぎ 2017/11/23 13:13 ◆2vQDAT5B8579
16周期の数をつくりたいときに
X AND 15
とかやります。
X MOD 16
とするとXがマイナスのときにマイナスの値になるため(*´ー`*)
アバター
otta 2017/11/23 23:53 ◆ZQuDlgZE6PVg
XORはビット情報の変化を検出するのに使うことができます。
OBT=BT:BT=BUTTON(0):X=OBT XOR BT
IF (X AND 16) && (BT AND 16)==16 THEN 〜 'Aボタンを押した瞬間
IF (X AND 16) && (BT AND 16)!=16 THEN 〜 'Aボタンを話した瞬間
アバター
キルル2 2017/11/28 12:35 ◆rGE712Ruejv7
ANDは当たり判定に使うと便利です
具体的な方法は書きませんが、「このキャラ同士は当たって欲しい、こいつは当たって欲しくない」とかできます
ORはちょっと変わった足し算です
使い道は色関係とか
XORはちょっと使い道が分かりませんが、色反転とかできるのかも?

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -