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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
1017
yasu変数の最大 と リスト読み込み8解決


yasu

リンク

2007/10/17(Wed) 18:37:52|NO.11701

初めまして
過去ログは検索してみたのですが既出でしたらすいません。。

私は今シュミレーションゲームを作りたいと思っているのですが

初めてHSPを使うのでどうすればいいのかわかりません><;

変数の最大値

*naisei
cls
randomize
b=rnd(100)
if a<200:button "技術開発" ,*gizyutu
pos 400,300
mes"技術"+a+"/200"
stop
*gizyutu
a=a+b
pos 300,400
dialog "技術があがりました"
goto *naisei

というふうな感じにしたいのですが こうするとどうしてもaが200以上になってしまいます。汗

もう一つは

三国志等である武将のようなものを 他のテキストファイルにリスト化しておいて

noteselやsdim,dim命令を使って読み込むことが出来ると聞いたのですが

やり方がいまいちよく分かりません><;

よろしければご回答、ご教授 よろしくお願いいたします。

長文失礼致しました。



この記事に返信する


Hue

リンク

2007/10/17(Wed) 19:04:07|NO.11702

*naisei
cls
randomize
b=rnd(100)
if a<200:button "技術開発" ,*gizyutu
pos 400,300
mes"技術"+a+"/200"
stop
*gizyutu
a=a+b
if a>200:a=200
pos 300,400
dialog "技術があがりました"
goto *naisei


これで200で止まるはずですよ〜



Kpan

リンク

2007/10/17(Wed) 20:36:54|NO.11703

プログラムが大きくなると、スピードにモロに響くような処理があります。
現時点でもボタンを押すたびに画面がちらつく。(^^;
↓あたりを参考。

-randomize、buttonは1回だけ呼んでおけばいいものなので、何度も呼ぶ
ような処理にしない。
-clsは絶対に使わない。文字を消すにはboxfの白色塗りつぶし、オブジェ
クトを消したければclrobj。


あとは、付属サンプルsample\basicの
memnote.hsp、note1.hsp、note2.hsp、strmid.hsp
あたりに目を通してください。



tks

リンク

2007/10/17(Wed) 20:52:58|NO.11704

a=limit(a+b,0,200)

って方法も。 (スクリプトは小文字の<PRE>〜</PRE>で囲みましょう。)



n

リンク

2007/10/17(Wed) 20:58:15|NO.11705

>aが200以上になってしまいます。汗

aが200以上にならないようにしていないからです。
aを200以上にならないようにして、
それでもaが200以上になってしまってから泣き言を言いましょう。



n

リンク

2007/10/17(Wed) 21:26:00|NO.11706

>Kpanさん
>-clsは絶対に使わない。

これはC言語でいう「gotoは絶対に使わない」論に等しいです。
clsは画面クリア・カレントポジションクリア・オブジェクトクリアなどを一発でやってのける、
正しく使えば非常に便利な命令です。



yasu

リンク

2007/10/17(Wed) 22:03:14|NO.11707

>Hueさん
詳しいスクリプト本当に有り難うございます><
>Kpanさん
clsは処理が遅いという話は聞いていたことがあったのですが
boxfにするとうまく全部消えなかったのでclsにしていました><;
いろいろと試してみます。 有り難うございます。
>tksさん
有り難うございます>< 
すいません; 次から気をつけます><;
>nさん
a<200 など試してみたのですがその後にaを書き直すとうまくならなかったりで…。
今回頂いた回答で無事解決できそうです。 有り難うございます。


リストの方法がよくわかりません。 
;<<<-- 武将情報読み取り -->>>
bload "データが入っている.txt",C_Data notesel Z_Data notemax Z_Max sdim Z_Name,20,Z_Max dim Z_bu,Z_Max dim Z_ti,Z_Max dim Z_to,Z_Max dim Z_se,Z_Max repeat Z_Max noteget get,cnt size=0 getstr Z_Name.cnt,get,size,',':size=strsize getstr data,get,size,',':int data:Z_bu.cnt=data:size+=strsize getstr data,get,size,',':int data:Z_ti.cnt=data:size+=strsize getstr data,get,size,',':int data:Z_to.cnt=data:size+=strsize getstr data,get,size,',':int data:Z_se.cnt=data:size+=strsize loop

どうも私が参考にしていた上のスクリプトはHSP2の
もののようなのですが、いろいろと試してみても関数と命令の違いや
うまくいったと思ってもできていなかったり…。

もしよければHSP3で

リストとして書いた情報を読み取る方法

を教えていただけないでしょうか><;

いろいろと試行錯誤してみますが アドバイス等ありましたら是非お願いいたします。

長文失礼しました。



n

リンク

2007/10/18(Thu) 07:07:48|NO.11708

一度にたくさんの処理は周りに聞かないと出来ないかも知れないけど
ひとつひとつの命令の理解を深めることは周りに聞かなくても出来ることだと思います。

bload / notesel / notemax / sdim / dim / repeat / noteget / loop / getstr / int / strsize

上記スクリプトにはこれだけのHSPの予約語が含まれています。
そのうちrepeat-loopなどセットで覚えられる命令もあります。
一日ひとつマスターしてもたったの1週間弱であなたは自分のやりたいことが1人で出来ているはずです。
あくまで遠回りをすればの話です。

個々の命令で分からないことがあったらまた聞くようすればいいでしょう。

HSP2からHSP3にするには「命令」と「関数」の違いを理解しなければなりません。



yasu

リンク

2007/10/18(Thu) 11:38:59|NO.11709

>nさん
アドバイスありがとうございます。

少しずつ理解を深めていきたいと思います><



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