十八歩目 続 絵の取り入れ
〜画像コピー〜
前で問題になった 「絵にあわせて ウインドウが小さくなる」
ことの解決法をやりましょう
その解決法(かいけつほう)は 今まで 絵をそのままウインドウに
出していたが それではウインドウのサイズが変わってしまう
そこで 最初はどっかに絵を出しといて そこから
ウインドウにコピーするようにすれば問題は無いのだ!
buffer 2 picload "zyuunana-1.bmp" gcopy 2 stop |
いきなり新しい命令が二つも出た!
buffer と gcopy だ
buffer はscreenで出すウインドウとほとんど同じだが 違うのは
パソコンの画面に表示されない ということだ
(このようなものを仮想画面(かそうがめん)という)
つまり 画面に出ないだけで ウインドウと同じということは
mes や print などで 文字を描くことも出来る
まあ 表示はされないがね ということは字がかけるのなら
絵も出せる ということで buffer で作った仮想画面1に
picload で zyuunana-1.bmp を出して(ロードするという)
そして gcopy で 仮想画面1の画像を今の描画先に・・・
あ! 一個抜けてた!
buffer 2 picload "zyuunana-1.bmp" gsel 0,1 gcopy 2 stop |
gsel 忘れてた!
gsel ってのは 二つ目の数字によっていろいろ使える
-1 | 指定されたウインドウが消える |
0 | 影響なし |
1 | 指定されたウインドウが描画先になる |
2 | 指定されたウインドウが描画先になって最前になる |
となる 例えば gsel
0,-1 とすると ウインドウ0が消える
まあよく使うのが -1 と 1 ぐらいだろう
描画先ってのは 例えばウインドウが二つ出てて
mes "やっほー" とやって どっちに出るかというと
さっきまで使ってたウインドウに出される
詳しく言うと screen なんかで作られたまたは大きさが変えられた物が
描画先になる
screen 0,100,100 screen 2,100,100 |
とすると あとで作られた(大きさを変えられた)ウインドウが
描画先になるのだ だから この下に mes "ヤッホー" とあった場合は
ウインドウ2に書かれる
そしてその描画先を変えるには gsel が必要なのじゃ
gsel (描画先にしたいウインドウの番号),1 とするとその指定した
ウインドウが描画先になって mes "ヤッホー" なんかがあると
その指定されたウインドウに表示されるのじゃ
話が戻るが なんで gsel が無いと絵が表示されないかというと
一応 buffer で作ったやつも 見えないウインドウなので
描画先が 仮想画面2になっちゃってるのだ
やっと話が元に戻れる(^o^;
じゃあ これの説明な
buffer 2 picload "zyuunana-1.bmp" gsel 0,1 gcopy 2 stop |
もういわなくても分かるか?
buffer 2 で仮想画面2を作成(このとき描画先は仮想画面2)
picload
"zyuunana-1.bmp" でzyuunana-1.bmp を仮想画面2にロード
gsel
0,1 で 描画先をウインドウ0に切り替え
gcopy
2でウインドウ2(正確には仮想画面2)の内容をコピーして
今の描画先に貼り付ける
gcopy が説明不足か?
gcopy というのは 指定したウインドウまたは仮想画面の内容をコピーして
今の描画先にそのコピーした画像を貼り付けるというもの
まとめ buffer・・・仮想画面を作成 buffer 2 gcopy・・・指定したウインドウまたは仮想画面の内容を コピーして今の描画先に表示する gcopy 2 gsel・・・指定したウインドウを消したり描画先にしたりする gsel 0,1 |