トップページgamedev
1001コメント335KB

HSP - Hot Soup Processor [13]

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名前は開発中のものです。2006/08/08(火) 04:26:45ID:lDqcHzca
       (  ,,,)
        .(  ,,)      スクリプト言語 HotSoupProcessor について
        ( ,,).        ゲーム製作の視点から、また〜りと語り合うスレ。
     , -──- 、
    (,;::-──-; )-、
     .|` ̄ ̄ ̄´;;|ヽ l   * 質問する前に検索してみる事
     l;    :::;;;l-' /   * ヲチ、ネタなどはスレ違い
    ,-ヽ───.'-、´..   * 歴代スレ、関連サイトは >>2-4 あたり
    ヽ ──── '

  ONION software (本家)
   http://www.onionsoft.net/
0848名前は開発中のものです。2006/11/28(火) 21:36:56ID:QS0/TpKk
HSPDXの速度表。参考までに。
ttp://www.hspdx.net/hspyarou/dxbench/draw.html
0849名前は開発中のものです。2006/11/28(火) 23:23:31ID:BBB7xQBo
みんなすまん、俺みたいなヘタレだと
putよりもmesのほうが速いだろうなって錯覚しちゃってた。
これからはガンガンputしようと思います
>>848 ありがとうございます、一応ググってトップに出てくるんで
目は通したんだけども、esmes関連はやっぱり「死ぬほど」遅くはなってない
みたいだったんで・・・。

>>843 780fpsてコーヒー吹いた。何も表示なしで190fpsだったんですが。
esmes遅い云々以前に、いい加減うちのがロースペックすぎたかもしれません。
0850名前は開発中のものです。2006/11/28(火) 23:24:03ID:BBB7xQBo
みんなすまん、俺みたいなヘタレだと
putよりもmesのほうが速いだろうなって錯覚しちゃってた。
これからはガンガンputしようと思います
>>848 ありがとうございます、一応ググってトップに出てくるんで
目は通したんだけども、esmes関連はやっぱり「死ぬほど」遅くはなってない
みたいだったんで・・・。

>>843 780fpsてコーヒー吹いた。何も表示なしで190fpsだったんですが。
esmes遅い云々以前に、いい加減うちのがロースペックすぎたかもしれん。
逆に、うちので動けば他はOKかなと思ってしまうけど。
0851名前は開発中のものです。2006/11/28(火) 23:29:17ID:BBB7xQBo
みんなすまん、俺みたいなヘタレだと
putよりもmesのほうが速いだろうなって錯覚しちゃってた。
これからはガンガンputしようと思います
>>847
すまそ、面倒くさがりなもんで・・・。>>846の最後2行心得ておきます。
>>848
ありがとうございます、一応ググってトップに出てくるんで
目は通したんだけども、esmes関連はやっぱり「死ぬほど」遅くはなってない
みたいだったんで・・・。

>>843 780fpsてコーヒー吹いた。何も表示なしで190fpsだったんですが。
esmes遅い云々以前に、いい加減うちのがロースペックすぎたかもしれません。
0852名前は開発中のものです。2006/11/28(火) 23:30:40ID:BBB7xQBo
ちょ、人多杉だったんで更新押しまくった・・・素で恥
(´・ω・`) 完全厨になちまた
(´・ω・`:
(´・ω・:;
(´・ω;:.
(´・;:',.
(´;.:',
(:;',.
:';.,
;.',
',
.
.
0853名前は開発中のものです。2006/11/29(水) 00:12:32ID:i+v7IWdt
みんなすまん、俺みたいなヘタレだと
putよりもmesのほうが速いだろうなって錯覚しちゃってた。
これからはガンガンputしようと思います
>>847
すまそ、面倒くさがりなもんで・・・。>>846の最後2行心得ておきます。
>>848
ありがとうございます、一応ググってトップに出てくるんで
目は通したんだけども、esmes関連はやっぱり「死ぬほど」遅くはなってない
みたいだったんで・・・。

>>843 780fpsてコーヒー吹いた。何も表示なしで190fpsだったんですが。
esmes遅い云々以前に、いい加減うちのがロースペックすぎたかもしれません。
0854名前は開発中のものです。2006/11/29(水) 00:13:03ID:i+v7IWdt
851 名前:名前は開発中のものです。[sage] 投稿日:2006/11/28(火) 23:29:17 ID:BBB7xQBo
みんなすまん、俺みたいなヘタレだと
putよりもmesのほうが速いだろうなって錯覚しちゃってた。
これからはガンガンputしようと思います
>>847
すまそ、面倒くさがりなもんで・・・。>>846の最後2行心得ておきます。
>>848
ありがとうございます、一応ググってトップに出てくるんで
目は通したんだけども、esmes関連はやっぱり「死ぬほど」遅くはなってない
みたいだったんで・・・。

>>843 780fpsてコーヒー吹いた。何も表示なしで190fpsだったんですが。
esmes遅い云々以前に、いい加減うちのがロースペックすぎたかもしれません。
0855名前は開発中のものです。2006/11/29(水) 00:14:06ID:i+v7IWdt
851 名前:名前は開発中のものです。[sage] 投稿日:2006/11/28(火) 23:29:17 ID:BBB7xQBo
みんなすまん、俺みたいなヘタレだと
putよりもmesのほうが速いだろうなって錯覚しちゃってた。
これからはガンガンputしようと思います
>>847 
すまそ、面倒くさがりなもんで・・・。>>846の最後2行心得ておきます。
>>848
ありがとうございます、一応ググってトップに出てくるんで
目は通したんだけども、esmes関連はやっぱり「死ぬほど」遅くはなってない
みたいだったんで・・・。

>>843 780fpsてコーヒー吹いた。何も表示なしで190fpsだったんですが。
esmes遅い云々以前に、いい加減うちのがロースペックすぎたかもしれません。
0856名前は開発中のものです。2006/11/29(水) 00:18:50ID:i+v7IWdt
851 名前:名前は開発中のものです。[sage] 投稿日:2006/11/28(火) 23:29:17 ID:BBB7xQBo
みんなすまん、俺みたいなヘタレだと
putよりもmesのほうが速いだろうなって錯覚しちゃってた。
これからはガンガンputしようと思います
>>847 
すまそ、面倒くさがりなもんで・・・。>>846の最後2行心得ておきます。
>>848
ありがとうございます、一応ググってトップに出てくるんで
目は通したんだけども、esmes関連はやっぱり「死ぬほど」遅くはなってない
みたいだったんで・・・。

>>843 780fpsてコーヒー吹いた。何も表示なしで190fpsだったんですが。
esmes遅い云々以前に、いい加減うちのがロースペックすぎたかもしれません。
0857名前は開発中のものです。2006/11/29(水) 01:01:18ID:pljl/4fq
うちもやってみたけど遅いよ
ウィンドウで、だいたい50fpsくらい。
何も表示無しだと495。
0858名前は開発中のものです。2006/11/29(水) 01:05:16ID:pljl/4fq
あ、うそですた。
表示しても500超えた。
0859名前は開発中のものです。2006/11/29(水) 10:41:04ID:Q0XWhUUM
ノートでvramが足りてないんじゃないの?
メインメモリをつかっちゃって遅くなってるのでは・・
とりあえずvzの設定を裏vramを使わない設定にして
常駐もしないようにしてみたら
0860名前は開発中のものです。2006/11/29(水) 23:19:49ID:6V6zK9p+
http://www.noritake-itron.jp/cs/hsp/
会社がHSPの紹介してるの初めて見た。
0861名前は開発中のものです。2006/11/29(水) 23:31:45ID:ziMu7viB
何かを大幅に間違えてHPSが組み込み系用にも配布されたら大爆笑物だな。
0862名前は開発中のものです。2006/11/29(水) 23:34:02ID:pljl/4fq
HPSでググったらハーリーポッター検索エンジンってのが出てきた
0863名前は開発中のものです。2006/11/29(水) 23:45:11ID:Q0XWhUUM
HPSでこんなんが出てきた
ttp://vam.anest.ufl.edu/sem/hps-manikin.png
ttp://www.med-smart.org/images/meti-hps.jpg
0864名前は開発中のものです。2006/11/30(木) 07:31:01ID:S43SaZcc
>>860
このページ一番下まで表示されてないんじゃないかと不安になる
デザインだな。

コンテンツは面白いけど。
0865名前は開発中のものです。2006/11/30(木) 16:20:58ID:ADuPoubu
あのさあてめえら、そんなにHSPの速度が信用できないなら、アセンブリ言語やりゃ
いーじゃん。
0866名前は開発中のものです。2006/11/30(木) 16:52:18ID:hHDh5/GB
信用できないからと言うだけで、調査も実験もせずに別の道に逃げるのは違うと思うが。
0867名前は開発中のものです。2006/11/30(木) 18:13:18ID:kkSPTvf1
アセンブリが必ずしも速いとは言えなそうだが、HSPよりは速いのは確実
0868名前は開発中のものです。2006/11/30(木) 19:53:54ID:zh01//gp
>>865にマジレス&ネタレスしてるやつはキモメン
縦読みしてみろ。
0869名前は開発中のものです。2006/11/30(木) 20:14:38ID:oIkJI0/A
      _      
     ´/´─`ヽ  
.    iπノノ从))〉 
.   ,从i ゚ ヮ゚ノリ゙ 
     /》Y《ヽ  
    (ソ元.レ')  
    く_/_|_ヽ    

      ヽ   
     ヽ ノ   
    '´ヘソヽ  
   i |〃^)))〉 
   ソリ゚ ー゚ノリ | <巫女さん
   く‖y ||フ| 
     /i〒i|  | 
    〈/人|〉 川 
    _
   '´   ヽ
   ! 〈.ノハ))ノ
