[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 06/28 17:07 / Filesize : 270 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

HSP - Hot Soup Processor [11]



1 名前:名前は開発中のものです。 mailto:sage [2006/03/24(金) 18:31:39 ID:jNg23CIj]
       (  ,,,)
        .(  ,,)      スクリプト言語 HotSoupProcessor について
        ( ,,).        ゲーム製作の視点から、また〜りと語り合うスレ。
     , -──- 、
    (,;::-──-; )-、
     .|` ̄ ̄ ̄´;;|ヽ l   * 質問する前に検索してみる事
     l;    :::;;;l-' /   * ヲチ、ネタなどはスレ違い
    ,-ヽ───.'-、´..   * 歴代スレ、関連サイトは >>2-4 あたり
    ヽ ──── '

  ONION software (本家)
   www.onionsoft.net/

94 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 00:11:40 ID:lp8IWw8M]
HSP3だと、実際にエラーが発生したスクリプトの行と、
エラーメッセージに報告されるエラー行が一致してないことがあるから、
そのへんも疑ってみそ。

その場合、報告された行より前にある命令文が原因なんだが。

95 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 00:27:57 ID:InBujAxF]
>>92
変数print_textのサイズはいくつで
cntは何の時にエラーになるとかぐらい書けよ
なんで、想像しないと分からないような聞き方すんだよ

>>93
>変数は明確に初期化しないと4バイトしか確保されないみたいやね。
読み取りの場合サイズの拡張はされないからな


96 名前:92 mailto:sage [2006/04/04(火) 00:55:42 ID:C0af3Zzg]
レスマジ有難う。

>>93
これは問題なしでした(多分……)。
一応print_textはsdimで100文字分確保してます。

>>94
コレ結構辛いですよね。
早く改善して欲しい……というのはユーザーのエゴか?
あと、実際のエラー行はこの行よりも後なんだけど
この行をコメントアウトすると出なくなるのでここがエラーじゃないかと思ってます。

>>95
スマソ('A`)
print_textは上で書いたとおりで
cntは0ではねられてしまうんです

print_textには一応テストとして TEST を代入してあります

97 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 01:21:30 ID:lp8IWw8M]
>>96
…となると、あと変数cの値と、
実際のエラー行までの内容が分からないとな。長すぎてもウザいが…省略しすぎ。

sdim print_text,100
print_text="test"
repeat c:a=peek(print_text, cnt):loop

だけだとエラーにならないから、>>92 の質問の答えとしては
ここまでに提示されたスクリプトについては「間違ってない」としか言えない。

98 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 01:24:58 ID:dDnQNPP3]
print_text = "TEST"
c = 10

repeat c
a = peek(print_text, cnt) // ←ここ
mes a
loop

stop

異常なし。あとは周辺に全角スペースとかタイポを探してみればどうか。

99 名前:92 mailto:sage [2006/04/04(火) 10:11:50 ID:C0af3Zzg]
重ね重ねスマソ。

全部やると邪魔なので、別に作ってみた。
これでもpeekではねられてしまう。

別のファイルに
---
#module
#deffunc test_mes str p_text
sdim a,100
c = strlen(p_text)
repeat c
a = peek(p_text, cnt) ←エラー行
mes a
loop
return
#global
---
を記述してメインのスクリプトでインクルード。
メインループの所で
---
test_mes "TEST"
---
を実行。
何か間違いがあったらよろしければご教授下さいorz

>>98
その類の文字は見つかりませんですた。

100 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 10:26:04 ID:InBujAxF]
>>96
>あと、実際のエラー行はこの行よりも後なんだけど
>この行をコメントアウトすると出なくなるのでここがエラーじゃないかと思ってます。
なんで、エラーの原因分かってないのに勝手に削除したのを見せるんだ・・・

>cntは0ではねられてしまうんです
それは、どこでcntを見たの?

実際にエラーになる前後だけ抜き出してテストしたの?

それでもエラーになるなら
そのテストしたスクリプトをコピペしてくれ
原因を削除されたの見せられても分かるはずねーべ

101 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 11:04:38 ID:dDnQNPP3]
>>99
バグかは分からんが、#deffuncのstrはpeekできないのかも。とりあえず、

#module
#deffunc test_mes str p_text
s = p_text //【追加】
sdim a,100
c = strlen(p_text)
repeat c
a = peek(s, cnt) //【p_textをsに変更】
mes a
loop
return
#global

