【Scratch】色を数値で扱う(透過度あり)

【Scratch】色を数値で扱う(透過度あり)

色を数値で扱うプログラムにアルファチャンネル(透過度)の情報を追加してみました

【Scratch】色を数値で扱う
色を数値で扱うプログラムです。ネコをキーボードで操作して色に触れると色の名前をいいます カラーパレットから色を選ぶんじゃなくて、数値で色を指定する方法だよ 光の三原色(赤と緑と青)で指定するやつね そうそう。絵具は全部混ぜると黒くなるけど、...
以前作ったプログラムの改良版、透過度を追加したよ
色がどれくらい透明なのかを指定できるんだね

リストに予め登録済みの色情報を元にペンで円を描きます

【Scratch】色を数値で扱う(透過度あり)

リストデータ1件の内容は

  • 色の名前
  • A(透過度)の値(1〜256)
  • R(赤の要素)の値(0〜255)
  • G(青の要素)の値(0〜255)
  • B(緑の要素)の値(0〜255)

の5つです。それぞれの値をカンマ(,)で区切っています

RGBは0〜255なのに、A(透過度)は1〜256なんだね
そうなんだ。試しに透過度を0から10ずつ変更した場合と、1から10ずつ変更した場合をプログラムしてみたよ

【Scratch】色を数値で扱う(透過度あり)

透過度0だと透過なしになるんだね

透過度付きの色はこの式で求められます

A(透過度) * 16777216 + R(赤の要素) * 65536 + G(青の要素) * 256 + B(緑の要素)

数字の意味はこの通り
16777216・・・2の24乗(2を24回掛ける)
65536・・・2の16乗(2を16回掛ける)
256は・・・2の8乗(2を8回掛ける)

この式でペンの色を設定して描画できます

【Scratch】色を数値で扱う(透過度あり)

ペンの色に透過度は設定できるけど、透過度を設定した色に対する当たり判定はできないよ
下のプログラムは正しく動かないんだね

【Scratch】色を数値で扱う(透過度あり)

A(透過度)を256にすれば正しく動くよ

Scratch 3.0に対応した書籍です[PR]

タイトルとURLをコピーしました