.   、ソ゚ ー゚人   
  ソく‖y ||つ
   (/i〒i|丿
   〈/._|_リ
     __
  「,'´r==ミ、
  くi イノノハ)))
   | l|| ゚ヮ゚ノl|  
   j /ヽ y_7っ=
  (7i__ノ卯!
    く/_|_リ
0870名前は開発中のものです。2006/11/30(木) 20:17:02ID:oIkJI0/A
誤爆した…。申し訳ない。
0871名前は開発中のものです。2006/11/30(木) 20:42:18ID:GlFEcdGe
あいのーさじあゃてん?
0872名前は開発中のものです。2006/11/30(木) 21:23:16ID:QD5FLI/L
>>865
愛の一さじ?
わけわかめ
0873名前は開発中のものです。2006/11/30(木) 21:54:05ID:GlFEcdGe
ちょくとのページが消えてる?
0874名前は開発中のものです。2006/11/30(木) 22:05:04ID:GlFEcdGe
あれ?アクセスできた
鯖落ちだったんかな?
0875名前は開発中のものです。2006/12/01(金) 00:50:29ID:5AZIrDQJ
いや☆ぼーんおめ
0876名前は開発中のものです。2006/12/01(金) 01:40:58ID:pup+aqZp
ありがとうございます (゚ω゚)ゞ
0877名前は開発中のものです。2006/12/01(金) 02:13:52ID:6OrOzyMv
つーか123作品って。
これって入賞しても嬉しくないんじゃないか?w
0878名前は開発中のものです。2006/12/01(金) 02:38:39ID:8O5ugdav
いや☆ぼーんのいいところは後ろ向くところだな
0879名前は開発中のものです。2006/12/01(金) 10:01:11ID:zHdvSz/e
>>877
他人を蹴落とすためのコンテストじゃないってことさ。

それにただ選ばれたってだけならありがたみもない
かもしれないが、主催者側がわざわざ身銭切って
あれだけの数選ぶってのが気合入っててよくない?
0880名前は開発中のものです。2006/12/01(金) 10:47:23ID:74p8eAlU
otu
0881名前は開発中のものです。2006/12/01(金) 11:12:58ID:Ul/tWyMn
禿和賞の人は宝箱もらえませんのでよろしく。
0882名前は開発中のものです。2006/12/01(金) 15:29:43ID:o4gCMgsb
>>879
ああ、なるほどなぁ。
確かに競争率が高くなって入賞枠が削れると、
毎回同じ作者が上位を占めちまうもんなぁ。
HSPの敷居を更に低くしていく、知名度を上げるという点では、多く選ぶのも
悪くはないのか。

それにしても、宝箱はハズレだと思うのは俺だけか?
0883名前は開発中のものです。2006/12/01(金) 19:00:05ID:x1Z6ntkf
俺は宝箱欲しかったよ
orz
0884名前は開発中のものです。2006/12/01(金) 21:02:43ID:B7Q+wJfg
しかし今回はこれが本命だろうって物がないな。
小粒ぞろいというか。知らんだけかもしれないけど。
音ゲーのあれくらいか。
0885名前は開発中のものです。2006/12/01(金) 21:09:35ID:x1Z6ntkf
音げーはインパクト賞あげてもいいけど、俺にはついていけないよ
0886名前は開発中のものです。2006/12/01(金) 21:28:31ID:wesjDyBM
いやぼーん今やった。面白かった。
というか、どうしてこんなに快適に動くのか理解できんかった。
俺は未だにDXの使い方が分かってないようだ・・・。
HSPDXFIXのスプライト機能って速いの?
0887名前は開発中のものです。2006/12/01(金) 21:47:37ID:6+Kb0DUQ
>>886
描画の早さより
自動移動とか自動アニメとかで余裕が出ると思う
あと、当たり判定とか
0888名前は開発中のものです。2006/12/02(土) 00:00:13ID:pup+aqZp
ありがとうございます (゚ω゚)ゞ
スムーズな動作は、HSPDXFIXの力によるところが大きいと思います。

基本的に、>846の最後2行で述べられていることを心がけています。

考え方の一例ですが、HPゲージの処理。
普通にゲームが進行しているなら、ゲーム中の全フレーム数のうち
HP量に変化が起こるフレームは、ほんのわずかである(確率でいえば1%未満?)ことと、
(HPバーを描画させる命令の処理時間) > (if文でHPが変化したことを判断する時間)
であることを考慮して、
HPゲージ量に変化があったときのみ描画処理を行うようにしたりしています。

そのHPゲージの描画処理も、最初はes_boxfやex_copyなどを使って行っていましたが、
D3Dスプライトの機能をうまく利用すれば、矩形(■)パターンを横に
拡大して表示させておくだけで済むうえ、処理速度も速いことに気づいたため、
そちらの処理に差し替えました。


スクリプト中の計算などの無駄については、
http://www.interq.or.jp/www1/helohelo/elf/M_HSPmem.html
の人の書かれているメモ書きなどが参考になります。

自分でも独自に、書き方が複数考えられるスクリプトについて
こまめにベンチスクリプトを起こし、調査して、高速化につとめました。
(例)
・if A or B : Do  の記述は、
・if A :Do
 if B :Do 2文に分けたほうが速い。 …とか。

その他、実数演算を一切排除。配列変数の読み書きがけっこう遅いので極力排除
あたりでしょうか。…こんなこと言ってると、またC言語使いの人に煽られそうですが。
0889名前は開発中のものです。2006/12/02(土) 01:38:54ID:AoQRSBka
計算式の小細工は当たり判定とか最も近い敵をサーチするとか(誘導弾等)
何千、何万回ループする可能性のある場面にはかなり有効だけど
実際何フレーム稼げるんだろ…

あと、例えばこの敵のサーチでは律儀に平方根取る必要はないし、
毎フレームのサーチを1フレームおきにしてしまう、60フレームで追跡を諦める、
弾の数そのものを減らす等々
そういうアルゴリズムそのものを見直すのも効果的。

"変化したことを判断する" この考えもすごくいいヨ
0890名前は開発中のものです。2006/12/02(土) 01:57:17ID:/SCokOQc
HSP3でのセーブやロードの質問です。

配列変数を使わなければちゃんと保存されるのですが、
dimやsdimを使うとa.0だけ保存されてそれ以降のa.1 a.2などが保存されません。
どうすればいいのでしょうか?


↓のサンプルをそのまま試してもHSP2.6だとちゃんと動くのですがHSP3だとちゃんと保存されません。
ttp://sapporo.cool.ne.jp/daturyoku/HSP/jitugi/rpg_01.html

ttp://72.14.253.104/search?q=cache:pHb1U77pzF4J:noise.b7m.net/Lang/HSP/hsp_m7.html+sdim+HSP+%E3%82%BB%E3%83%BC%E3%83%96%E3%80%80bsave&hl=ja&ct=clnk&cd=10
0891名前は開発中のものです。2006/12/02(土) 02:23:57ID:Q74I213y
dupなんか使うより#enumで名前を付けたものを配列の添字にした方がいい
0892名前は開発中のものです。2006/12/02(土) 04:56:47ID:gdxv7++3
>>890
2.6用のサンプルをそのまんま3.0で動かして正常動作しませーん分かりまちぇーん
って何言ってんだよ。
んなもん自分であーでもないこーでもないってごちゃごちゃごちゃごちゃやって調べ
るんだよ。
ごちゃごちゃごちゃごちゃやった上で聞けよ。
で、お前の代わりに俺がそのごちゃごちゃごちゃごちゃをやって教えてやろうかとも
思ったがやめた。なぜならdupにカーソル合わせてF1押したら「ハア?おにたまてめえ
何が言いたいんだよ!?これでマニュアルのつもりか!?」って思ったからだ。
訳分かんね。「日本語でおk」とか思っちゃったよ。

#define NUM_DATA 5
dim a,NUM_DATA
dup hp_max,a(0)
dup mp_max,a(1)
dup hp,a(2)
dup mp,a(3)
dup money,a(4)
hp_max=20 : hp=18
mp_max=10 : mp=10
money=100
bsave "save.txt",a
bload "save.txt",a,4*NUM_DATA
repeat NUM_DATA
mes a(cnt)
loop

ちゃんと動くぞ。
0893名前は開発中のものです。2006/12/02(土) 08:21:13ID:/SCokOQc
すみません。説明不足でした。dimとsdim使わなければ問題なくセーブはできるんですが、
dim hp_max,2
hp_max.0 = 20
hp_max.1 = 30

とか

sdim aitem,20,3
aitem.0="剣"
aitem.1="鎧"
aitem.2="盾"

とかを保存するとhp_max.0の20とaitem.0の剣だけ保存されてhp_max.1の30と鎧 盾が保存されないんです。


ttp://sapporo.cool.ne.jp/daturyoku/HSP/jitugi/rpg_01.html
ここのも
aitem.1="鎧"
aitem.2="盾"
aitem.3="謎の巻物"
この三行を消せば問題なくセーブはできるんですが、配列使った変数をセーブする方法がわからないんです。
0894名前は開発中のものです。2006/12/02(土) 15:50:02ID:gUJ6PzqY
>>893
arraysave
0895名前は開発中のものです。2006/12/02(土) 16:58:26ID:Q74I213y
#define BUFMAX 10
#define BUFSIZE 32
#define FILENAME "test.txt"
 sdim array,BUFSIZE,BUFMAX
 bsave FILENAME,array(0),0
 cls 1
*main
 pos 0,0
 repeat BUFMAX
   input array(cnt),64,25,BUFSIZE
 loop
 button gosub "SAVE",*save
   ID_save = stat
 button "LOAD",*load
   ID_load = stat
 repeat
   if ginfo_act != -1 {
     objsel -1
     getkey KEY_enter,13
     getkey KEY_ctrl,17
     getkey KEY_S,83
     getkey KEY_L,76
     if KEY_enter & stat = ID_save : cmd=1 : break
     if KEY_enter & stat = ID_load : cmd=2 : break
     if KEY_ctrl & KEY_S : cmd=1 : break
     if KEY_ctrl & KEY_L : cmd=2 : break
   }
   wait 10
 loop
0896名前は開発中のものです。2006/12/02(土) 16:59:07ID:Q74I213y
 switch cmd
   case 1 : gosub *save : swbreak
   case 2 : goto *load : swbreak
   default: swbreak
 swend
 stop
*save
 color 192,192,192 : boxf 70,0,300,30 : color 0,0,0 : pos 70,0
 repeat BUFMAX
   bsave FILENAME,array(cnt),BUFSIZE,BUFSIZE*cnt
 loop
 mes FILENAME+"にセーブしました。"
 return
*load
 cls 1 : pos 70,0
 exist FILENAME
 if strsize = -1 {
   mes FILENAME+"がありません。"
 }
 else {
   repeat BUFMAX
     bload FILENAME,array(cnt),BUFSIZE,BUFSIZE*cnt
   loop
   mes FILENAME+"をロードしました。"
 }
 goto *main

こんな感じでどうだ?
0897名前は開発中のものです。2006/12/02(土) 18:07:25ID:6IU8L7/C
>>893
複数の要素を含む文字列バッファを一度に保存できないので下記みたのをやるか
894の言ってるのを使うか
#module
#define global tbsave(%1,%2,%3=-1,%4=0) _tbsave %1,%2,%3,%4
#deffunc _tbsave str f,array txt,int size,int offset
txtemp="" :foreach txt :txtemp+txt(cnt)+"\n" :loop
exist f :if strsize<0{bsave f,txtemp,size}else{bsave f,txtemp,size,offset}
return

#define global tbload(%1,%2,%3=-1,%4=0) _tbsave %1,%2,%3,%4
#deffunc _tbload str f,array txt,int size,int offset
exist f :sdim txtemp,limit(strsize-offset,0,strsize) :bload f,txtemp,size,offset
strindx=0 :foreach txt :getstr txt(cnt),txtemp,strindx,0 :strindx+strsize :loop
return
#global

これを最初の方に挿入か別ファイルにして #include
やってる事は、要素ありの文字列を改行付きの一つの文字列にしてセーブ
改行付きの文字列をロードして改行毎に要素付き文字列バッファに代入


>;文字のデータを続きに保存
>bsave "save.txt",b,,4*NUM_DATA

>;文字のデータだけを読み出す
>bload "save.txt",b,,4*NUM_DATA
のロードセーブ命令を tbsave と tbload に置き換え(使い方は同じ)
0898名前は開発中のものです。2006/12/02(土) 18:50:16ID:6IU8L7/C
間違った
#define global tbload(%1,%2,%3=-1,%4=0) _tbsave %1,%2,%3,%4

#define global tbload(%1,%2,%3=-1,%4=0) _tbload %1,%2,%3,%4
だった・・・

てか、実は質問の内容と問題になってるものは違うんじゃないかって気がしてきた・・・


0899名前は開発中のものです。2006/12/02(土) 19:40:33ID:/SCokOQc
いろいろありがとうございます。arraysave使ってやってみます。
自分でも説明の仕方がよくわからないのですが、

dim save,2
dim a,2

dup a.0,save.0
;dup a.1,save.1

a.0= 10
a.1= 20

bsave "save.txt",save
stop

これだと5行目のdup a.1,save.1で「配列の要素書式が間違ってます」というエラーがでます。
arraysaveにしても5行目でエラーがでて同じだと思うんですが…。
a.1 = b.1 みたいに配列変数の1以降を配列変数の1以降に入れることはできないんですかね。
0900名前は開発中のものです。2006/12/02(土) 19:41:09ID:6IU8L7/C
>>893
>とかを保存するとhp_max.0の20とaitem.0の剣だけ保存されてhp_max.1の30と鎧 盾が保存されないんです。
hp_maxはサイズをちゃんと指定するか-1又は省略すれば保存できるはず。
バイナリデータとしてファイルを確認してる?
(保存したファイルにオフセット間違ってaitemでデータを上書きしてるとか・・・)

aitemの方は897を参照

>この三行を消せば問題なくセーブはできるんですが、配列使った変数をセーブする方法がわからないんです。
これは、セーブの問題じゃなくて、文字列配列のクローンが作れない問題だろう
(dup aitem.0,b.1の時点でaitem.0以外の要素が消える)
リンク先には
「先頭だけやると残りは自動的に当てはめられます」
って、あるけど、3.0で文字列配列の場合指定された要素しかクローンが作れない
(メモリが連続していないからだろう)

てか、クローンなんて特別な事情が無けりゃ使わない方がいいと思うが・・・
0901名前は開発中のものです。2006/12/02(土) 19:49:53ID:/SCokOQc
あ、>>899の最後の行は忘れて下さい…。勘違い。もう少し調べてやってみます。
0902名前は開発中のものです。2006/12/02(土) 20:15:48ID:6IU8L7/C
>899
>これだと5行目のdup a.1,save.1で「配列の要素書式が間違ってます」というエラーがでます。
そんな使い方は許されてないから無理
dup a.0,save.0の時点で a.1=save.1になってるし
変数名1に要素数を付ける事は出来ない

0903名前は開発中のものです。2006/12/02(土) 20:22:35ID:/SCokOQc
>>893を使ってとりあえずセーブだけはできました。次ロードやってみます。
#include"module_save.hsp"

#define NUM_DATA 2

dim save_a,NUM_DATA
sdim save_b,20,2
dim a,2
sdim b,20,2

a.0= 10
a.1= 20
b.0 ="テスト01"
b.1 ="テスト02"

*save
save_a.0 = a.0
save_a.1 = a.1
save_b.0 = b.0
save_b.1 = b.1

tbsave "save.txt",save_a
tbsave "save.txt",save_b,,4*NUM_DATA

stop

一応これでセーブはできたんですが、こんなやり方でいいんですかね。
0904名前は開発中のものです。2006/12/02(土) 20:44:17ID:6IU8L7/C
>>903
まった
>tbsave "save.txt",save_a
こっちは標準の bsaveを使わないと数値データが数字文字列に置き換わって保存される

ロードもdimの配列に読み込むのは標準の bload を使う
sdimで作った配列に読み込む時に tbloadを使う
897の tbload は898を見て修正してくれ
0905名前は開発中のものです。2006/12/02(土) 20:47:29ID:/SCokOQc
ありがとうございました。セーブとロード両方できました。
0906名前は開発中のものです。2006/12/02(土) 20:49:59ID:/SCokOQc
#include"module_save.hsp"

#define NUM_DATA 2
#define STR_DATA 2
#define STR_SIZE 20

dim save_a,NUM_DATA
sdim save_b,STR_SIZE,STR_DATA
dim a,2
sdim b,20,2

a.0= 10
a.1= 20
b.0 ="テスト01"
b.1 ="テスト02"

button "SET",*set
button "SAVE",*save
button "LOAD",*load
button "VIEW",*view
stop

*set
a.0= 30
a.1= 40
b.0 ="テスト03"
b.1 ="テスト04"
stop
0907名前は開発中のものです。2006/12/02(土) 20:51:04ID:/SCokOQc
*save
save_a.0 = a.0
save_a.1 = a.1
save_b.0 = b.0
save_b.1 = b.1

bsave "save.txt",save_a
tbsave "save.txt",save_b,,4*NUM_DATA
stop

*load
;ファイルの有無をチェック
exist "save.txt"
if strsize==-1 : dialog "saveデータがありません。" : stop

bload "save.txt",save_a,4*NUM_DATA
tbload "save.txt",save_b,,4*NUM_DATA
stop


*view
mes ""+save_a.0
mes ""+save_a.1
mes ""+save_b.0
mes ""+save_b.1
stop

とりあえずこれで大丈夫ですかね。
0908名前は開発中のものです。2006/12/03(日) 01:01:56ID:aTMNovR/
とりあえずセーブロードは、OKだろう
関係ないけど a.1 とかはhsp3.0なら a(1) って書くようにした方がいいよ
0909名前は開発中のものです。2006/12/03(日) 01:04:30ID:1ofnSlCI
ノートバッファに指定した変数をそのままbsaveでtxt保存すると、ゴミみたいな文字が紛れ込むんですけど、仕様でしょうか?
0910名前は開発中のものです。2006/12/03(日) 01:11:53ID:aTMNovR/
配列の要素位置を気にしなくて良い方法(tbsave、tbloadを使用)
#enum HP_MAX=0 ;データ開始位置
#enum MP_MAX
#enum HP
#enum MP
#enum MONEY
#enum NUM_DATA ;データ終り

#enum NAME=0 ;データ開始位置
#enum SWORD
#enum ARMOR
#enum SHIELD
#enum SCROLL
#enum SAVE_NAME
#enum STR_DATA ;データ終り

#define STR_SIZE 20
dim a,NUM_DATA+10 :sdim b,STR_SIZE,STR_DATA

button "SET",*set :button "SAVE",*save :button "LOAD",*load :button "VIEW",*view :stop
*save
bsave "save.txt",a :tbsave "save.txt",b,,4*NUM_DATA :stop
*load
exist "save.txt" :if strsize==-1 { dialog "saveデータがありません。" : stop}
bload "save.txt",a,4*NUM_DATA :tbload "save.txt",b,,4*NUM_DATA :stop
*view
repeat NUM_DATA :mes a.cnt :loop :repeat STR_DATA :mes b.cnt :loop :stop
*set
a(HP_MAX)=20 : a(HP)=18 :a(MP_MAX)=10 : a(MP)=10 :a(MONEY)=100
b(NAME)="冒険者" :b(SWORD)="剣" :b(ARMOR)="鎧" :b(SHIELD)="盾" :b(SCROLL)="謎の巻物" :b(SAVE_NAME)="旅の始まり"
stop
0911名前は開発中のものです。2006/12/03(日) 02:58:59ID:USWlC1AK
>>888
ちょっち質問が・・・

wasdまたはカーソルで移動、
マウスでaim&fireにしなかったのはなぜ?
0912名前は開発中のものです。2006/12/03(日) 06:11:30ID:i4svqXdd
>>911 いや☆ぼーんの前身である、レーザー表示実験スクリプトを書くきっかけになった、
ここの前スレの270でアップされていたシューティングが、そのような操作系でした。
http://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0028.zip
後に別スレで"Fatal Strike"と名づけられ、開発が続けられていたので、
楽しみにしていたのですが、5月から音沙汰なくなってしまっています。(;ω;) カムバック!

この"Fatal Strike"を参考にさせてもらって、いや☆ぼーんの操作系を決めたのですが、
単純に言うと、「そのほうが面白いと思った」からです。


詳しいことは、うまく伝えにくいのですが─、
プレイヤーの選択した行動に対して、メリットとデメリットが同時発生するときに、
ゲーム性が産まれると思っています。

例えば、ストリートファイターIIのような格闘ゲームでの一場面。
強攻撃は当たれば威力が大きいが、はずせばスキが生じる。
弱攻撃はスキは小さいものの、威力は小さい。
プレイヤーは、どちらの方法で攻撃をするかの選択を迫られます。

今回のいや☆ぼーんの操作系の場合だと、
キャラの移動(回避行動)をとるか、ターゲットの移動(攻撃行動)をとるかの選択を、
常にプレイヤーに迫ることになって、それにより
自機移動にもゲーム性が産まれて、面白くなるだろうと考えました。

ただ、あの操作系にすることにより、
弾幕型シューティングのように敵弾が絶え間なくバラまかれるような
(=キャラ移動でいっぱいいっぱいで、ターゲット移動するヒマがない)
場面を、設けるワケには行かなくなってしまったので、
適度に敵の攻撃に、空白時間というか、スキを設定してみています。(゚ω゚)ゞ

ついでに「珍妙なインベーダーっぽいもの」。この時点では、マウスでaim&fireでした。
http://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0030.zip
0913名前は開発中のものです。2006/12/03(日) 09:34:51ID:USWlC1AK
なるほど、答えてくれてサンクス
0914名前は開発中のものです。2006/12/03(日) 15:07:10ID:eOdbog8B
作品をlzhで圧縮するのはよそうぜ
zipだと解凍ツールいらないからね
0915名前は開発中のものです。2006/12/03(日) 15:28:00ID:Nj+hqIm4
圧縮フォルダ?
あれかえって不便なんで切ってる
0916名前は開発中のものです。2006/12/03(日) 15:31:19ID:ZYadba5Y
それってwindowsに標準でくっ付いてるやつ?使ったこと無い
0917名前は開発中のものです。2006/12/03(日) 15:35:41ID:Bbr+Q7GQ
なるほど、誰でも出来るようにしないほうが
厨をふるい落せて良いのでLHAにしよう。
0918名前は開発中のものです。2006/12/03(日) 15:49:48ID:ZYadba5Y
(´-`).。oO(ZIPの解凍すらできない奴がHSPの作品なんか落とさないだろ…)
0919名前は開発中のものです。2006/12/03(日) 16:15:52ID:ZCqMgRF/
xpの圧縮フォルダが好きなら、これでも入れとけば?>>914
ttp://www.microsoft.com/genuine/offers/
0920名前は開発中のものです。2006/12/03(日) 20:00:43ID:mz21Faqm
#deffunc test
return

とすると、
「サブルーチン外のreturnは無効です」
というメッセージが出るのですけど、
Cの

func(){
}

のようには使えないのですか?
0921名前は開発中のものです。2006/12/03(日) 21:03:49ID:Y61nsQgE
>>920
--------------------
#module
#deffunc test
return
#global

test
--------------------
ok?
0922名前は開発中のものです。2006/12/03(日) 21:11:43ID:mz21Faqm
Yes!
Very thanks :D
0923名前は開発中のものです。2006/12/04(月) 00:36:55ID:5KV/Amq+
Yes!
Takatu clinic :by Hiromi.Go!
0924名前は開発中のものです。2006/12/04(月) 05:43:42ID:D9AAMnC0
HSPって、現代版のファミベーだよな。
極限まで無駄を無くさないと遅いマシンじゃリアルタイムゲームで60fps保てない。
特に標準機能だけだと最悪だな。
0925名前は開発中のものです。2006/12/04(月) 08:43:51ID:gJP9oza1
>>920
モジュールなしでもできる

goto *main

#deffunc test
return

*main
test
0926名前は開発中のものです。2006/12/04(月) 18:15:27ID:vDvOjh74
HSPで弾幕シューティングとか無理?
0927名前は開発中のものです。2006/12/04(月) 18:20:05ID:5hI0ri70
>>926
可能
0928名前は開発中のものです。2006/12/04(月) 18:28:33ID:afZ6zk4/
>>926
探せば見つかる
0929名前は開発中のものです。2006/12/04(月) 22:48:04ID:mfIi/H46
話聞いてると弾幕シューとかキツそうだけどなあ
0930名前は開発中のものです。2006/12/04(月) 22:53:16ID:cXzn2wP3
HSPDX系使うと案外楽。当たり判定とか移動とか丸投げww
だがゲームの構成能力ゼロの俺にはRPGツクールの
起きる→話しかける→ありえない強さのラスボス 以上のものが作れない
0931名前は開発中のものです。2006/12/04(月) 22:55:49ID:KCYkFa2K
画面に2〜300発位の弾幕なら全然余裕。
60fps保てないって今時どんだけしょっぱいマシン使ってるんだよ。
0932名前は開発中のものです。2006/12/04(月) 22:59:08ID:/BOE26e6
どの程度が弾幕か分からないし
可能かどうかはPCのスペック次第でHSPの問題じゃない
926の考える弾幕が一画面に何発玉が出て、PCのスペックは
どれぐらいを予定してるかが分からないから
無理か可能か答えても意味なし

ただ、HSPだから無理なんて事はない
0933名前は開発中のものです。2006/12/04(月) 23:03:36ID:cXzn2wP3
どっかのゲームのボスのように8*8弾で640*480埋め尽くすと結構厳しい
0934名前は開発中のものです。2006/12/04(月) 23:04:14ID:cXzn2wP3
あ、640*480はスクリーンサイズだからもっと小さいな
0935名前は開発中のものです。2006/12/04(月) 23:04:30ID:h3l4tI5a
旧石器時代の骨製PC発掘して使ってるけど快適。

ところでDX使ってると全画面表示が基本?
HSPDXFIXでアクションっぽいもの作ってるんだけど、全画面表示では60前後で安定してるんだけど
ウィンドウモードで起動するとfpsが120とかばらけてゲームにならないんだけど、どうすればいいのかわからなくて悶えてる。
0936名前は開発中のものです。2006/12/04(月) 23:04:51ID:mfIi/H46
怒蜂でたしか512だったかな。
ちと実験してみるかなあ。
0937名前は開発中のものです。2006/12/04(月) 23:13:35ID:5+x2KYrX
俺思ったんだけど、
どうせ画面いっぱい弾でうめつくすなら、画面いっぱいサイズの巨大な弾一発撃ったほうがよくね?
0938名前は開発中のものです。2006/12/04(月) 23:19:31ID:mfIi/H46
お前頭いいな
0939名前は開発中のものです。2006/12/04(月) 23:48:22ID:cXzn2wP3
>>935
ウィンドウモードだとウェイトがかからない。sync系にパラメータ付けられるだろ。それでウェイトをかける。
ヘルプにも書いてあったきがするけど、ウィンドウモードはあくまでデバック用
0940名前は開発中のものです。2006/12/05(火) 07:58:12ID:LzMRSJ8n
G400で動かせるような環境で開発しろよおめーら
あ、いや、なんでもないです。すいません・・・。


>>939
でもさ、ウインドウモードって何気にDDrawだけだと速いよね。
言うほどちらつきもないし。
D3Dでちょっと不具合が出る程度じゃなかったっけ?
0941名前は開発中のものです。2006/12/05(火) 15:21:38ID:eKrKGDQw
DirectXでも最近はウインドウモードのが速いんじゃなかったっけか
つかG400なんて捨てちまえよw
0942名前は開発中のものです。2006/12/05(火) 15:22:33ID:eKrKGDQw
ああごめんDirectXじゃなくてD3Dだw
0943名前は開発中のものです。2006/12/05(火) 20:17:11ID:6SbfMAJX
DDrawだったらG400でも最新ビデオカードでも大して変わらないよ
0944名前は開発中のものです。2006/12/05(火) 20:54:02ID:+IWJ5TeB
0945名前は開発中のものです。2006/12/05(火) 23:41:12ID:qFMBfJcD
>でもさ、ウインドウモードって何気にDDrawだけだと速いよね。

そらお前がG400だからじゃ(ry
0946名前は開発中のものです。2006/12/06(水) 00:02:49ID:r+NeLPBD
おまい達、そうやってG400をいじめると買い換えちまうぞ!
いいのか? よく考えろ?!

まぁ、今のままで満足してるからグラボに回す金なんてないんだけどさ。
ヘヴィーなゲーマーというわけでもないし、3Dも扱わないし…。
いいんだ、どうせ俺は…。
0947名前は開発中のものです。2006/12/06(水) 01:32:00ID:yp8uTdWH
グラボ欲しいんだけどさ、
マザボがAGPなんだよねorz
レス数が900を超えています。1000を超えると表示できなくなるよ。