test_mes "TEST"
stop

これで通るはず。あとバージョン依存とかは未調査れす。

102 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 11:17:08 ID:InBujAxF]
うお、テレビ見ながら書いてたら・・・

99のを試してみたら
101の人と同じ結論に・・・

最初から#deffuncのstrって書いとけばもっと早く・・・



103 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 11:50:24 ID:InBujAxF]
#deffuncのパラメータで確保した配列は通常と違うな
b="TEST"
test_mes b
にしてarray p_textとした場合は
a = peek(p_text, cnt) は問題なくなるけど
foreach p_textってやっても要素分のループはされないで1回で抜けちゃう

仕様っぽいけど扱いにくい気が・・・

104 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 12:08:01 ID:InBujAxF]
あ、勘違いしてた

#deffunc array p_text
って元が文字列型なら文字列か・・・
foreachが使えないのは正常だった

って事は
#deffunc str
の場合だと peek("TEST", cnt)な感じでintなんかと同じような事なのかな

>>99
つー事で
test_mes命令の中で配列に移すか
test_mes命令実行の前に配列に入れて配列として受け取るか
って事だ



105 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 13:24:44 ID:bynZN5DE]
すいません参考書の通り

*HAJIME
rnd R,10
mes R
wait 5
goto *HAJIME

と、打ったのですがエラーになります。
どうしてでしょうか?


106 名前:105 mailto:sage [2006/04/04(火) 13:26:46 ID:bynZN5DE]
あっ、HSP3.0で
参考書は2.6を解説してます。

107 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 13:34:25 ID:dDnQNPP3]
>>106
HSP3だと命令から関数に変わったのがあるから、命令とか関数ごとに[F1]キー押して確認しながらやるよろし。
ここではrndが関数なので、R = rnd(10)

108 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 13:43:07 ID:bynZN5DE]
>>107
有難う御座います。
やはり2.6と3.0では、少し違ってるんですね。
気をつけます。

109 名前:92 mailto:sage [2006/04/04(火) 13:57:47 ID:C0af3Zzg]
>>100-104
ご教授頂いた方法でやった所、動作しました。
質問しているのに的確に必要な情報を出せなくてすみませんでしたorz

どうも有難うございました。



110 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 14:31:18 ID:bynZN5DE]
続いて申し訳ないんですが
HSP3.0には、palcopyという命令はないのでしょうか?

2.6の参考書には書いてあるのですが、F1で調べてみても
見つかりませんといわれました。。


buffer 1,,,1
picload "janken.bmp"


screen 0,320,260,1
palcopy 1
gmode 2

pos 30,0 :gcopy 1,0,0,200,180
stop

このように使いたいのですが、エラーになります。

111 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 14:48:36 ID:0KEBcRWI]
>>110
palcopyは3.0になって消えた。代用になる関数も無いらしい。
こんなのがあったんで貼っておく
>HSPラウンジ「HSP3でのpalcopyの代替命令は?」
>ttp://dream.freespace.jp/perl-bin/puma/lng/joyful.cgi?print+log4/05050005.txt

ところで、3.0リファレンスにあるdefcfuncのサンプルを
そのままコピーして実行してもエラーになるのは何故なんだ・・・

112 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 14:51:35 ID:bynZN5DE]
>>111
有難う御座います。



113 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 15:43:21 ID:InBujAxF]
>>111

goto *start
#defcfunc half int a
return a/2
*start

mes half(10)

stop

・#defcfuncは直接実行される場所には書けない
・関数なので、half() 括弧でパラメータを渡す(配列)から値を読み出す感覚)
・使うときは#defcfunc定義より下の行で使うのが条件


114 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 15:59:59 ID:InBujAxF]
ちょい修正
>・#defcfuncは直接実行される場所には書けない

#module
#defcfunc half int a
return a/2
#global

にすれば使用行前ならどこでも書ける

関数って便利に感じるけどサブルーチンに飛んでるのと同じようなものだからなぁ
ほとんど#defineに乗り換えた(まだ処理速度気にするような物は作れてないが・・・)


115 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 18:24:51 ID:lp8IWw8M]
>>109
公式の、旧HSP3掲示板 のログ(とくに過去ログ3)を
"#deffunc について" で検索すると、もう少し踏み込んで検証した結果がみつかる。

