プチコン3号 SmileBASIC コミュニティプレイ日記まげ MAGE_LOVEMARINE2017/06/20 20:40:02既出かもしれませんが、GPAGEの4か5の透明部分をGSPOITで吸い出すと、戻り値が0になりません。ただ、見た目は透明なので、SPDEFでもGCOPYでも透明として扱います。しかしてその実態は、「透明なほぼ白」だったのです!(^^;) (スマブには報告しました)15そうだね 11返信プレイ済み2017/11/02 22:37:01に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿ネタバレこういち driton2017/6/20 20:54なるほど。確かに白になると思っていました。そういうことだったんですね。1そうだね プレイ済み2017/11/02 22:37:01に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿あまさと しおん ShionAmasato2017/6/20 21:07透明色の厳格な判定には AND (255<<24) しないとだめなんだよね AND &HFF000000 でもいいんだけど2そうだね プレイ済み2017/11/02 22:37:01に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿あまさと しおん ShionAmasato2017/6/20 21:08(値 AND (255<<24))==(255<<24) か2そうだね プレイ済み2017/11/02 22:37:01に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿スー thanks_0u02017/6/20 22:45プチコンの場合31段階なので最大値が31*8=248=F8、ってことでほぼ白というよりは真っ白なはず?白は&HFFFFFFだろう、というGSPOITで陥りがちな罠…! そして今のバージョンでは(31,31,31)なんですね!知らなかったー(・u・) 初期〜少し前のバージョンまでは(16,16,16)=&H808080でした。何故変わったのでしょうね。ふしぎ。1そうだね プレイ済み2017/11/02 22:37:01に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿マギー M1912462017/6/21 2:00デフォルトのBGなどの透明部分が &HF8F8F8なのは、 3.5になってからのようです。 (3.3.2では0でした。) WiiU版と関係がありそう。 WiiU版では公式に確認済みみたいです。 3号で今でも3.3.2を使っている方が (一旦上げて戻した方も)いらっしゃるようなので デフォルトデータを使った特殊な画像処理をするプログラム公開される場合は ちょっと注意が必要かも? ちなみに文字フォントの透明部分が &HF8F8F8なのは、 もっと前から(初めから?)みたいです。 2そうだね プレイ済み2017/11/02 22:37:01に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿スー thanks_0u02017/6/21 7:05フォントはバックアップあったので見てみましたー。3.0.0からずっと&HF8F8F8ですね( ´ u ` ) あとバックアップはBGの3.0.0しか残っていないのですが、その時点では&H808080でした。 3.3.2は0だったんですね。それも初めて知りましたー。細かく刻んで変えているのはかなりふしぎです(・u・)2そうだね プレイ済み2017/11/02 22:37:01に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿まげ MAGE_LOVEMARINE2017/6/21 15:03みなさま、情報ありがとーございます♪ >こういちさん 透明度も含めると、今度は黒になるからヤヤコシイんですよね(^^;)。 >あまさと しおんさん RGBREADで読み取った透明度で判断…とも考えましたが、なるほどビット演算ですか。圧倒的にそのほうが効率的ですね。苦手ジャンルなので気づけませんでした(^^;)。 >スーさん こ、ここはすでに罠の中!?(^^;) 今までずっと&HFFFFFFFFでした…。 それにしても、システムファイルをバックアップしてるんですねぇ。ズボラな私はマメだと思いましたが、もしかしてそれが常識ですか?(^^;) >マギーさん 今回は、前に作ったプログラムを起動し、オヤ?となった次第です。しかしバージョンによって画像の色が変わるって、まさか更新のたびに、マスター画像から変換してるとか、そんな感じなんですかね?(^^;)3そうだね プレイ済み2017/11/02 22:37:01に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿おちゃめ ochame_nako2017/6/26 12:46GRP上の透明色と不透明色の判別は実はシフト演算等を使用しなくてもGSPOITで読み取った色が0以上か否かで判別可能です。 負数ならば不透明色、0もしくは正数ならば透明色です。 知っての通り、プチコン3号のGRPはR、G、Bが各5bitで表現されているため値は8の倍数の丸められます。例えば255(&HFF)という値は248(&HF8)に丸められるわけです。 しかし、Aに関しては1bitで表現されているため0か255で丸められます。例えば、255(&HFF)という値は255(&HFF)のままですが、248(&HF8)という値は0に丸められます。1そうだね プレイ済み2017/11/02 22:37:01に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿おちゃめ ochame_nako2017/6/26 12:47GSPOITで返す値は32bit整数型ですが、この型においては32桁の2進数で表記した際に最上位のbitが1ならば負数になります。(あくまで補数で負数を表現しているため最上位のbitが符号を示しているわけではないので注意) 32bitの論理色コードではARGBとなっておりAが上位bitを示しています。Aの値が255の時は2進数で表すと11111111となり最上位のbitは1になるため負数です。しかし、Aの値が0の時は2進数で表すと00000000となり最上位のbitは0になるため正数となります。 したがって、GSPOITで読み取った値が16316664(A、R、G、Bが0、248、248、248)ならば透明色というわけです。1そうだね プレイ済み2017/11/02 22:37:01に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿おちゃめ ochame_nako2017/6/26 12:50プチコン3号のGRPの色というのはRGBAが5551の16bit色なのですが、このようにGRP上で表示される色はAが0の時は透明色であるため実質15bit色となります。しかし、透明色も15bit色存在するわけです。 この透明色はARGBがすべて0のGRPのデフォの透明色と見た目で判別はできませんが、GSPOIT上では異なる色として判断が可能です。そのため「見えない当たり判定」として活用が可能です。 私が作ったPETIT PAINT QSPでは色コード8(A、R、G、Bが0、0、0、8)を「見えない円の塗りつぶし境界色」と使用することで円同士が重なっても正しく円を塗りつぶせるようにしています。 https://miiverse.nintendo.net/posts/AYIHAAAEAAArVRTsk6CEtg1そうだね プレイ済み2017/11/02 22:37:01に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿まげ MAGE_LOVEMARINE2017/6/26 16:16>おちゃめさん さっそく、件の誤動作を起こしたプログラムの、 IF GSPOIT(座標)!=0 THEN 不透明 ELSE 透明 を IF GSPOIT(座標)<0 THEN 不透明 ELSE 透明 と書き換えたら、バッチリ正常動作しました♪ ありがとーございます!0そうだね プレイ済み2017/11/02 22:37:01に取得