HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1227
radioメモ帳3解決


radio

リンク

2012/12/27(Thu) 11:09:21|NO.51471

今、背景の色をdialog命令 タイプ33で変更してRGBを"rgbdat.txt"という名前で保存して、
次起動したときに前回保存した"rgbdat.txt"から読み込んで背景の色にしたいのですが
やり方がよくわかりません。教えてください。
ソースはこんな感じです。

*main color rval,gval,bval : boxf dialog "データを読み込みますか?",2,"data load" if stat=7 : goto *colorset bload "rgbdat.txt",sdat ;ここで何をすればいいのかわかりません *colorset dialog "",33 if stat=0 : stop a=rval : b=gval : c=bval str a,3 : str b,3 : str c,3 sdat=a+b+c bsave "rgbdat.txt",sdat,7 goto *main



この記事に返信する


KA

リンク

2012/12/27(Thu) 12:42:00|NO.51473

>>ここで何をすればいいのかわかりません
>>a=rval : b=gval : c=bval
>>str a,3 : str b,3 : str c,3
>>sdat=a+b+c

上記を逆に考えるだけだけど、何か変な気がします。
HSP2.x用でしょうか。



FunnyMaker

リンク

2012/12/27(Thu) 12:43:30|NO.51474

HSP3でのやり方ですが、参考になると思います。

セーブデータの作成(ファイルにセーブするところまでは含まない。
メモリ上にデータさえ作ってしまえば、あとはbsaveやbloadでどうにでもなるから。)と、
そこから元の設定を再現する方法だけ説明します。

split命令という便利なものがありますので、それを使う方法を紹介します。
あなたのセーブの仕方とは異なってしまいますが、以下のセーブの方法も検討してみるとよいと思います。


R = 128 : G = 255 : B = 100;背景色 data_fix_bgcolor = ""+str(R)+","+str(G)+","+str(B)+"" mes "元の設定 : (R,G,B) = ("+data_fix_bgcolor+")" ;↑これでセーブデータを作成できました。r,g,bを「,」で区切ってテキストデータとして記録しています。 ;では、ここから元の値を引っ張り出してみましょう。「split」命令を使います。 sdim letter1,3*3,3 split data_fix_bgcolor,",",letter1 R = int(letter1(0)) : G = int(letter1(1)) : B = int(letter1(2)) mes "R = "+R+" : G = "+G+" : B = "+B+""

あなたのやり方で作成したでーたから読み出すには、strmid命令を使います。


data_fix_bgcolor = "030128255";すなはち、(R,G,B) = (30,128,255) R = strmid (data_fix_bgcolor,0,3) G = strmid (data_fix_bgcolor,3,3) B = strmid (data_fix_bgcolor,6,3) R = int(R) : G = int(G) : B = int(B);整数値に変換 mes "(R,G,B) = ("+R+","+G+","+B+")"



radio

リンク

2012/12/28(Fri) 20:30:22|NO.51520

わかりました



ONION software Copyright 1997-2023(c) All rights reserved.