あわせて、"mref"命令のヘルプにも目を通して、
ユーザー命令/関数の引数を参照する時の注意点として知っておくと良いかと。

116 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 18:31:24 ID:IK5j7QUB]
(,,゚Д゚)∩先生質問です
HSP3.0で複数のAVIファイルをパックしたいんですが
パックしたファイルを再生出来ません。
作成したEXEファイルはAVIファイルも含んだ大きさになっています。
更に、AVIファイルを実行ファイルのカレントに置くと正常に再生されます。
オサルなもんでイマイチ解決策が分からないんですが
これはどういう事なんでしょう?

117 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 21:58:40 ID:MQbHZb6i]
つまりHSPはAVIをパックできないというわけ。
midもできなかったような、、、

118 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 22:06:50 ID:5f2AODM1]
正確にいえば、パックはできるけれど直利用が×
ファイルとして存在してないといけない

119 名前:116 mailto:sage [2006/04/04(火) 22:36:32 ID:IK5j7QUB]
>>117
>>118

なるほど。
じゃ、AVIファイルを使用して、且つ
そのAVIファイルを出来る限り隠匿したい場合はどうすれば?

暗号化したものを読み込みバッファに対して復号かける
とかになるんでしょうか?

120 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 22:39:13 ID:MQbHZb6i]
aviを暗号化か大変そうだ・・・



121 名前:116 mailto:sage [2006/04/04(火) 22:42:45 ID:IK5j7QUB]
>>120
バイナリで読み込んで適当にXORする
とかでもHSPでは大変なんでしょうか?

122 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 22:46:28 ID:MQbHZb6i]
あー、大変じゃないね

>>120撤回w



123 名前:名前は開発中のものです。 mailto:sage [2006/04/04(火) 23:10:19 ID:OoZD/qrf]
簡単に見られたくないだけなら
ファイル先頭の数百バイトだけでも良いんじゃまい

124 名前:116 mailto:sage [2006/04/04(火) 23:16:28 ID:IK5j7QUB]
>>123
なるほど。

ヘッダ暗号化ツールと復号ルーチン書くか。

125 名前:116 mailto:sage [2006/04/05(水) 00:01:39 ID:IK5j7QUB]
またまた(,,゚Д゚)∩先生質問です。

ヘッダの暗号化ツールのようなモノは即効出来たんですが
復号ルーチンでつまづいてます。そこで質問です。

mmload命令で読み込んだAVIファイルのポインタを取得する方法
又は、メモリ上のバッファにバイナリで読み込んだAVIファイルを
mmload命令で読み込む方法

は、無いでしょうか?
全然思いつかないんですが…

再生する必要が出てきたら
暗号化ファイル読み込み→メモリ内で復号
→TMPファイルで書き出し→TMPファイルをmmload
とかだとイマイチすっきりしないんですが…

126 名前:名前は開発中のものです。 mailto:sage [2006/04/05(水) 00:59:17 ID:2jcVuFI1]
>>125
メモリストリーム命令 memfile ってのがあったんでいちおう試してみたけど
うまくいかないね。
mmloadのヘルプによると─

「mmload命令は、指定されたファイルが2MB以下の音声(WAV)ファイルの場合は、
メモリに内容を読み込んでおきリアルタイムに再生可能な状態にします。
それ以外の場合は、ファイル名だけが登録され、実際のファイルの読み出しは
メディア再生時(mmplay実行時)に行なわれることになります。」

─ってことだから、
mmplay命令ではメモリバッファからの動画の再生はそもそもできないんじゃないかと思った。

DirectShowを直接叩けばなんとかなりそうな気がするんだけど、
自分でもまだソコまでやったことないから分からないな。sorry

127 名前:116 mailto:sage [2006/04/05(水) 01:48:17 ID:lDQFtjKE]
>>126
なるほど〜。

って事は、メモリ内で復号しながら再生、とかって方法は
自前で再生部を一からコーディングする必要があり
HSP上で復号したものをmmplayで再生させるには
一度、正常な状態のファイルを迂回させないとムリポ
って事なのかな。

むぅ…

ありがとでした。もう少し頭を悩ませて見ます。

128 名前:名前は開発中のものです。 mailto:sage [2006/04/05(水) 15:54:04 ID:4M43MTg9]
ところで、HPSで作られた凄いゲームってありませんか?


