■strmid命令で文字を1文字ずつ抜き出したい
Q.文字列から1文字ずつ切り抜きたいんだけど、strmid命令で1を指定すると、
2バイト文字の場合には文字化けしたヘンなコードが表示されてします。
A.peek命令で1バイトずつデータを判定して、切り出すといいでしょう。
■ボタンにグラフィックを張りたい
Q.ボタンにグラフィックを張りたいのですが、方法を教えてください。
A.btnimgという命令で可能です。
hsp2.6で実行してください。
■「すでに名前が使用されているので変数にできません」というエラー
Q.「すでに名前が使用されているので変数にできません」というエラーが出てしまいます。
対処法を教えてください。
A.ラベルと同じ名前の変数を使おうとしていませんか?
どちらかを変える必要があります。
| *test test=1 stop |
| a="test" mes a |
などとすれば、メモリに関してはあまり考えなくてもかまいません。
このとき、メモリには
1バイト目 tのキャラクターコード $74
2バイト目 eのキャラクターコード $65
3バイト目 sのキャラクターコード $73
4バイト目 tのキャラクターコード $74
5バイト目 文字列の終了コード $00
という内容が書かれています。
この内容を直接読むのがpeek命令です。
| a="test" mes a peek b,a,2 str b,17 mes b stop |
■RPGのアイテム一覧
Q.「ドラクエ」みたいに持ち物を表示したい。
A.アイテム名称の配列、所持品の配列を用意します。
所持品の配列は、アイテム番号とそれぞれの個数が入るようにし、
現在の総数(持っているアイテムの種類の数)を入れます。
アイテムを増やしたり減らしたりするときにはこの数を使って配列を
減らしたり増やしたりします。
■「バッファ」ってなに?
Q.「バッファ」という言葉が何度も出てきます。意味を教えてください。
A.「バッファ」は ”何かためておくためのところ”です。
HSPでは、buffer命令で初期化する、
仮想の見えないスクリーン(仮想画面)のことをバッファといいます。
バッファにグラフィックデータをおいておき、使うときには、バッファから画面にコピーすれば、
表示ごとにハードディスクから読み込まなくてすみます。
■HSPのバージョン情報
Q.システム変数hspverを使ってみましたが、152838という変な数字が入っています。
どうしたらいいですか?
A.システム変数hspverには16進数で情報が入っています。
以下のスクリプトを実行すると手元のHSP2.55では「25506」という数字が表示されます。
| a=hspver str a,16 mes a stop |
■テキストの点滅
Q.テキストを点滅させたいのですが、どうしたらいいですか?
A.同じ位置に同じ文字を別の色で表示すれば、点滅になります。
| color 0,0,0 boxf *top color 255,255,255 pos 10,10 mes "テキストの点滅" wait 50 color 0,0,0 pos 10,10 mes "テキストの点滅" wait 50 goto top |
■フルカラーでフェードイン・アウトしたい
Q.フルカラーのグラフィックをフェードイン処理したいのですが。
A.別のバッファにブラフィックをコピーしておき、それを徐々に半透明コピーすれば出来ます。
| screen 0,640,480,0 buffer 2,640,480 picload "sample\\demo\\hsp2ttl.jpg" ;フェードイン repeat 17 redraw 2 gsel 0 color 0,0,0 boxf x=cnt*16 title ""+x gmode 3,640,480,x gcopy 2,0,0,640,480 redraw 1 wait 5 loop ;フェードアウト repeat 17 redraw 2 gsel 0 color 0,0,0 boxf x=(16-cnt)*16 title ""+x gmode 3,640,480,x gcopy 2,0,0,640,480 redraw 1 wait 5 loop stop |
■16進数を10進数に変換したい
Q.16進数を10進数に変換したいのですがどうしたらいいですか。
A.先頭に$が付けばintで変換されます。
このスクリプトでは”31”が表示されます。
| a="1F" b="$"+a int b mes b stop |
| a=31 str a,18 mes a stop |