Petitverse
ゲストさん (
ログイン
)
ログイン
コミュニティ内検索
コミュニティ一覧
Petitverse ご利用ガイド
Petitverse からのおしらせ
プチコン 非公式コミュニティ
トピック
たらこ
◆PWy.X.JqENU2
2018/12/24 20:37
質問
タッチ
GPAINT で色をぬって、touchで色を判断して、その色だったら、音を鳴らす
というやつを作っています
間違ってたら、訂正お願いします
コメント
たらこ
2018/12/24 20:39
◆PWy.X.JqENU2
。
あまさとしおん
2018/12/24 21:18
◆mzDKTVUAtwqE
画像が回転していたので修正してみた
プチコンの色で注意がいるのは「色要素は5bitしかない」ことです。
見かけ上はR,G,Bの数値は256段階(8bit)ですが、実際は32段階(5bit)です。
256÷32=8なので、8の倍数でないと正しく動きません。
(8の倍数じゃない数値を指定すると切り捨て)
ですから、RGB(100,180,180)ではなくRGB(96,176,176)のようにする必要があります。
あまさとしおん
2018/12/24 21:21
◆mzDKTVUAtwqE
ループにVSYNCが入っていませんが、一部のバージョンでフリーズを誘発するのでご注意を。(いわゆるBEEPバグ)
たらこ
2018/12/24 21:44
◆PWy.X.JqENU2
あまさとしおんさん
画像修正ありがとうございます
では真っ白のRGB(255,255,255)は不可能ということですか?
あと前に取得した値がはたらきつづけている?っぽいので、
beepのあとに、tx=0:ty=0を入れたのですが変わりませんでした
一回タッチしたら一回だけ反応するようにしたいんですよね
あとvsync入れました
takumi
2018/12/24 21:48
◆Ce3Q40uXWJjn
一回だけ処理したいなら、
8行目の後に、
IF TT==1 THEN
・
・
・BEEP 5
ENDIF
ENDIF
とすれば・・・?
たらこ
2018/12/24 21:53
◆PWy.X.JqENU2
あと別のほうのテストでやったんですけど、
c=gspoit(15,15):print c
で-460552(RGB(255,255,255))ってやつでてきて、
さっきのやつに入れると、うまくできたのですが、
こっちでも大丈夫なんでしょうか?
takumi
2018/12/24 22:00
◆Ce3Q40uXWJjn
-460552はホワイトなので大丈夫です
たらこ
2018/12/24 22:01
◆PWy.X.JqENU2
takumiさん
ありがとうございます
できました
すごいですね
たらこ
2018/12/24 22:02
◆PWy.X.JqENU2
-460552ってなんのすうじなんですか?
たらこ
2018/12/24 22:05
◆PWy.X.JqENU2
TT=1ってタッチの始めしか反応しないよ
ということなんですね。
よくわかりました
はる
2018/12/24 22:16
◆75Vh4SY8TdKS
>-460552ってなんのすうじなんですか?
-460552は色コードです。
16進数にすると、
&HFFF8F8F8
1byteことに分けると、
&HFF,&HF8,&HF8,&HF8
となります。
これらを10進数にすると、
255,248,248,248
となります。
これは、
RGB(255,248,248,248)
ということです。
RGB(255,255,255)
としたはずなのにと思うかも知れませんが、
問題ありません。
グラフィックページに描画されるときは、
1bit,5bit,5bit,5bitで合計2byteの形式で保存されるので、
値が変わるのです。
たらこ
2018/12/24 22:23
◆PWy.X.JqENU2
なるほど
難しい
ありがとうございます
はる
2018/12/24 22:27
◆75Vh4SY8TdKS
難しく聞こえますがそんなに難しくないですよ。
おちゃめ
2018/12/25 1:33
◆jH1opV6FnGyx
すでに他の方が書かれていますが、プチコン3号は32bitカラーが扱えますが、実際の表示は16bitカラーなので表示色を元に判定を行う場合は誤動作が起きてしまいます。
誤動作を防ぐならば表示の段階でRGBが8の倍数値になるようにしてやれば良いのですが、「意味がよく分からない」というのであればプログラム中のRGB関数をすべてこのRGB16関数に置き換えれば簡単に解決できます。
DEF RGB16(R,G,B)
RETURN RGB(R>>3<<3,G>>3<<3,B>>3<<3)
END
このRGB16関数を使えば白RGB16(255,255,255)はプチコン3号で表示可能な白RGB(248,248,248)に自動的に変換してくれます。
おちゃめ
2018/12/25 1:42
◆jH1opV6FnGyx
8の倍数(R,,G,B 各32階調)に丸められるというのは実際に値を1ずつ変えながら画面表示をしてみれば一目瞭然です。
ACLS
FOR I=0 TO 255
GLINE I,0,I,239,RGB(I,I,I)
NEXT
1ずつ変化させているにも関わらず32段階(8ずつ変化)の表示しかできてないことがこれで一目瞭然ですね。
ブルー
2018/12/25 14:02
◆F30iKws/Dqrq
まぁ、ボクはあまり気になりませんけど(それを言ったらおしまい)
たらこ
2018/12/25 14:53
◆PWy.X.JqENU2
なるほどありがとうございました
ツララ
2018/12/25 15:49
◆ArUdBYOYME1V
笑顔で話し終わらそうとしてて草
何でGRAY関数の仕組みについて聞いてあげないんです?
出されたものは平らげるのが礼儀ってもんですよ?
分からないなら分からないなりに予想を返して上げるのが一番のお礼だと思いますけど
1
2
3
コメントを書く
こちらは「プチコン3号」「プチコンBIG」など、
プチコンシリーズ
に関する話題を扱った
コミュニティです
プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
ユーザー登録なしで書き込みができます
秘密の合い言葉は成りすましの防止 (
トリップ機能
)、書き込みの編集時の本人認証に使用します
秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります
normal
happy
like
surprized
frustrated
puzzled
画像
ネタバレ
投稿する
-
WEB PATIO
-