129 名前:名前は開発中のものです。 mailto:sage [2006/04/05(水) 15:57:07 ID:3N+xd79N]
battlefieldとか有名かな?

130 名前:名前は開発中のものです。 mailto:sage [2006/04/05(水) 16:46:28 ID:q1jY5iG7]
凄いゲームってどんなのなんだ?
面白いゲームなら結構あるけど、最新の3D映像&高度な物理計算で超リアルな挙動のゲームとかだと無理っぽいが

131 名前:名前は開発中のものです。 mailto:sage [2006/04/05(水) 23:44:44 ID:ykcEYmvB]
すごいって技術的に高度って意味なのか?

132 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 13:29:16 ID:pd6PrNaX]
ローグライクなゲーム作ろうと思っていて、部屋と入り口作成までは出来たけど通路はどうやればいいですか
一応下がソースです
無駄な処理が多数あるかもしれませんので、その辺もお願いします
gamdev.org/up/img/5208.zip
パスワードはdungeonです



133 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 13:32:05 ID:ty3pDj3g]
>>128
>>5

134 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 17:58:33 ID:vrJ09cLe]
質問させてください。
たとえば円の画像を用意して、それをボタンとして使う場合、
その円をクリックしたと、チェックできる命令はありますか?
四角なら、xy座標を見ておけば、if文でできる、というのはわかるのですが。


135 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 18:10:22 ID:qwORL9IL]
「円と点の当たり判定」でググれ

136 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 18:32:06 ID:Q486l2gg]
円なんだからどの方向でも距離は同じなんだから
中心からの距離で判定すればいいだけ

137 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 19:01:23 ID:L7ZanepU]
円の画像が単色な場合、且つ、円で使用している色が
他で使用されていない場合
クリックした場所の色を拾って判定する、とか。

邪道ですかそうですか。

138 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 21:06:46 ID:JDxmH6uS]
>>137
 単色じゃない場合は、バッファ画面に単色の画像を作って、そっちで判定するとよろし。

 まぁ、円程度の単純な判定なら、計算でやれってのが順当だけれども。

139 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 22:34:22 ID:vrJ09cLe]
なるほど。
やってみますpget命令ですね。ありがとうございます

140 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 22:47:35 ID:AVljFjph]
平方根も何も要らんのに…

141 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 22:48:20 ID:aXxUOitV]
>>132
案外、難しいな。
どうやるんだろう。

>>134
前スレでソースをアップしたような・・・。


142 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 23:34:39 ID:sP70u0HG]
円も四角でいいだろ
そんなにシビアなのか?



143 名前:名前は開発中のものです。 mailto:sage [2006/04/06(木) 23:48:50 ID:XQpsmCoI]
俺も別に矩形で判定すりゃ良いと思うが

144 名前:名前は開発中のものです。 mailto:sage [2006/04/07(金) 00:27:00 ID:HuXDf4KI]
アクションとかシューティングみたいにリアルタイムで動いてる物ならそれでもいいけど、動かない物だと結構気になるんじゃないか?

145 名前:名前は開発中のものです。 mailto:sage [2006/04/07(金) 00:46:13 ID:V45hP2+5]
;r 円の半径
;x,y 円の中心座標とマウス位置の差
if r*r > (x*x+y*y)

たったこれだけのことなのに

146 名前:名前は開発中のものです。 mailto:sage [2006/04/07(金) 00:49:53 ID:ClUYDITC]
そういう手法を聞いてるだけな希ガス

147 名前:132 mailto:sage [2006/04/07(金) 19:27:33 ID:3toQ89cV]
>>132
書き忘れていたけど、■が壁で☆が入り口です。

148 名前:名前は開発中のものです。 mailto:sage [2006/04/07(金) 22:46:52 ID:ClUYDITC]
>>147
ソースを眺めて見たんですが
オバカな俺には流れをつかむだけで疲れてw

なんとなくだけど
壁と部屋空間と入り口を全部作成した後に
入り口を接続するんじゃなくて
入り口を作成する度に
接続する入り口を検索して接続したらどうだろう?
部屋も作成する時に、属性を持たせれば
どの部屋とどの部屋が繋がっているかを調べやすくなるし。

アレだ。最終手段は、旅の扉で繋いじゃえwだ。

邪道ですか、そうですか。

