なでしこを明後日の方向に

日本語プログラム言語なでしこを応援しています

なでしこ1のイメージ部品についていろいろ

なでしこ1のイメージ部品について知っていることをあれこれ書いてみます。

・サイズを変えたら画面クリアしよう

イメージの幅や高さを変えたら画面クリアをしておくべき。
画面クリアするまで内部の描画領域のサイズが変わらず、絵が欠けたりします。

・描画処理反映という命令がある

イメージ部品に何か描いたとき、画面に反映されないことがあります。
ロード待ちのループ中に画像部分コピーとかするときとかが多いかな?
描画処理反映を使うと描いたものが画面に反映されます。

・イメージ部品の画像=?

イメージ部品の画像にはファイル名を指定しますが他にも「クリップボード」や「{イメージ部品の名前}」を指定することもできます。
動的生成(~をイメージとして作成)した場合はイメージ部品名を指定するときはイメージ部品[0]→名前を使います

イメージ部品Aとはイメージ
イメージ部品Bとはイメージ
イメージ部品A画像「クリップボード」//クリップボードの画像を取得
イメージ部品B画像「イメージ部品A」//部品名を指定するとコピーになる
//動的生成
イメージ部品[0]イメージして作成
イメージ部品[1]イメージして作成
イメージ部品[1]画像イメージ部品[0]名前//部品名を指定

・文字描画はとても時間がかかる

文字描画アンチエイリアス有り。
文字表示アンチエイリアス無し。
文字描画は目に見えて処理に時間がかかるので、ゲームを作るときには文字表示を使おう。
もっさり動作が改善されるかもしれません。

・イメージ部品の移動も時間がかかる

X,Yを変更する処理は処理に時間がかかる。
スプライト画像としてイメージを使うと処理落ちが激しい。
ゲームキャラを表示するときには画像部分コピーなどを使おう。

・座標とピクセル

幅とか座標の数値は方眼紙でいう線(交点)のところ(囲碁で石を置く場所) 点描画などでは指定した交点の右下のマスとなります

幅5高さ5のイメージは5x5の25ピクセル
5x5のイメージは点描画・点取得は0,0から4,4まで
3,3へ点描画すると、左から4つめのドットに色を塗る
0,0から4,4へ四角を描くと、点描画でいう0,0~3,3に線を引く(なでしこ3では違う)

・色のANDとかOR

画像ANDコピーとか画像ORコピーの命令があります。
黒色は$000000
白色は$FFFFFF
黒色とANDすると黒色になる
白色とANDすると色はそのまま
黒色とORすると色はそのまま
白色とORすると白色になる

・画像合成で変な色になるときは?

説明では「OBJ1の左上の色を透過色として扱う」のですが、左上の点が黒色(=$000000)以外だと変な色になります。
マニュアル検索ででてくるサンプルでは背景が黒なので正常に動いているように見えます。

画像合成で変な色になったら、透過色にしたい部分を黒にした画像を使い、0,0に黒色を点描画しておけば画像合成はうまくいくでしょう。

・できないこと

クリップボードに画像を送る方法はないみたい
透過PNGを扱うことはできないみたい
画像と画像を比較して一致するか調べることはできないみたい