149 名前:名前は開発中のものです。 mailto:sage [2006/04/07(金) 23:17:17 ID:HuXDf4KI]
>147
pc8.2ch.net/test/read.cgi/gamedev/1027084016/
このスレみれば参考になるんじゃないか?

150 名前:ホスプロ ◆HOTsoUpxjY mailto:HSP [2006/04/07(金) 23:24:50 ID:gHVivb7j]
>>132
そんな難しく考える必要はない。検索しなくても行き当たりばったりでも作れる。

ダンジョンの作成の最低限の条件は、出られればいいだけだろ。
だから最初になにはともあれ入口から出口までの通路を作る。
あとはランダムに途中に部屋をつけたり、別の通路を延ばしたり。
新しい部屋や通路ができても、クリアできなくなることはないから。
もっと難しい迷路を作りたいときは、それなりの作り方はあるけど。


151 名前:名前は開発中のものです。 mailto:sage [2006/04/07(金) 23:30:42 ID:6GYt8HFc]
超簡易版アルゴリズム

□□□□□■□□□□□■□□□□□
□□★□□■□★□□□■★□□□□
□□□□□■□□□□□■□□□□□
■■■■■■■■■■■■■■■■■
□□□□□■□□□□□■□□□□□
□□□□□■□□□★□■□□□★□
□□□★□■□□□□□■□□□□□
■■■■■■■■■■■■■■■■■
□□□□★■□□□□□■□□□□□
□□□□□■□□□□□■□□★□□
□□□□□■□□★□□■□□□□□

階全体をいくつか(ここでは9)に分割して、
それぞれの部屋(ここでは□)のどこかにランダムで基準点(★)を置く。
★同士が全部繋がるように通路を上書きする。■は壁。

予め部屋を壁にしておけば、通路だけの場所も作れる。

152 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 08:19:02 ID:VNUXxU03]
>>151
お前プレゼンとかしない方がいいな。じぇんじぇん分からん。



153 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 10:31:02 ID:o0RZQ7IA]
>>152
なら補足。

★同士の接続は迷路のアルゴリズムを使う。(すべての部屋が繋がることを保証するために)
★同士の実際の通路はマンハッタン距離だと簡単。

それぞれの区画の中で部屋の大きさをランダムで設定(ここでは最小1×1〜最大5×3)
してその中に★を置けばおk

154 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 11:59:47 ID:6OXnk+2/]
えと・・・これは・・・おまえたち考えてみろ!!ということなのかな・・・
言いたいことが意味不明。

155 名前:ホスプロ ◆HOTsoUpxjY mailto:HSP [2006/04/08(土) 12:20:57 ID:v+1GUAb4]
>>150の図説
■=壁 □=通路 ★=スタート ☆=ゴール

1.入出口  2.正解路  3.追加路  4.部屋追加
■■■■☆ ■■□□☆ □□□□☆ □□□□☆
■■■■■ ■■□■■ ■■□■■ ■■□■■
■■■■■ □□□■■ □□□□■ □□□□■
■■■■■ □■■■■ □■■■■ □■■□□
★■■■■ ★■■■■ ★■■■■ ★■■□□

正解路の作り方は、常に二点間の距離が減るように動かすだけ。
後は単にボコボコ穴を開けていく。不恰好だが必ずクリアできる。
ポイントは新しく壁を作らないこと。従って最初の空間は広くする。


156 名前:名前は開発中のものです。 mailto:age [2006/04/08(土) 12:21:40 ID:Gefr8zoU]
難しいな

157 名前:ホスプロ ◆HOTsoUpxjY mailto:HSP [2006/04/08(土) 12:31:17 ID:v+1GUAb4]
□□□□☆
□■■■■
□■■■■
□■■□□
★■■□□

>>155は最低限の方法なので、もちろん上図のようにムダな部屋も出る。
それが嫌なら「棒倒し法」「穴掘り法」などのアルゴリズムを拡張する。ググれ。

でも別にランダム生成しない限られたマップでも、周囲五マスしか見えないとか、
宝箱の中身や敵がランダムとか、そういう別の方法で複雑にできるけどね。


158 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 12:31:28 ID:FnO5+CVP]
シレンやトルネコみたいなダンジョンの話じゃないの?

159 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 12:49:33 ID:Qw4FHBTg]
□□□□☆
□○●■■
□●●●■
□■金金□
★■■玉□

160 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 14:18:35 ID:81b+udMF]
1□=壁:○=壁(境界線):★=基準点(ランダムで1個づつ↑↓階段作成)
○○○○○○○○○○○○○○○○○○○
○□□□□□○□□□□□○□□□□□○
○□□★□□○□★□□□○★□□□□○
○□□□□□○□□□□□○□□□□□○
○○○○○○○○○○○○○○○○○○○
○□□□□□○□□□□□○□□□□□○
○□□□□□○□□□★□○□□□★□○
○□□□★□○□□□□□○□□□□□○
○○○○○○○○○○○○○○○○○○○
○□□□□★○□□□□□○□□□□□○
○□□□□□○□□□□□○□□★□□○
○□□□□□○□□□□□○□□□□□○
○□□□□□○□□★□□○□□□□□○
○○○○○○○○○○○○○○○○○○○

2.★同士が全部繋がるように通路を上書きする
■=通路
○○○○○○○○○○○○○○○○○○○
○□□□□□○□□□□□○□□□□□○
○□□★■■■■★■■■■★□□□□○
○□□□□□○□□□□□○■■■□□○
○○○○○○○○○○○○○○○■■○○
○□□□□□○□□□□□○□□□■□○
○□□□□□○□□□★□○□□□★□○
○□□□★■■■■■■□○□□■■□○
○○○○○■○○○○○○○○○■○○○
○□□□□★○□□□□□○□□■□□○
○□□□□■○□□■■■■■■★□□○
○□□□□■■■■■□□○□□□□□○
○□□□□□○□□★□□○□□□□□○
○○○○○○○○○○○○○○○○○○○

161 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 14:19:06 ID:81b+udMF]
3.○で仕切られた空間にランダムサイズの部屋を作成
○○○○○○○○○○○○○○○○○○○
○□■■■□○■■■■■○□□□□□○
○□■★■■■■★■■■■★□■■□○
○□■■■□○■■■■■○■■■■□○
○○○○○○○○○○○○○○○■■○○
○□□□□□○□□□□□○□□□■□○
○□□■■■○□□□★□○□□□★□○
○□□■★■■■■■■□○□□■■□○
○○○○○■○○○○○○○○○■○○○
○□□□□★○□■■■■○□□■□□○
○□□□□■○□■■■■■■■★□□○
○□□□□■■■■■■■○□□□□□○
○□□□□□○□■★■■○□□□□□○
○○○○○○○○○○○○○○○○○○○
こういうことだろ?
そんなに難しいことは言ってないと思うんだが


162 名前:132 mailto:sage [2006/04/08(土) 15:08:54 ID:iBZGGgVA]
いろいろなアドバイスありがとうございます
一応>>151の方法で作り直してみました。
部屋と基準点は出来ましたが、やはり通路作成でとまっています;;
gamdev.org/up/img/5229.zip
パスワードは前回と同じです
よろしくお願いします



163 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 16:30:32 ID:FnO5+CVP]
パスなしで落とせるけど中身が空っぽなのは何でだろ?

164 名前:132 mailto:sage [2006/04/08(土) 17:29:15 ID:iBZGGgVA]
>>163
試しにDLしてみましたけど、中身入ってました。

165 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 19:11:49 ID:7fJ5vK0t]
>>162
ちょっと勘違いしてるように見える…

最初に基準点を通るように通路を作るんでっせ?
で、基準点の周りに部屋を作る。

だよな?

166 名前:132 mailto:sage [2006/04/08(土) 19:40:31 ID:iBZGGgVA]
>>165
>>160,161をみて、自分でも勘違いに気づいて直していましたw
一応通路作れましたので後でうpします

167 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 20:44:50 ID:ifsvMyi3]
>>166
おめ^^

168 名前:132 mailto:sage [2006/04/08(土) 21:55:56 ID:iBZGGgVA]
>>167
あり^^

通路作成完了しました
でも、つながらずに取り残されてしまう部屋が出来てしまうことがあります。
gamdev.org/up/img/5240.zip
パスは前回と同じです。
よろしくお願いします

169 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 22:25:23 ID:7fJ5vK0t]
>>168
おぉ。上手く出来たね。
あとは、基準点を必ず繋げるようにすれば
取り残される部屋も無くなって(゚д゚)ウマ-

170 名前:名前は開発中のものです。 mailto:sage [2006/04/08(土) 23:04:02 ID:DboM4Wxm]
んーでも一本道では迷路とは言わんよな…

171 名前:名前は開発中のものです。 mailto:sage [2006/04/09(日) 00:37:04 ID:Ok2GsTc+]
最初に全ての星を通る一本道を作って、後から部屋の4方向の通路の無い場所をランダムで通路で繋げばいいんじゃないか?

172 名前:名前は開発中のものです。 mailto:sage [2006/04/09(日) 01:42:08 ID:b7GY3/W7]
>★同士の接続は迷路のアルゴリズムを使う。(すべての部屋が繋がることを保証するために)

上の方の例だと、論理的な接続だけを考えて、それを迷路にする。基本はグラフ理論。

■:概念的な壁
□:概念的な通路

★■★■★
■  ■  ■
★■★■★
■  ■  ■
★■★■★
   ↓
★□★■★
□  □  □
★■★■★
■  □  □
★□★□★

その後で、概念的な通路で繋がってる★同士を、マンハッタン距離みたいので実際のマスに繋げばおk
ま、部屋の数が少ないとどちらにしろ迷路にはならないのと、元祖ローグもあまり迷路じゃないw



173 名前:132 mailto:sage [2006/04/09(日) 02:20:53 ID:OMmZyHlw]
全ての星を通るパターンをいくつか作ってみました。(まだ2つですが;;)
gamdev.org/up/img/5247.zip
パスは前回と同じです
今回はまだ途中なのでソースは付けていません
これで取り残された部屋はなくなると思います。
では、修正場所などあったらお願いします。


174 名前:132 mailto:sage [2006/04/09(日) 09:51:10 ID:OMmZyHlw]
通路作成と部屋作成でかなり時間がかかるので、そこのループ内のawaitを消してみたらかなり高速化しました。
通路作成の所のソースがかなり見づらくなってきた;;

175 名前:名前は開発中のものです。 mailto:sage [2006/04/09(日) 11:38:11 ID:KXcv3jSL]
await むやみに消すと、止まらなくなると思いました。
少しで良いからかませておいたほうがよくないですか?

意外と、これのせいで暴走することがある気がします(汗

176 名前:名前は開発中のものです。 mailto:sage [2006/04/09(日) 12:28:53 ID:b7GY3/W7]
適度に await 0 しておけば、無限ループであぼーんだけは避けられるかな?

177 名前:名前は開発中のものです。 mailto:sage [2006/04/09(日) 15:03:52 ID:Ok2GsTc+]
フルスクリーンでDIRECTX使ってない限りあぼーんは無いと思うが、普通は1フレームにwait1回じゃないのか?

178 名前:名前は開発中のものです。 mailto:sage [2006/04/09(日) 15:32:58 ID:2vrgH4Tm]
そらゲーム画面での話でそ

ループ処理でウェイト入れるなら
if cnt&255=0 :await 0
などでも十分。

多重ループなら一番外側のループにawait
内側のループに入れない。


179 名前:名前は開発中のものです。 mailto:sage [2006/04/09(日) 17:50:28 ID:irpe1qMX]
>>178
どでもいいが、HSP3だったらひそかに機能してなくて気づかなそうなコードだw

ノーパラもしくは0のawaitはウィンドウメッセージ見に行くだけでウェイトされないから、
あんま気にせずちゃんと使っといたほうがいい希ガス

180 名前:名前は開発中のものです。 mailto:sage [2006/04/09(日) 19:49:45 ID:t7bWBFJu]
waitをわざと多くしている意地わるいソフトが多々みられるのは
残念な限りだがな


181 名前:名前は開発中のものです。 mailto:sage [2006/04/09(日) 22:04:49 ID:F/b5hGRc]
waitをわざと多くしてる・意地わるい、という見方は理解しがたいな。
単にそのソフトの作者の技術か知識が不足してるだけじゃないのかな?

182 名前:ホスプロ ◆HOTsoUpxjY mailto:sage [2006/04/09(日) 22:21:03 ID:bqQ1l+dj]
ふつうのユーザはCPU使用率が高いのを嫌がる。
あと常駐ソフトはループさせないでstopさせてね。




183 名前:名前は開発中のものです。 mailto:sage [2006/04/09(日) 23:04:23 ID:b7GY3/W7]
>waitをわざと多くしている意地わるいソフト

どっちかというと、これは技術的な面じゃなくて、ゲームの演出的待ち時間の話じゃないかねw

184 名前:名前は開発中のものです。 mailto:sage [2006/04/10(月) 04:49:54 ID:qrZlwnTo]
NOWLOADINGとか表示されてるけど、どうみてもwaitで待たせてるだけだろってのはたまにあるなw

185 名前:名前は開発中のものです。 mailto:sage [2006/04/10(月) 06:47:15 ID:GvYlwI1B]
ほんとかよw

186 名前:名前は開発中のものです。 mailto:sage [2006/04/10(月) 20:08:10 ID:Jo5QJNMz]
具体的にいうとwaitと敵を動かすパラメーターのバランスがメチャクチャ
にしてあるものもあるよ
あれはひどい

187 名前:名前は開発中のものです。 mailto:sage [2006/04/10(月) 23:27:43 ID:DcMcebIF]
どのように意地がわるい、あるいはひどいのか分かりにくいから
ソフト名かアドレスを教えてくれんかね。自分の目でみたい。

188 名前:132 mailto:sage [2006/04/11(火) 17:14:03 ID:SBlnkoaj]
作ったものを3Dにしようとhgimg3でがんばってたんですが、オブジェクト登録の所でシステムエラーになってしまいました。
壁はaddboxで作ったものです。
下がソースです。

#include "hgimg3.as"

#define MAP_WIDTH 50
#define MAP_HEIGHT 50
#define BOX_SIZE 8.0

hgini

dim Model, MAP_WIDTH, MAP_HEIGHT
dim Obj, MAP_WIDTH, MAP_HEIGHT

for i, 0, MAP_WIDTH, 1
for ii, 0, MAP_HEIGHT, 1
setsizef BOX_SIZE, BOX_SIZE// 壁BOXのサイズ
setcolor 0,255
addbox Model.i.ii
regobj Obj.i.ii, Model.i.ii
next
next

これの
regobj Obj.i.ii, Model.i.ii
でエラーになります。
MAP_WIDTH か MAP_HEIGHT のどちらかを10以下にするとエラーは出なくなるみたいです。
どこか間違ってますか?

189 名前:名前は開発中のものです。 mailto:sage [2006/04/11(火) 18:38:16 ID:aLlL1ne6]
>>188
オブジェクトの限界数があるみたい。
hgsetreq SYSREQ_MAXOBJ,500; オブジェクト最大数を拡張する
で変更できるっぽい


190 名前:132 mailto:sage [2006/04/11(火) 19:40:22 ID:SBlnkoaj]
>>189
それも試したんですけど、エラーが出てしまうんです

191 名前:名前は開発中のものです。 mailto:sage [2006/04/11(火) 23:26:27 ID:QTbUKt76]
>>188
hgimg3.txtから
>hgsetreq命令によって、SYSREQ_DXMODEのモードに1を指定することで、
>hgini命令で初期化した際にフルスクリーンモードが選択されます。

これから推測すると
初期前に設定しないと、うまく初期化できない気がする

hggetreq SYSOBJ,SYSREQ_MAXOBJ ;初期化前のオブジェ数(壁以外に使う数を決めればいいだけだが・・・)
hgsetreq SYSREQ_MAXOBJ,MAP_WIDTH*MAP_HEIGHT+SYSOBJ ;壁の分だけ確保しても意味無いから壁で使う分を+
hgini

一応これで解決

192 名前:名前は開発中のものです。 mailto:sage [2006/04/12(水) 17:46:20 ID:lsLVYOlt]
雑誌掲載来たー!某誌よりあなたのゲームを載せてあげるよと連絡が来てから1ヶ月。
本当かよ誰かのイタズラじゃないのか?と疑い続けて1ヶ月。本当に来たー!



193 名前:132 mailto:sage [2006/04/12(水) 18:03:14 ID:tysJJJwn]
>>191
出来ました。
ありがとうございました。

>>192
おめ

194 名前:132 mailto:sage [2006/04/12(水) 22:17:02 ID:tysJJJwn]
3Dマップと移動までは出来ました。
しかしexeファイルにすると壁がかなり暗くなってしまいます。
addboxで作るモデルの大きさに関係しているみたいですけど、大きいままで明るく出来ないかな
一応うpしました
gamdev.org/up/img/5286.zip
パスは前回と一緒です。
キャラ以外はかなり暗くて見づらいと思います






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<270KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef