HSP - Hot Soup Processor [14]at GAMEDEV
HSP - Hot Soup Processor [14] - 暇つぶし2ch263:名前は開発中のものです。
07/01/24 23:04:44 ipAD47lc
>>262
標準命令だけで出来るか忘れたけど
buttonは自由に作れる
つーか、ゲームならwinのボタン使う必要も無いと思うが・・・
(俺は手抜きしたい時にしか使わない)

264:名前は開発中のものです。
07/01/25 00:40:56 9PLyk2GW
>>262
HSP開発Wiki

265:名前は開発中のものです。
07/01/25 01:45:12 KwI9lFfc
>>261
反応だけでもthx

266:名前は開発中のものです。
07/01/25 09:22:03 HDLbOnXg
なんでreadme.txt.txt.txtになってんの?

267:名前は開発中のものです。
07/01/25 12:43:50 gVkSIX9x
>>263-264
自分のレベルが、プログラミングって何?な超初心者なもんで
>ゲームならwinのボタン使う必要も無いと思うが・・・
と言われても「へーそうなんだぁ、なるへそ」としか…
とりあえずいろんなHPみてまわってますがまだまださっぱりです。

HSPを弄りだしてからは、なんというか、
どんな酷い糞ゲーでもものすごく素晴らしいゲームに思えてきます。
ゲーム作るのって大変なんですね。(TДT)ゞ敬礼

268:名前は開発中のものです。
07/01/25 12:57:39 zQKgxasO
>>260
シューティング苦手だから評価付けられんのよ。・゚・(ノд`)・゚・。
これって敵の弾に当たることが前提なの?
女の子に罵られるんですけど…

269:名前は開発中のものです。
07/01/25 17:25:59 Ilql/bI+
60fps固定がなぜか出来んorz

270:名前は開発中のものです。
07/01/25 18:04:21 uejkwcWo
>>260
ウィンドウ(画面)がちっこい。

背景の流星と敵弾の見分けがつきにくい。と思ったら、あれ敵弾だったのか……
自機の判定の小ささと敵弾の小ささとあいまって、敵弾がすり抜けていくから流星かと思ったよ。

自弾を発射した時のシグナル(機体が赤く輝く)と被弾の爆発が重なって見えない。

とりあえず画面がちっこいのがなんとも……。

271:名前は開発中のものです。
07/01/25 21:47:53 KwI9lFfc
コメントありがとうございます
最新のはバグも一応ないはずなので
これで制作終了にして似たようなのを作ります


レス
携帯からなんで見にくいのは承知を

>>266
それは触れない約束です

>>268
まあそんな感じです
倒すだけを考えてあります

>>270
>画面ちっこい
ですね
イメージ使い回して大きめの作ってみます
gzoom使わないのは面倒だから(ry

>敵弾
小さすぎましたね
こちらは大きめにするべきですね

>シグナル
なるほど
てかシグナル要りませんね

>画面ちっこい
二回も言われてしまいましたww
精進します

272:名前は開発中のものです。
07/01/25 22:19:02 e8FQgEVh
動作は中々良く出来てると思う。
バッファに書いてgzoomで拡大してクライアントエリアにコピーしたらどう?
ところで、変数名よくこれで把握できるな。
俺は小さなツールとかでもMainWindowRedrawSW等ほぼフルネーム(?)で付けちまう。変な癖が付いちまった

273:名前は開発中のものです。
07/01/25 22:58:04 akFmMyDE
おいおい、名前空間とか使えよ

274: ◆NL8WvejZ.U
07/01/28 17:27:30 BQ8jvKa6
age

275:名前は開発中のものです。
07/01/29 17:45:30 LXnohz71
>>271
お前は始めたばっかりの初心者だからもっと精進しろ、としか言いようがないな。

>それは触れない約束です
てきとーりーどみーかなんか知らんがユーザーをバカにしすぎ。せめて日本語書けよ。
ユーザーは怖いぞ。お前が1年後、このゲームをはるかにバージョンアップしたもの
をHSPコンテストかなんかに出したとしよう。数件のダメ出しレスがついて終わりさ。

>まあそんな感じです
>倒すだけを考えてあります
うらやましいなあ。俺にもお前のそのずうずうしさを分けてくれ。ゲームじゃねえよこん
なの。

>イメージ使い回して大きめの作ってみます
>gzoom使わないのは面倒だから(ry
そういうことじゃない。とりあえずフルスクリーンのやり方覚えろ。gzoomなんて今は
まだ使うな。今の時代過去の名作がいくらでもタダでダウソできるんだから、拡大縮小
を効果的に使っているゲームをたっぷり研究してからgzoomとかほざけ。

>小さすぎましたね
>こちらは大きめにするべきですね
これはその通り。ただ今の弾量で大きくしたら「なに考えてんだこいつ」って思われる
だけだろうがな。

>なるほど
>てかシグナル要りませんね
今の弾幕ゲームは「当たり判定はここだけですよ」っていうのを知らしめるために
シグナルつけてるのもあるな。俺はそれ自体疑問だけど。∴お前の言う通りシグナル不要。

>>272
>動作は中々良く出来てると思う。
どこが?ああそうかお前はヘビー弾幕シューターか。

276:名前は開発中のものです。
07/01/29 19:03:42 95tdmDRL
>>275
それぞれにお返事ありがとうございます
あくまでも自己満足なんでそこんとこ許してください^^

で一応画面が大きくなった新しいバージョンを公開しました
よければ感想指摘ください

277:名前は開発中のものです。
07/01/29 20:07:47 vjiWIbjw
どうやら、かわいそうなやつがいるな

>>276
あんた偉いな、頑張れよマジで。

278:名前は開発中のものです。
07/01/29 22:35:37 4q9uHrbs
むしろ親切な奴とオモタ

279:名前は開発中のものです。
07/01/30 00:50:56 DIwP8G/Y
ツンデレな

280:名前は開発中のものです。
07/01/30 09:24:52 Wt7/d+Pu
>>276
-0-2nd. ゲームとして普通に進化していますな。
でも個人的には耐久値がバカみたいだった前作の方が好みでもあります。
前作限定の改良案。
 耐久値を100ぐらいにする。
 自機は相手の攻撃を食らうことでパワーアップ(耐久値残り10とかで最大)
 その状態では耐久値回復アイテムが出易くなる。
 耐久値回復でパワーダウン。
   ちび弾(ダメ1)
   おお弾(ダメ20)
   敵機(ダメ50 )
いかにパワーアップ状態を保ちつつ、おお弾はもちろん敵のちび弾にも当たらないように回避して
かつ緊急の時は回復アイテムで回復するか。
こんなのどうでしょ?



281:名前は開発中のものです。
07/01/30 23:27:59 bihLA/QQ
いいな、それ

282:276
07/01/31 03:09:35 VNsJU2cS
多分明日(今日)に0 2ndのv045をULするので良ければどうぞー
弾のネタが思いつかない


>>277
ありがとうございます
より一層ゲームらしさを出すために頑張ります

>>278
親切な人もいるもんですね

>>279
9:1くらいのツンデレ

>>280
まずテストプレイありがとうございます。
なるほど…でもその改良案だとむしろ別作品で作った方がいいかもですね
1.5なんて名前で

283:名前は開発中のものです。
07/01/31 18:23:14 fwaFfdQR
作品名兼バージョンじゃまいか

284:282
07/01/31 19:55:37 VNsJU2cS
あ…うp忘れた

285:282
07/02/01 19:14:39 l4ykSH1x
URLリンク(uplllloader.web.fc2.com)
無事今日うpしました…

しつこいですが
感想お待ちしてます

286:名前は開発中のものです。
07/02/02 16:58:15 ObjsLAQr
>>285
タイトルの音楽、耳いてぇwww
弾とボムを同時に撃てないのは仕様?
あと、解像度はこのままでいいから、フルスクリーン対応にしてくれ

287:名前は開発中のものです。
07/02/03 21:07:47 RLwOsL09
対戦型のタイピングゲームで、必殺技とかを出す時って
やっぱりファンクションキーとかを押して出すのが一般的なのかな?

288:名前は開発中のものです。
07/02/03 23:42:14 ZLaRwgf3
Fキーとか何かボタン押して、技名を高速タイプで発動とか

289:名前は開発中のものです。
07/02/04 01:42:53 0PNxzGnB
それなんてウィザードリィ?

290:名前は開発中のものです。
07/02/04 01:54:51 c5dzfcac
競馬ゲーム作ろうとしてるんですが、逃げ馬の進み方とか追い込み馬とか進み方を変えたり、いつも同じ走りをしないようにしたいんです。
あと順位判定とかも悩んでます。優しい方教えて下さい><

291:名前は開発中のものです。
07/02/04 02:35:09 +nB+hH8C
馬それぞれに最大加速度とか進み方のタイプとか体調とか性格とか固有の値をつければ?
順位判定は馬の位置を進める毎に、ゴールを超えてないか判断して、超えたら順位与える(まだゴールしてない馬は-1とか)
ゴールした馬が(出馬数-1)になったらレース終了と
1位がゴールする時にゴール馬とその後ろの馬の位置の差を出しとけば、

292:名前は開発中のものです。
07/02/04 04:54:42 3ETpllfL
>>291ありがとうございます!頑張ります!


293:名前は開発中のものです。
07/02/04 08:08:02 tmODpecK
>>291
プログラムの仕様まで考えてやるおまいって優しいな。

294:285
07/02/05 12:59:16 MpgotcBb
>>286
テストありがとうございます。
>タイトル音楽
あの音ですかwもう少しソフトの方がよかったですかね

>弾ボム
れっきとした実力不足でした
やり方わかったんで頑張ります

>フルスクりーん
フルスクリーンのやり方がわからなくて困ってます
dxはesbufferだかで読み込む必要があるみたいですし
hgimg3はテクスチャだかよくわからないのでまだ立ち入れないです
何か他に方法が無ければこれで頑張るしかないですかね

295:名前は開発中のものです。
07/02/05 14:04:50 WF7gx7CB
フルスクリーンは
chgdispで可笑しな倍率にならない適当な解像度(640x480とか)に変える
bgscrで変えた解像度サイズのフルスクリーンを作成
↑のバッファに描画

やったことないから合ってるか知らないけどな!

296:名前は開発中のものです。
07/02/05 15:28:07 Qiul0unw
>>294
dispermes="カラーモードの変更はできなかったが\n解像度の変更は正常に行なわれた。","解像度の変更ができなかった。"
bgscr 0,640,480,0,0,0 ;枠なしウィンドウを0,0の位置に制作
gsel 0,2 ;常に最前面
chgdisp 1,640,480 ;解像度を640,480 に
if stat>0 {
dialog dispermes(stat-1),1,"エラー"+stat
end ;終了(解像度変更でエラーが出た時)

#deffunc chgdispend onexit ;終了時に自動で呼ばれる命令(ここじゃなくても直接実行されない所ならどこでもいい)
chgdisp 0 ;解像度復帰
return
}


297:名前は開発中のものです。
07/02/05 16:05:36 QBhYS/sc
SRPGを作ろうと思っているんですが、森など、行動力を多めに消費するよう
なマスを作った場合、移動範囲の検索はどういう風にやったら良いと思いま
すか?

 

298:名前は開発中のものです。
07/02/05 16:12:30 WF7gx7CB
平地を負荷0として行動力から地形にあった負荷を引いたものを索敵に使う行動力に使えばいいんでない?

299:名前は開発中のものです。
07/02/05 17:24:56 4crcw9g+
ちょっと考えてみた。

・全てのマスはその地形の「消費行動力」の情報を持つ(平地=1 森=2など)
・全てのマスは「検査済み」のフラグを持ち、全てfalse。
・全てのマスは「この地点に移動可能」フラグを持ち、全てfalse。
・全てのマスは「この地点まで最良のルートで移動した場合の残り移動力(以下最良値)」の情報を持つ。
・キャラが最初にいる場所の最良値に移動力をセットする。

・全てのマスに対して、全てが検査済みになるまで以下の処理。
・・このマスが検査済みでなく、上下左右いずれかが検査済みである場合、
  その(最大4つの)最良値のうち最低の値から、さらにこのマスの消費行動力を引いた値を、このマスの最良値としてセット。
  「検査済み」をtrue。
  このマスの最良値が0以上であれば「この地点まで移動可能」フラグをtrue。

とりあえず、味方にぶつかるとか敵に遮られた場合とか考えてないけど。

300:299
07/02/05 17:33:46 4crcw9g+
訂正

× その(最大4つの)最良値のうち「最低」の値から、
○ その(最大4つの)最良値のうち「最大」の値から、

301:名前は開発中のものです。
07/02/05 23:01:46 X/x4jr25
お題が出される、その効率的な処理を考えるのが楽しい。

そんな時期が俺にもありました

302:名前は開発中のものです。
07/02/05 23:38:50 w5WGjFaP
じゃあちょっとカレーの好みにうるさい人工無能を組んでみれ。
賞品は不二家のシュークリーム

303:名前は開発中のものです。
07/02/05 23:46:28 xiZa8Pyv
用意出来るのかい

304:294
07/02/06 00:50:01 H0MQ/l9y
>>295-296
かなりトンです
明日やってみます

景品不二家吹いたwww

305:名前は開発中のものです。
07/02/06 15:25:58 rDCcR2NQ
●を書いたとしてそれを自動で自由に動くようにしたいんです。ランダムを使うかのはわかるんですがどう使うかずっと悩んでます。わかる人教えて下さい。

306:名前は開発中のものです。
07/02/06 15:30:42 LNZ1T0qF
>>305
本当に適当でいいならこんな感じ、汚くてすまん・・・

wx = 640 : wy = 480
x = wx / 2 : y = wy / 2
screen 0, wx, wy, 0 : randomize

repeat
x += rnd(3) - 1
y += rnd(3) - 1

redraw 0
color 0, 0, 0 : boxf
color 255, 0, 0
pos x, y : mes "●"
redraw 1
await 1
loop

307:294
07/02/06 16:19:53 H0MQ/l9y
>>306
汚くないと思うむしろ綺麗

>>296
実行してみました。
できた。ありがとう。フルスクリーンで検索した俺がバカだった

ところで
>解像度はそのままでいいからフルスクリーン
このゲーム(0c2)をやるためには最低限1024x768必要
∴フルスクリーンいらなくね
まわりを真っ暗にすればいいわけか?

308:名前は開発中のものです。
07/02/06 18:10:10 pFC0cC3Y
awaitは16だろ

>>307
フルスクリーンウィンドウ?にして1024x768以上の解像度があるなら変倍しないでいいんじゃね?

309:名前は開発中のものです。
07/02/06 18:13:54 0ZeACOJU
>>308
>awaitは16だろ
10とか100じゃなくて、16と言うところになんか意味合ったりする?

310:名前は開発中のものです。
07/02/06 18:19:50 pFC0cC3Y
>>309
何かで16以下は重くなるだけとか読んだ気がするだけで、いつも使ってる値ってだけ
意 味 は 無 い

311:名前は開発中のものです。
07/02/06 18:31:43 rDCcR2NQ
>>306ありがとです(^-^)

312:名前は開発中のものです。
07/02/06 19:07:21 wDFKdEzJ
await16でFPS60ぐらいになるんじゃなかったっけ?

313:名前は開発中のものです。
07/02/06 19:38:53 dKZjN9XR
>>310
aw 1~15 だとどっちみち16msくらいかかるもんね。

314:名前は開発中のものです。
07/02/06 20:59:00 6rEHimtX
お前ら根本的に勘違いしてるだろ、ウェイトって言うのは、


と説明始めようと思ったが、
毎スレ恒例のディスプレイ同期の話じゃん。
荒れちまえ\(^o^)/

315:名前は開発中のものです。
07/02/06 23:19:13 7D3D5t0v
weight:字体の黒さ,線の太さの程度

316:名前は開発中のものです。
07/02/07 00:42:27 zYhBI7Ez
全ウェイターが荒れた!

計算させてみればわかるけれどawaitは精確には止まってくれないよ
await 1
にして、あとは自分でfpsに合わせろって感じ

317:名前は開発中のものです。
07/02/07 00:47:28 Tc5MU8hy
>>309
await 1 って、やってもWinXPとか2000だと大体10ms以上止まる
16って、言うのは1000/60が約16.6だから良く使われる

318:名前は開発中のものです。
07/02/07 09:09:13 AwlcnWEs
HSP3とDXFIXでゲーム作ってるんですが、
wavファイルを複数同時に再生できるプラグインってありませんか?
いろいろ探してみたんですが3に対応してるのがどれかわからなくて。
CWSDRV.DLLでやろうとしても、なぜか上手くいかないし。

あと、Easy3DってDXFIXと一緒に使うのは無理ですか?

319:名前は開発中のものです。
07/02/07 09:43:48 c9MKq4Wr
/*
URLリンク(hsp.tv)
URLリンク(taillove.jp)
*/

#include "CWSDRV.as"
drv_ini
dialog "wav",16,"wavfile"
snd_load refstr,0
snd_play 0,CWS_PLAY_LOOP
stop

320:名前は開発中のものです。
07/02/07 10:35:50 AwlcnWEs
>>319
snd_load "sound_001.wav",0 にしてる以外はほとんどそのとおりにやってます。
HSPだけだとうまくいくんですが、DXFIXと一緒にすると
snd_load の行でシステムエラーが出ます。

dsoundex.asを使うとエラーは出ないのですが音が出ません。
これもDXFIXを使わなければ同じ記述でちゃんと音はでます。

mmloadとmmplayを使えばちゃんと再生されるんですが、何が原因なのかわかりません。


#include "dsoundex.as"
ds_init
ds_load "sound_001.wav",1
↑これでロードして

if文使って攻撃当たったら↓で再生するだけなんですが。mmload mmplayで置き換えると問題なしです。
ds_play 1

321:名前は開発中のものです。
07/02/07 10:40:37 AwlcnWEs
drv_initやds_initはちゃんとes_screenで画面作成してから記述してます。

322:名前は開発中のものです。
07/02/07 12:04:39 c9MKq4Wr
;>>321 順番が逆。drv_iniしてからes_iniしてみれ。
#include "CWSDRV.as"
#include "HSPDXFIX.as"
onexit goto *owari
drv_ini
es_ini
es_screen 640,480,16,0,1
es_cls:es_dialog "wav",16,"wavfile"
if esr_stat=0 :goto *owari
a=refstr:pos 0,0:color 0,0,0:es_mes "file="+a
snd_load a,0
snd_play 0,CWS_PLAY_LOOP
repeat:stick s:if s=128:break
await 0:es_sync -16,0:loop
*owari
es_bye:drv_bye:end


323:名前は開発中のものです。
07/02/07 12:23:13 AwlcnWEs
>>322
できました。ありがとうございます。


> ※標準DirectXプラグイン "HSPDX.DLL" と同時に使用する場合は、
>  es_screen で画面を作成後、ds_init を実行してください。
>  そうしないと、画面が出なくなります。

dsoundexのヘルプにこう書いてあったので気づきませんでした・・・。


324:名前は開発中のものです。
07/02/07 17:23:10 AwlcnWEs
もう一つ、DXFIXの全画面表示で入力ボックスみたいな感じでテキスト入力させて変数に文字列入れるには何を使えばいいですか?

325:名前は開発中のものです。
07/02/07 18:13:08 nuEGyjxI
どこをどう読めば ds_init と drv_init を同じように読めるんだよ
ドキュメント読めないだけの連発質問ウザイ。

326:名前は開発中のものです。
07/02/07 18:52:35 AwlcnWEs
drv_iniはCWSDRV.asの初期化
ds_initはdsoundex.asの初期化、それぞれ別のプラグイン。
dsoundex.asのヘルプに「es_screen で画面を作成後、ds_init を実行してください」とあったので
drv_iniもds_initと同じようにes_screenの後に記述するのかと思ったんだけど?

で、実際に両方ともes_screenの前に記述したらそれぞれきちんと動いた。
drv_iniとds_initを同じように扱ったらいけなかったの?

327:名前は開発中のものです。
07/02/07 19:13:02 c9MKq4Wr
/* >>325 ID:AwlcnWEsはマニュアルは一応読んでるみたいだけどな。
マニュアルに書いてない事項については、
自分で試行錯誤することをスグに諦めて、他人にすがるみたいな所がみられるね。

>>326 "間違ってないはずなのに「うまく動かない」"ときは、
"自分で勝手に正しいと思い込んでいる"部分を見つけないといけない。

今回の場合は、「CWSDRV」と「HSP DirectSoundExtension」が
機能的に類似しているからといって、勝手に「同じ扱いで良い」と思い込んでる。
どのマニュアルにもそのようなことは書いてないのに。 */

328:名前は開発中のものです。
07/02/07 19:15:16 AwlcnWEs
初期化もloadもplayの命令文もほぼまったく同じような記述の仕方だったので
中は同じような処理をしているんだろうなと思って同じように扱いました。
ck_joystickとjoystickぐらいの差ぐらい。
で、ds_init と drv_iniを同じように扱ったらだめだった理由を教えて下さい。
実際に同じように扱って両方ちゃんと動いているのだけど、このやり方はだめなのですか?
あと>>321のdrv_initはdrv_iniのタイプミス。 

;変更前(CWSDRV.as)
es_ini ,,3600
es_screen window_x, window_y, 32,,SCREEN_MODE,1
ds_init

;変更後
ds_init
es_ini ,,3600
es_screen window_x, window_y, 32,,SCREEN_MODE,1


;変更前(dsoundex.as)
es_ini ,,3600
es_screen window_x, window_y, 32,,SCREEN_MODE,1
drv_ini

;変更後
drv_ini
es_ini ,,3600
es_screen window_x, window_y, 32,,SCREEN_MODE,1


329:名前は開発中のものです。
07/02/07 19:19:42 AwlcnWEs
>>327
すみません、まさかヘルプが間違ってると思わなかったので・・・。

330:名前は開発中のものです。
07/02/07 19:20:02 c9MKq4Wr
で、>>324の入力ボックスの件。
標準命令のinput命令のようなものを全画面モードで使えないか?
ということだと思うけど。
これも、そういった事項についてはマニュアルには書いてないねぇ。
-> ここで諦めずに、試行錯誤してみようか。*/

#include "HSPDXFIX.as"
onexit goto *owari
es_ini
fs=1 ;=0でフルスクリーン
es_screen 640,480,16,0, fs
a=123:pos 0,0:input a,100,20,10
repeat
es_boxf 0,0,640,480
stick s:if s=128:break
pos 0,200:es_mes "a="+a
await 0:es_sync -16,0
loop
*owari
es_bye:end

/* 一応動くことは動くが、見栄えも良くないねぇ・・・。
ウィンドウモードでの動作もHSP本体、DXFIXの仕様外くさいから・・・
さぁ、どうしますか?

ー> キーボード入力を読み取って、文字列変数に加えたり削除したりする
擬似input命令なモジュールでも自作するべきやろね。
自分の作品のためなんだし、こっからは自分でやってみておくれよ。 
出かけるのでこれまで。*/

331:名前は開発中のものです。
07/02/07 19:24:07 c9MKq4Wr
>>329
MIA氏の名誉のために、ヘルプの件についていうとー
HSP DirectSoundExtensionはHSP2.xx用で
HSP3への対応はうたってない。
そして、ヘルプに書いてあるのは、
HSPDXFIXへの対処ではなく、HSPDXへの対処法。

すでに2つもの思い込み違いがあるよ。
ほな。

332:名前は開発中のものです。
07/02/07 19:46:46 johUpKM1
b7が出てるようだ

>2007/02/06 3.1b7
>
>ラベルの位置を変数に記憶させるためのラベル型を追加。
>スクリプトエディタの検索方法を修正。正規表現による検索を追加。(HSPBT#53)
>スクリプトエディタの外部ツール登録が保存されない不具合を修正。(HSPBT#73)
>vartype関数の変数指定で配列変数を指定できるように修正。(HSPBT#102)
>repeat命令の第2パラメーター指定で無限ループを生成することがある不具合を修正。(HSPBT#95)
>oncmd命令で有効化・無効化を行なうとエラーが出ることがある不具合を修正。(HSPBT#66)
>ユーザー定義関数内で関数の戻り値が代入される変数型が変更できない不具合を修正。(HSPBT#90)
>ヘルプの誤記を修正。(HSPBT#97)
>型を拡張するプラグインで型変換に失敗することがあった不具合を修正。
>拡張プラグインHGIMG3の機能追加と不具合をいくつか修正(詳細はhgimg3.txtを参照してください)。

333:名前は開発中のものです。
07/02/08 17:56:38 YReqkp+k
>>332
ま、ゲ製作者にはほとんど関係ない修正なんだろうな。たぶん。

334:名前は開発中のものです。
07/02/08 18:52:38 5Yp1xc5q
>ラベルの位置を変数に記憶させるためのラベル型を追加
何に使うんだ?

335:名前は開発中のものです。
07/02/08 18:59:53 S+AcBNvP
if文を羅列させなくて済む

336:名前は開発中のものです。
07/02/09 00:21:43 rjgg8G8D
>>335
よくわからんから使い方教えてほしい
むずくて理解が無理だ

337:名前は開発中のものです。
07/02/09 02:19:26 4/DWHvjj
>>335
*@みたいな機能か?

338:名前は開発中のものです。
07/02/09 02:42:14 MA5T6s0o
goto や gosub の飛び先のラベル名の指定に、変数が使えるんじゃね?

ラベル型変数 = *start
goto ラベル型変数

みたいな。 便利そうだ。

339:名前は開発中のものです。
07/02/09 03:35:14 BnIkkO1b
>>338
なるほど、if文を羅列する必要がなくなるな。

340:名前は開発中のものです。
07/02/09 04:28:05 fvAy1m32
正規表現検索は作業量的にでかいな。頑張るなぁ

でもHSPユーザで正規表現に明るい奴がどんくらいの割合いるんだか
俺も暗いが

341:名前は開発中のものです。
07/02/09 04:33:13 BnIkkO1b
ところで、夜中に質問。
hsp2.61なんですが、ウィンドが複数ある状態で、特定のウィンド内のmesboxの内容を
objprmで書き換えると、対象のウィンドが強制的にアクティブになってしまいます。
具体的には以下のようなコードの場合なのですが、これを何とか回避して、
裏側でこっそりmesboxの内容を書き換える方法はないモノでしょうか?
-------------------
screen 0
pos 10, 10 : objsize 150, 24
button "ボタン1", *button01
sdim mes_1,1000
pos 10, 50 : mesbox mes_1, 240, 24, 1

screen 2
pos 10, 10 : objsize 150, 24
button "ボタン2", *button02
sdim mes_2,1000
pos 10, 50 : mesbox mes_2, 240, 24, 1

*main
wait 10
goto *main

*button01
mes_2 = "ボタン1が押されました"
gsel 2,0 : objprm 1,mes_2
goto *main

*button02
mes_1 = "ボタン2が押されました"
gsel 0,0 : objprm 1,mes_1
goto *main

342:名前は開発中のものです。
07/02/09 09:25:11 MA5T6s0o
>>341
「objprm 1,mes_2」、「objprm 1,mes_1」
の代わりに
「objsend 1,12,0,mes_2」、「objsend 1,12,0,mes_1」
で、どうかな。

343:名前は開発中のものです。
07/02/09 09:44:43 81G9vZ+L
title mes_1,1

でもいけるヨ

344:名前は開発中のものです。
07/02/09 10:28:29 MA5T6s0o
>>343
おぉ・・・ほんとだ。
title命令でp2指定ができて、そんな意味があったとは

なぜかHSP3では廃止されてるのな。

345:名前は開発中のものです。
07/02/09 10:33:34 mP4uqPJp
ラベルtypeを使ってHSPでタスクシステムとかか?
馬鹿みたい。

346:名前は開発中のものです。
07/02/09 12:16:19 BnIkkO1b
>>342
>>343
おおぅ、ここは神が多くて困ります!
バッチリです。どうもありがとうございました。

347:名前は開発中のものです。
07/02/09 18:17:45 x+xvLfyc
逆コンパイラって存在するんですか?

348:名前は開発中のものです。
07/02/09 20:23:19 /kk/OMp0
2.61用の逆コンパイラもってる人いない?
あと実行ファイルからAXファイルを抜くやつも・・・すまんorz

ベクターにある抜くツールは、古くてヘッダーがおかしくなる

349:名前は開発中のものです。
07/02/09 22:18:08 FOd7Jwpc
とりあえずダウンロードして入門も全てよんだ
数値計算ッテドウヤルンダ?
座標計算じゃなくて普通に「1+1」っていれると「2」ってでてくるのとか


350:名前は開発中のものです。
07/02/09 22:25:26 SfpTgz3K
>>349
mes 1+1
こういうこと?

351:名前は開発中のものです。
07/02/09 22:28:25 FOd7Jwpc
>>350
それしても2と表示されないからどうやるんだろうなと

352:名前は開発中のものです。
07/02/09 22:46:56 2wyY4BYe
HSP3.0で
mes 1+1 とだけ書いて実行すると
2と表示されました。

353:名前は開発中のものです。
07/02/09 22:47:25 1G/snrPz
>>351
ん?

mes 1+1

って、書いて F5 押すだけで左上に 2 って出るだろ・・・


354:名前は開発中のものです。
07/02/09 22:49:53 SfpTgz3K
HSP2でstopしてないからウインドウが消えるとか?

355:名前は開発中のものです。
07/02/10 20:50:12 zk7+cGIw
質問です。
mmloadでmp3を再生したのですが
音量が不安定になって、音割れしたり聞こえにくくなったりしてしまいます。
回避策もしくは別の命令やプラグイン等でうまく再生出来る方法があれば教えて下さい。
KexMP3というDLLを試してみたんですが、バッファオーバーフローで再生できませんでした。

356:名前は開発中のものです。
07/02/10 21:13:24 7jJzeNRi
>>355
hmmdllはどう?

357:名前は開発中のものです。
07/02/10 22:28:29 zk7+cGIw
>>356
使ってみましたがやはり音の変化が激しい部分、例えば曲の始めの無音部分からイントロ部分への移りかわり等で
音割れが起きたり、本来は無いはずの音量の波が出来てしまいます。
ビットレートに問題があるのでしょうか、160kbpsなのですが。

358:名前は開発中のものです。
07/02/10 23:33:28 +UrsVszi
>>357
HSP側の問題でなく、codecの問題だろ。

・「本来の音」は、どのアプリで確認したのか
・ffdshowのようなものでmp3デコーダーの設定を変更してないか。
言ってみ

359:名前は開発中のものです。
07/02/11 00:15:10 vZEqex0E
治りました、ありがとうございます!
>>358さんの仰る通り、codecの問題でした。
wmpでは普通に聞こえていたので全く気づきませんでした。
ffdshowのmp3デコーダーをdisabledにしたら万事解決です。
スレ違いな質問になってしまってすみませんでした…。

あとhmmdllはとても便利そうなので活用させて頂きます。

360:名前は開発中のものです。
07/02/11 02:56:36 p9WKRd/6
最新のベータ版hsp31b7のhgimg3についての質問させてください。

hgsetreq SYSREQ_2DFILTER,2

って2Dバイリニア補間と書いても
hgrotate命令でのダイレクト描画時に、
バイリニア補間しなくなった気がするんですが、
環境の問題でしょうか?
仕様変更なのかも・・・

ちなみにVer.31b6のhgimg3だと2Dバイリニア補間できてます。

361:名前は開発中のものです。
07/02/11 04:34:45 r5mamvmx
HSP ver.31b7出たんだな

362:名前は開発中のものです。
07/02/11 05:13:36 gCwLP8t7
>>360
texload2でテクチャ読み込むと補間出来た
仕様かバグかは分からない

363:名前は開発中のものです。
07/02/11 05:24:38 gCwLP8t7
texload2だとアルファチャンネル付きの画像じゃないと
透明色なしになるのか・・・
なんか重くなりそう・・・



364:名前は開発中のものです。
07/02/11 11:00:41 xhA1Kbga
β7キタ━(゚∀゚)━(∀゚ )━(゚  )━(  )━(  )━(  ゚)━( ゚∀)━(゚∀゚)━ !!

365:360
07/02/11 14:09:40 p9WKRd/6
報告ありがとうございます。
もう少し調べてみますが、使い勝手も考えて
Ver.31b6のhgimg3を使ってこうと思います。

366:名前は開発中のものです。
07/02/11 16:32:02 d03suuH7
#module aonc
#define global addonclick(%1)clickl@aonc=%1:_addonclick
#deffunc _addonclick
if onclickon=0{onclickon=1:onclick gosub *onclicklabel}
id=-1:repeat oncnt:if idlist(cnt)=0{id=cnt}:loop
if id<0{id=oncnt:oncnt++}
clicklst(id)=clickl:idlist(id)=1:return id
#deffunc delonclick int delid
if delid<oncnt {if (delid+1)=oncnt {oncnt=limit(oncnt-1,0,oncnt)}else{idlist(delid)=0}}
return
*onclicklabel:for i,0,oncnt:if idlist(i){gosub clicklst(i)}:next:return
#global

button gosub "labelA 削除",*del:button gosub "labelB 削除",*del
movl=*N,*L,*U, *LU,*R,*N,*RU,*N,*D,*LD,*N,*N,*RD,*N,*N,*N,*N:x=320.0:y=240.0:xy=sin(atan(1,0))*4
addonclick *labelA:addonclick *labelB
repeat:redraw 0:color:boxf:color 255,255,200
stick ky,$f:gosub movl(ky&$f):pos 100,0:mes a:mes b:pos x,y:mes "▲"
redraw 1:await 15:loop
*N:return:*L:x-4:return:*U:y-4:return:*R:x+4:return:*D:y+4:return
*LU:x-xy:y-xy:return:*RU:x+xy:y-xy:return:*LD:x-xy:y+xy:return:*RD:x+xy:y+xy:return
*labelA:acnt++:a="labelA "+acnt+" "+cnt+" "+iparam+" "+wparam+" "+lparam:return
*labelB:bcnt++:b="labelB "+bcnt+" "+cnt+" "+iparam+" "+wparam+" "+lparam:return
*del:delonclick stat:return
ちょっとラベル型を使ってみた。strみたいに labelで新規命令のパラメータタイプ
としては、まだ使えないみたいマクロで変数に入れてから変数として渡して対応
(button "",*abcみたいに直接指定した時に対応するため)
ラベル型を式に使う事も出来ない

367:名前は開発中のものです。
07/02/11 20:06:17 iL3POF9I
逆コンパイラもってる人いませんか?
どのバージョンでもいいです。

368:名前は開発中のものです。
07/02/12 09:04:37 uPPxux9r
そんなのあるの?

369:名前は開発中のものです。
07/02/12 09:47:02 OgJGyxCC
有志で作ってるサイトあるよ
でも、なぜか検索で出てこない

中の人はHSP2.6とかの逆コンパイラ作った人なのかな?

370:名前は開発中のものです。
07/02/12 11:06:37 zTovWISq
逆コンしたら正常に動かないソースが出るのならあったなぁ
ラベルが消えるとか…APIはどうだとか…

371:名前は開発中のものです。
07/02/12 14:01:22 hGyUf3nj
ラベルが消えてもいいです。
逆コンパイラがほしいのですが、どこにありますか?

372:名前は開発中のものです。
07/02/12 14:02:09 MIIl3iV0
逆コンパイラなんていらないだろ

373:名前は開発中のものです。
07/02/12 14:09:18 SmOS/jbK
リバースエンジニアリングにはダーティーなイメージが付きまとうしな。
バージョンを問わないだとか、逆コンパイルする目的を示さないあたり、
実際ロクな使い道じゃないだろう。

374:名前は開発中のものです。
07/02/12 15:04:26 hGyUf3nj
目的を示す必要があるなら示します。
昔作ったゲームのソースを無くしたので、
それを実行ファイルから復元したいだけです。

375:名前は開発中のものです。
07/02/12 15:12:11 SmOS/jbK
言うと思った
が、それなら「どのバージョンでもいいです」はおかしいだろ?

376:名前は開発中のものです。
07/02/12 15:24:30 hGyUf3nj
長い間、ネットで公開していて、
いくつかのバージョンを使ってバージョンアップしていたので、
どのバージョンでも大方良いと思ったからです。

377:名前は開発中のものです。
07/02/12 15:32:10 SmOS/jbK
そんなソースを外部メディアにバックアップしてないのもどうかと思うが。
HSP2.55~2.61用なら、「HSP 逆コンパイラ」でGoogle検索すれば
Vectorにある物が思いっきりトップに出てくるぞ。

全機能使うには、いくらかの金が必要なようだが。
同等のゲームを作り直すのにかかる手間ヒマを考えれば安いもんだろ。

378:名前は開発中のものです。
07/02/12 15:36:17 OgJGyxCC
逆コンパイルとか以前に動いてるのをみて処理を予想できないなら意味ないっしょ
忘れたなら 勉強しなおせるいい機会

この話題はおわり 他のが沸く前に

379:名前は開発中のものです。
07/02/12 15:43:58 hGyUf3nj
すいません。最後に1つだけお願いします。
expを使ってaxにしたやつを教えて頂いたソフトにかけたのですが、
ヘッダーが違いますと言われました。なぜなんでしょうか?

380:名前は開発中のものです。
07/02/12 15:56:51 aZgeyRmX
>>379
ヘッダーが違うからでしょ?

381:名前は開発中のものです。
07/02/12 18:50:31 N1RWXgNC
ヘルシア吹いた

382:名前は開発中のものです。
07/02/12 20:31:37 ajzZ8DFd
>>369
HSP3用かな?


383:名前は開発中のものです。
07/02/12 21:08:01 EN6Hiq9g
mes 2.4^3
みたいなのやるとき、どうするんすか?

384:名前は開発中のものです。
07/02/12 21:46:27 Q9QrTKmW
>>383
mes expf(logf(2.4)*(3))

詳細は↓参照
URLリンク(quasiquote.org)

385:名前は開発中のものです。
07/02/12 22:24:00 GKCctX48
HSPで作ったソフトで商売してる人いる?

386:383
07/02/12 22:55:34 EN6Hiq9g
>>384
おーーさんくすです。
ざっと読みましたが関数電卓レベルの計算は内部で実装してないんですね。
見掛けでかい式になるのがまんすれば、なんとかなりそうです。
技術計算で少し目をつぶれば、他はかなりよさそうですね。


387:名前は開発中のものです。
07/02/13 02:41:15 22dT8zMg
>>385
URLリンク(www.meti.go.jp)
平成17年度の「ITクラフトマンシップ・プロジェクト」(経済産業省) に採択された
「スーパープログラマーを育てる!」プロジェクト学習教材としてHSPが採用されました。
小中学生がHSPを通して、基礎からプログラミングを学んでゆく大きな試みです。
(2005/07/12)

ってことらしいので
塾の別コースみたいな
子供らにHSP教える商売ってどう?

388:名前は開発中のものです。
07/02/13 04:46:26 rIw2M+fr
いや、HSPで作ったソフトをシェアウェアとかにしてる人いるのかなぁって、、
別に問題はないんだよね?

389:名前は開発中のものです。
07/02/13 04:46:47 f7P6uizV
そうかな

390:名前は開発中のものです。
07/02/13 05:22:52 xFBPpsWt
>>388
最初からそう書けよ。>385の文章だと誤解の余地がありすぎるだろ。
で、
最近の子供はFAQを当たるくらいのこともできないのか?
URLリンク(hsp.tv)

391:名前は開発中のものです。
07/02/13 14:13:41 WeyFWZXA
>>388
吉里吉里だろうが、Nスクだろうが、HSPだろうが
全て作者次第だろうが…

392:名前は開発中のものです。
07/02/13 14:38:12 rIw2M+fr
>>390
そんな無気になることでもないだろ
常識的に考えて・・

393:名前は開発中のものです。
07/02/13 14:53:04 kAlK9wyi
>>392
自分で調べる
教えてもらったら礼を言う
って、事が出来ない奴に常識的にどうこう言って欲しくないw

394:名前は開発中のものです。
07/02/13 14:57:49 LC1ckLR9
>>387に対する礼儀がなっていないからです。
一生懸命あなたのために貴重な時間を割いて調べたのかもしれないのです。

自分の期待した答えでないからと
「いや」のただの2文字で好意を踏みにじったのです。

自分の言葉足らずの文章のせいで誤解をさせた上に、
自分で調べるという最低限の努力もせず、相手に無駄なことをさせたのです。
詫びの一言ぐらいあってもいいでしょう。


ムキになるのは当たり前です。
常識的に考えて・・


395:名前は開発中のものです。
07/02/13 15:23:52 22dT8zMg
>>385
有名なメモリークリーナーってHSP製じゃなかったっけ?


396:名前は開発中のものです。
07/02/13 15:47:21 HAyUA+Hu
飛翔鮎

397:名前は開発中のものです。
07/02/13 16:54:33 22dT8zMg
ダイソーで100円で売られてる
「ザ・ボクシング 実写でボクシング」
ってHSPコンテスト入賞作だったような・・・?

398:名前は開発中のものです。
07/02/13 16:56:30 22dT8zMg
>>385
探せば他にもあると思います。

399:名前は開発中のものです。
07/02/13 17:13:32 fKNeUGFg
スクリーンセーバーとかHSP製多そう

400:名前は開発中のものです。
07/02/13 20:22:02 ISiSh35o
HANAGE2もショップ99で販売されてたな

401:名前は開発中のものです。
07/02/13 20:53:32 RWx7Cc7Y
Kz3はしきりすぎだろw

402:名前は開発中のものです。
07/02/13 23:47:42 HsMZmwhC
385について別にピザ食いながら鼻息立ててキレるほどのことでもないなと
思ったよ、俺は。

403:名前は開発中のものです。
07/02/14 00:10:25 1fiM9B0G
ピザ食っちゃダメですか

404:名前は開発中のものです。
07/02/14 01:28:43 4st9F958
鼻息立ててキレなければ多分おk

でも太るなよ。
健康面の不安定さから、国内医療費食い潰すのに加えて、外貨絡みの多い穀物関係の消費は無意味に貿易財政逼迫するから。
ただでさえ破綻しそうなドルを、この国は保有しすぎですけん。

国産の穀物だけで食えとは言ってないけど、バランス良いまっとうな食事心掛けたら国内需要が自然と増えるよって程度の話ー

405:名前は開発中のものです。
07/02/14 08:15:18 C0kmHPEU
マジレスすると
俺メタボリック

406:名前は開発中のものです。
07/02/14 09:34:41 mCS9GJHX
HSPはキチガイを呼ぶ力があるらしい

407:名前は開発中のものです。
07/02/15 06:22:55 T4SorQda
多次元配列の変数に文字列を代入することは不可能なんですか?
1次元の配列変数ならできたんですが・・・。

408:名前は開発中のものです。
07/02/15 06:36:09 dFEe2Ryw
>>407
可能です。

sdim mojiretu,256,3,3

mojiretu(0,0)= "叶恭子","本名小山恭子","長女"
mojiretu(0,1)= "叶春栄","本名不詳","次女"
mojiretu(0,2)= "叶美香","本名玉井 美香","三女"

repeat 3
j=cnt
repeat 3
i=cnt
pos i*160,j*32
mes mojiretu(i,j)
loop
loop

stop

409:名前は開発中のものです。
07/02/15 08:53:41 oDKH/5jA
>>480
できました。ありがとうございます

410:名前は開発中のものです。
07/02/15 11:07:31 3CEsEVi7
>>480に期待
そしてサンプルの文吹いた

411:名前は開発中のものです。
07/02/15 23:49:40 UV1ebeZU
HSPでWizっぽい3Dダンジョンつくりたいのですが、
3Dダンジョン部分の簡単なサンプルとかないですか?

412:名前は開発中のものです。
07/02/15 23:52:39 1i3++4tX
>411
URLリンク(www.smith-project.jp)
ここなんかどう?

413:411
07/02/16 00:10:53 14qwsicF
>>412
どうも。早速ダウンロードしました。
HSP3なんですが、palcopy 2 がエラーでます。

414:名前は開発中のものです。
07/02/16 00:14:52 gJ9zatU3
>>413
そりゃどう考えてもお前が悪いだろ

415:名前は開発中のものです。
07/02/16 00:15:25 Sx+Dxelr
頭がな

416:名前は開発中のものです。
07/02/16 01:43:53 ppH9PRcO
palcopyは廃止されてる
sp30\common\hsp3util.as
の bmppalette を見てみ

417:名前は開発中のものです。
07/02/16 02:02:56 ppH9PRcO
hsp30\common\hsp3util.as

hが抜けてた・・・

418:名前は開発中のものです。
07/02/16 23:53:45 ppH9PRcO
>>365
今日試したらtexloadでも補間出来た
何か条件があるのかも・・・


419:418
07/02/17 00:33:49 bW0Rt6ue
>>365
すまん勘違いだった
texload2も関係ないや


420:名前は開発中のものです。
07/02/17 13:53:05 /kaaJsCE
gmode ←2で設定してます
gcopy ←まあ基本ですよね
gzoom ←回転も一緒にやってくれるのって無いですか?
grotate ←これが説明書と違って上手く透過できない時があるのですが、なぜでしょうか?

421:名前は開発中のものです。
07/02/17 15:49:27 8zaigqCL
grotateはgmodeが5か6のときだけ使えば解決

422:名前は開発中のものです。
07/02/18 03:08:43 YCBwpDKa
>>420
多分、gmodeが4以降の黒で透過ならcolor 0,0,0と書き込むと
旨く色抜きできるかもしれません。

color 0,0,0
pos xx,xx
gmode xx,xx,xx
grotate xx,xx,xx

423:名前は開発中のものです。
07/02/18 21:32:54 oMzBretM

在日=竹石圭佑らしいが、熊本の済々黌の弓削達也って奴も朝鮮人だろ
在日って顔が日本人とは全然違うもんな

424:名前は開発中のものです。
07/02/19 10:53:53 RiMEf6zX
おや?

425:420
07/02/19 12:27:02 N5sPNDQg
回答ありがとうございます。

426:名前は開発中のものです。
07/02/20 02:16:00 hQkR02aA
ラブちぇんって番組の効果音聞くとHSP思い出す

427:名前は開発中のものです。
07/02/20 16:31:25 35NxbGRL
すいません、かなり初心者な質問なのですが、HSPでRPGを作ろうと思うのですが
キャラの向きってどうやって表示させるのでしょうか?
BMP画像で4方向のキャラの絵がかいたやつがありますよね、あれを使って表示
させたいのですが、どうすればいいかわかりません。
なんか、説明が下手でわかりにくいかもしれませんが、わかる方がいられましたら
よろしくおねがいいたします。

428:名前は開発中のものです。
07/02/20 17:34:10 UJXvMqBN
>>427
まずキャラをどうやって表示してるか書け
まぁ、簡単にやってみると
screen 1,32*4,32,0,0,0 :font "MS ゴシック",32,1 :mes "←↑→↓" :screen 0,640,480,0,200,100 :x=300:y=200
repeat
stick ky,$fff
if ky=1 {ctx=0 :cty=0 :x-4}
if ky=2 {ctx=32 :cty=0 :y-4}
if ky=4 {ctx=64 :cty=0 :x+4}
if ky=8 {ctx=96 :cty=0 :y+4}
pos x,y :gcopy 1,ctx,cty,32,32
pos 0,0 :mes "stick="+ky :redraw 1 :await 15 :redraw 0 :color 255,255,255:boxf :color
loop
こんな感じ(分かる安さ優先)

どーせ、アニメーションもさせるんだろうから
screen 1,32*4,32*4,0,0,0 :font "MS ゴシック",32,1
repeat 4:pos 0,cnt*32 :color 200*(cnt=1),200*(cnt=2),200*(cnt=3):mes "←↑→↓" :loop :screen 0,640,480,0,200,100 :x=300:y=200
repeat
stick ky,$fff
if ky=1 {ctx=0 :x-4}
if ky=2 {ctx=32 :y-4}
if ky=4 {ctx=64 :x+4}
if ky=8 {ctx=96 :y+4}
if ky&15 {cty=((cnt/3)\4)*32}
pos x,y
gcopy 1,ctx,cty,32,32
pos 0,0 :mes "stick="+ky :redraw 1 :await 15 :redraw 0 :color 255,255,255:boxf :color
loop
こっちはアニメ付き

429:名前は開発中のものです。
07/02/20 17:38:40 j28Q+xuO
>>427
キャラの向きを変数で持っとけばいい。
↑0、→1、↓2、←3みたいに。
方向キー入力の度に現在の向きを数値で保存しておいて、後は実際にキャラを描画する際に、
保存した方向の値を元に、表示する画像を選べば良いだけ。
画像データを配列にして持っておけば、if文もいらないからもっと楽。

430:名前は開発中のものです。
07/02/20 17:41:57 j28Q+xuO
>>428
うお、早w
・・・うん、まあ>>427はそんな感じで頑張れw

431:427
07/02/20 17:56:20 35NxbGRL
>>428 >>429 >>430
ありがとうございます!! がんばります!
これでやっとRPGが作りはじめられる;;

432:名前は開発中のものです。
07/02/20 18:32:53 nJaWXZmF
>>431
まずはシューティングだろ、技術的に考えて…

433:名前は開発中のものです。
07/02/20 19:44:08 cfAvRUKe
なんでやねん

434:名前は開発中のものです。
07/02/20 19:54:31 67b5bLjK
シューティングらしきものを作るのは楽だからな。
まあアクションの細分ジャンルみたいなもんだから
フォーマットが限られてるという理由もある。

435:名前は開発中のものです。
07/02/20 20:01:11 4t1drqz4
こんな基本的なこと質問してるレベルじゃあ
ろくなモン作れないさ。

436:名前は開発中のものです。
07/02/20 20:32:38 tSiBbCYw
まぁシューティングからかな
ドラクエ式RPGを最初に作ろうってのは無謀

437:名前は開発中のものです。
07/02/20 21:47:31 TEatCogU
つーか、普通のRPGみたいなのは素材が問題だからなw

438:名前は開発中のものです。
07/02/20 22:04:17 sIMFx+0Q
難易度的には簡単だと思うが、ドラクエみたいなのを作ろうとしたら膨大な素材が必要だし一人で作るのはまず無理だな
技術的に可能でもとてもやる気がもたんだろうw

439:名前は開発中のものです。
07/02/20 22:49:44 tSiBbCYw
RPGとかノベルゲーは思いのほか
プログラムが面倒だぞ

アクション系はものにもよるけど
結構いきあたりばったりでいける

440:名前は開発中のものです。
07/02/20 23:12:55 j28Q+xuO
個人的な経験上、RPGやノベルゲームは、システムを作るかゲーム内容を作るか、
絵や絵素材を描き込むか、三つの内の二つまでが根気の続く限界だったw

昔初めて作った自作RPGも、結局ドット絵で4方向キャラ絵描くのが大変で、
システムじゃ対応させていたのに、画面じゃ初代DQ1と同じ正面固定キャラだったり・・・

441:名前は開発中のものです。
07/02/20 23:19:48 2Kw8UJd6
最終的には、くだらないツール作り・・・

442:名前は開発中のものです。
07/02/20 23:27:54 zE56GDp8
マップ上のキャラだけポリゴンにするとかw

443:名前は開発中のものです。
07/02/21 02:24:31 fMYYp1Y1
randomize
sexplay=rnd(100)

if sexplay = 0 : dialog "プギャー"

F5

 ! プギャー


('A`)



444:名前は開発中のものです。
07/02/21 10:11:04 VNWQKOrq
200回実行して、一度もプギャーされないんだが

445:名前は開発中のものです。
07/02/21 14:44:56 Lykz6MYj
>>431
ドラクエ型RPGよりも
20年前のウィザードリー型
(直線だけで書かれたヘボイ3D迷路のダンジョンで
 ストーリーが殆どないRPG。
 あるのは迷路探索と戦闘と店の売買と宝探しと
 多少のイベント)
のRPGのほうが作りやすいんじゃないかい?

それだと、ソースのテンプレみたいのもあるし
マップがあまり広くなくても大丈夫だし
ストーリーも殆どいらないし
主人公や仲間のグラフィック書かなくていいし
重要なのは敵の出現率と強さのバランスだけだから
(これは重要。本当に重要)作りやすいよ。


446:名前は開発中のものです。
07/02/21 14:55:21 2oVWmjXk
>>445
消防の頃、88で自作の3DRPG作ったのを思い出す。
初めて自分の作ったダンジョンの中を歩いた時は、そりゃ感動したもんだ。
LINE文が、描画中の線が目に見えるほど遅かったのには難儀したが。

447:名前は開発中のものです。
07/02/21 20:10:26 sqTKc8XK
>>446
俺もやったけど、描画は遅いんであらかじめ描いておいてパレットチェンジで対応した。
描画の速さはちょっと自慢だったが、完成してないので誰も見ていないw

448:名前は開発中のものです。
07/02/21 20:27:05 2oVWmjXk
>>447
ああ、そう言う方法の方が早かったかも知れないですな。
あんまり遅かったんで、俺はLINE文を自作のマシン語で置き換えて作ってたよ。
まあダンジョンの中歩けた時点で満足して、俺もゲームらしいゲームには作らなかったけど・・・

449:名前は開発中のものです。
07/02/21 21:51:11 ffqSjqvs
>>446
消防でか。すげーな。
俺の通ってた小学校にいたら間違いなくヒーローだぞ。

450:447
07/02/21 21:57:51 sqTKc8XK
さすがにマシン語は無理だったw
緑の点を打つ、あたりで挫折した覚えがあるよ。446すげーな
つーかここHSPスレじゃねえかw

451:名前は開発中のものです。
07/02/21 22:25:26 CjGnhR5w
てかなんでそんな人間が今HSPなんだよ

452:名前は開発中のものです。
07/02/21 23:00:10 sqTKc8XK
ラクだからじゃないのか

453:名前は開発中のものです。
07/02/21 23:29:33 0jTyllT+
いくつかの数字から、何個か選ぶみたいな命令ってあるの?
ロト6用に簡単なものをつくってみたいんだけど、
ぱっと思いつくrepeatとrndをつかった文だと、重複した時の対処を
一つずつやっていかなきゃならないけど、
なんかもっときれいな形にできないかなと。

454:名前は開発中のものです。
07/02/22 00:04:43 MHAA7b9m
ぱっと思いつくrepeatとrndをつかった文で重複した時の対処を一つずつやっていけばいいと思う。

455:名前は開発中のものです。
07/02/22 00:44:26 XI+KwTS4
ちょっと分かりにくいかもしれない。
シューティング作ってるんだけど、弾の出し方がよく分からない。

・押しっぱなしで出続ける(最大何発とかの制限あり)
・離すと切れる

は出来るんだけど、

・一回押したら最後まで出る(ミサイルが4発時間差で出たり)

ってのが出来ない。
だれかヒントを…


456:名前は開発中のものです。
07/02/22 00:55:44 0D03FtgL
ショットボタン押されたらカウンター生成(カウンター≠0ならショットボタンを無視)

カウンターが規定値に達したらカウンターを0に。

カウンターが特定の値のとき、自機の座標に応じてショットを生成

ループ

で良くね

457:名前は開発中のものです。
07/02/22 00:58:29 MHAA7b9m
ミサイルのフラグ(待機、発射中、硬直中、残弾無し、一時使用不可)を作って
キー押されたらフラグ変えて、ループ中に作ったif文で関数なりなんなりに飛んでけばおk
モジュール空間にミサイル発射間隔とカウンタ等を入れるのがお勧め

458:名前は開発中のものです。
07/02/22 03:06:11 AGuE7p3B
>454
そうですかそれしかないですか(´・ω・`)ションボリ

459:名前は開発中のものです。
07/02/22 04:11:10 AGuE7p3B
#include "hspda.as"
*saisho
dim a,6
randomize
repeat 6,0
*yarinaoshi
a(cnt)=rnd(43)+1
if cnt=1 & a(1)=a(0) :goto *yarinaoshi
if cnt=2 & (a(2)=a(1) or a(2)=a(0)) :goto *yarinaoshi
if cnt=3 & (a(3)=a(2) or a(3)=a(1) or a(3)=a(0)) :goto *yarinaoshi
if cnt=4 & (a(4)=a(3) or a(4)=a(2) or a(4)=a(1) or a(4)=a(0)) :goto *yarinaoshi
if cnt=5 & (a(5)=a(4) or a(5)=a(3) or a(5)=a(2) or a(5)=a(1) or a(5)=a(0)) :goto *yarinaoshi
loop
sortval a,
repeat 6
mes a(cnt)
loop

mes "\n enterでもう一回。ESCで終了"

*keycode
stick key
if key&32 :cls :goto *saisho
if key&128 :end
await 1
goto *keycode

つくって見たんだけど、EXEファイルが実行してもエラー。
どうすれば良いか全然分からん。( つД`)

460:名前は開発中のものです。
07/02/22 05:04:52 lPfRj7VD
;その件に関するオレ的考え
*selnum ;数字選定
dim r,44
repeat 6
repeat cnt+1
a=rnd(7)+1:if r(a)=0:r(a)=1:break
loop
loop
;表示
repeat 43,1:if r(cnt) :mes cnt
loop
;まだやるかい
mes "\nENTERで「元気…イッパイ…だぜ…ヘッ…」\nESCで、「ヒ…」":a=0
repeat:wait 1:stick key
if key&32 :a=1:break
if key&128 :end
loop
if a:cls :goto *selnum

461:460
07/02/22 05:07:35 lPfRj7VD
;6行目間違い。デバッグ用の数値のままだった。
a=rnd(43)+1:if r(a)=0:r(a)=1:break

462:名前は開発中のものです。
07/02/22 06:26:39 TB+Oxm9G
>>459
出来るなら [Ctrl]+[F9] で実行ファイル作ってる?



463:名前は開発中のものです。
07/02/22 06:27:44 PPY3Nm7Z
>>453 ロト6のやつ
randomize: notesel a: repeat 43,1: noteadd ""+cnt: loop
repeat 6: i=rnd(43-cnt): noteget n(cnt),i: notedel i: loop
repeat 6: mes n(cnt): loop: stop

464:名前は開発中のものです。
07/02/22 12:39:48 ULv4wJip
>460
オメスゲーナ。やり用によってはこうやってできるのか。
ちょっとわからんところ。
repeat cnt+1 の意味と最後にa=0とかa=1の意味とか、
良かったら教えてくれ。
if ってこういう使い方もあったのか。ヘルプだけじゃワカラン。

>462
内部エラー38とか言われる。何がダメなのかわからないので、晒してみた。

>463
重複が重複のまま・・。

465:名前は開発中のものです。
07/02/22 14:41:18 TB+Oxm9G
>>464
>内部エラー38とか言われる。何がダメなのかわからないので
「38 "外部DLLの呼び出しに失敗しました"」
hsp30のフォルダにあるhspda.dllを
作った実行ファイルと同じフォルダにコピーしる

466:名前は開発中のものです。
07/02/22 15:15:46 ULv4wJip
>465
うぉうデキタ。トン
exeにしたときは同じとこにないとダメなのね。憶えた。
一緒にひっくるめてファイルにしてくれるもんかと思ってた。

できた記念に一口買ってくるヮ
8、11、12、16、19、38
思いきり当たらなそうだけどなーorz

467:名前は開発中のものです。
07/02/22 15:43:16 lPfRj7VD
>>464
思いついて適当に書いたけど
問われて改めて考えると、バグの元や無駄があるのに気づくな…。

─repeat cnt+1 は─
無限ループに陥るのを回避するために、ループ回数を指定してるんだけど
「ランダムで数字を選んだ時、すでに選択した数字とカブってる」
という状況は、7回以上連続して発生してもおかしくないんで、
試行回数 cnt+1 では不十分だ…。

>463氏の、選択した数値を抜き取っていく方法なら、
同じ数値が選ばれる問題は発生しないから、そっちのほうがいいやね。


─a=0とかa=1は─
キー待ちループの所で、
どういう理由でループを脱出したかを、あとで判定するための
フラグ操作のつもりだったのだけど、
脱出する理由は一つだけなんだから、フラグ立てるまでもなかった。

repeat:wait 1:stick key
if key&32 :break
if key&128 :end
loop
cls :goto *selnum ;これで十分だった。

468:名前は開発中のものです。
07/02/22 21:00:40 u/uL+4lY
HSPでRPG作ろうと思ってるんだけど、音楽の再生(BGM)までの時間遅くない?
これを皆さんどうやって解決してますか?

469:名前は開発中のものです。
07/02/22 21:09:48 5nAwOm3S
なんじゃそら
データの無音時間が長いんじゃねえの

470:名前は開発中のものです。
07/02/22 21:44:16 TMK/38nP
>>466 そぉい!

#define ALL 43 //0~42の合計43個から
#define NEED 6 //6個選ぶとして

dim a, ALL

repeat ALL
a(cnt) = cnt
loop

repeat NEED
idx = rnd(ALL-(cnt+1))
idx += (cnt+1)

//ここで2つをスワップ
tmp = a(cnt)
a(cnt) = a(idx)
a(idx) = tmp
loop
//処理が終了した、結果を確認 ****

repeat ALL
mes "a[" + cnt + "] = " + a(cnt)

if(cnt == (NEED-1)): mes "↑ ここまで"
loop

471:名前は開発中のものです。
07/02/22 23:23:00 MHAA7b9m
#define ALL 43 //0~42の合計43個から
#define NEED 6 //6個選ぶとして

if ALL < NEED : dialog "ALL が NEED 未満\nALL="+ALL+" NEED="+NEED,1,"MyError!" : end

//初期化
dim a, ALL
repeat ALL : a(cnt) = cnt : loop

//シャッフル
randomize
repeat NEED
  idx = rnd(ALL-cnt)+cnt   //←*******ここ、これでもいけるんじゃね?*********
  //ここで2つをスワップ
  tmp = a(cnt) : a(cnt) = a(idx) : a(idx) = tmp
loop

//処理が終了した、結果を確認 ****
sdim result, 32*ALL : notesel result
repeat ALL
  noteadd "a[" + strf("%2d",cnt) + "] = " + a(cnt)
  if(cnt == NEED-1) : noteadd "↑ ここまで"
loop
mesbox result, ginfo_winx,ginfo_winy, 0

472:名前は開発中のものです。
07/02/22 23:57:08 TB+Oxm9G
>>468
.MID?
なら音の初期化に時間が掛かってる(仕様)
それが嫌なら MCI コマンド で
mpegvideoのデバイス使用したりすればいい

473:名前は開発中のものです。
07/02/23 00:14:35 O0erhAiM
BGMは普通にオーディオファイル使いなよ

474:470
07/02/23 10:12:11 E2Prn5Yf
>>471
指摘と訂正ありがとう!
言われて気づきますた。>>470は rnd() で拾う範囲が間違ってました。

475:名前は開発中のものです。
07/02/24 19:54:37 W+rZHJ8X
>>468
___________________
| GuruGuruSMF            || 検 索 |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                         ↑

476:名前は開発中のものです。
07/02/25 03:54:57 VNaVZIL+
SMFでBGM鳴らすと嫌がられるかもよ

477:名前は開発中のものです。
07/02/25 06:18:25 g1M1g916
kwsk

478:名前は開発中のものです。
07/02/25 14:44:33 JBJKbo+u
高性能なソフトウェア音源持ってるとオーディオ鳴らすよりメモリ食うから
ゲームの処理自体も遅くなるってことか>476

479:名前は開発中のものです。
07/02/25 15:03:49 AlLVbpDx
俺もMIDIは嫌だな。
環境依存だから作曲者の意図した音色で鳴らないし、内蔵のはとにかく音がヘボイ。
外部音源(GM非対応)持ってるんだけど、MIDIのルーティングそっちにしてると
勝手に変な信号送るしな。

基本的には用量が小さい以外のメリットはないからオーディオデータのが良いよ。
フリー素材使う&レコーディング環境が無いならSMFデータでも仕方ないが。


480:名前は開発中のものです。
07/02/25 16:42:45 /zNzezvq
mp3はライセンスがあれだからoggだね

481:名前は開発中のものです。
07/02/25 17:02:00 VNaVZIL+
>477
俺が見てるゲーム系スレでMIDIだと一部に叩かれたりしてたってだけ
478-479みたいな話だった

俺もホムペでBGMにしてるとことかウザいし、内蔵の音嫌いなんで切っちゃってるがw

482:名前は開発中のものです。
07/02/25 17:18:26 fYDjuiva
GGSMFは指定すれば外部音源も使えるが、
DirectMusicモードにすればどのパソコンも共通のDLSを使うんだぜ(そのDLSを変えれば別だが、普通はしない)。
処理は重くならない。

まぁ音がショボイのは髪の毛が抜けるほど同意なんだけどさ。

483:名前は開発中のものです。
07/02/25 17:27:28 fYDjuiva
連ですまんが俺は

スーファミチックなグラフィック   = SMF
3Dなど、綺麗なグラフィックや世界観 = オーディオデータ

でいいんじゃないかと思っている
でもまぁ個人差はあるよね

484:名前は開発中のものです。
07/02/25 17:52:08 VNaVZIL+
どちらもオーディオでいいと思うけどw
何らかの理由でとにかくデータを小さくしたいなら別だが

485:名前は開発中のものです。
07/02/25 18:25:52 AgVpiUO/
ジャンルによるけど、オーディオだと素材が見つからないんだよね。
聴いたことあるやつだったりして萎えたり。

MIDIは豊富だけどどこもショボいし、
かといって自分じゃ作れないし…
はぁ

486:名前は開発中のものです。
07/02/26 01:40:02 57LQAIMh
>>483
ああ、それ分かるわ~
ファミコンチックな絵にはmusic.comのMMLで。

winで鳴らすプラグインあったよな…
いいわ。アレ。

487:名前は開発中のものです。
07/02/26 01:53:38 oDJiOUFE
TSSで良いんじゃね。HSP用プラグインあるし。
あとMIDIデータがあるならGXSCCでオーサリングするとか。

とにかく環境依存のSMFは、技術的に他に選択肢が無い場合以外は回避が吉。

488:名前は開発中のものです。
07/02/26 19:23:37 RONGsV2o
わかった!
別でソフト音源を自作して配布すれば人類みな兄弟だ

489:名前は開発中のものです。
07/02/26 20:48:02 SJxC1fKB
そりゃPSGの時代にSCC積むってんなら分かるけど。
MIDIやmp3じゃだめなの?

490:名前は開発中のものです。
07/02/26 20:54:27 A8+9CQeT
低脳回線の俺にとっては、5分くらいかけて一生懸命落としたやつが、
超ハイクオリティなオーディオデータ使ってても
内容が糞だと本当に萎える。
作者は自分の技量に合った容量の音楽データを決めてくれよな/(^o^)\ハッナザッワサーン

チラ裏だけど
俺はショボいMIDIのほうがゲームには味があっていいなと思う時がある

491:名前は開発中のものです。
07/02/26 21:09:27 I1DVp87U
>作者は自分の技量に合った容量の音楽データを決めてくれよな
ムチャクチャ言うとるw

だからTSS使えと

492:名前は開発中のものです。
07/02/26 22:17:32 PGtAGC7+
ここはミュージックフォーマットスレですか?

HSPの話題ないのかね

493:名前は開発中のものです。
07/02/26 22:53:47 oDJiOUFE
TSSをHSPで使ってみよう

494:名前は開発中のものです。
07/02/27 01:26:41 sv8ON4Xo
元から進行遅いんだし何話題にしてももうなんでもよくね?
と妥協気味なんだが。

495:名前は開発中のものです。
07/02/27 04:16:21 sv8ON4Xo
というか、こういう話題で荒れなかったのは奇跡な気がしてきた。

496:名前は開発中のものです。
07/03/02 17:27:06 RL8xs1BY
>467
レストンクス
cnt+1はそういうことだたのかー。
あの時はcntがどこにかかっているのかまだ良くわかってなかった。
でも これは (cnt+1/43)^(cnt+1) ってことで
確率としてはよっぽどと思うけど、
プログラマからすると高い方なんだろうか。
組んで計算してみようかと思ったけど、累乗してくれる命令が見つからない。
a=はフラグなのね。なるほどね。フラグってそうやって表すんか。
別のプログラムでこのやり方使ってうまくいった。勉強になりました。

>470-471
ようやっと仕組みがわかった。これも凄いな。
こういう発想は慣れればすぐ出てくるものなのかとただただ感心。
でもそれだけじゃ悔しいのであえていうと、
ロト6にゼロはないから、 a(cnt)=cnt+1にシル。

497:名前は開発中のものです。
07/03/02 21:45:03 nNF0epL2
hsp wikiが

アクセス権限がありません

とかで見れない・・・俺だけ?

498:名前は開発中のものです。
07/03/02 22:49:20 5hSvgbhg
見れるが

……何かやらかしたんじゃないだろうなw

499:名前は開発中のものです。
07/03/02 22:52:48 xch9HBdf
>>497
俺は開ける
ついこの前開発wikiが
>07/02/28から07/03/01までの間アクセスできない状態が続きました。原因はスパムによる高負荷だったようです。
だったみたいだから
そのうち繋がるんじゃね?


500:名前は開発中のものです。
07/03/03 08:16:02 /ZMyxF+O
まりがとう。

ところで、
装備品やアイテムのパラメータがExcelで管理できたら
製作者的に便利だと思ったんですが、
HSPとのやりとりは難しいですかね・・・?

今はnote命令でやってるんですが視認性があまり良くなくて・・・

501:名前は開発中のものです。
07/03/03 11:47:02 b1MKL1pP
>>500
本格的なxsl形式対応は難しくても、csvなら簡単じゃね?
まあ何をどういう感じにしたいのかは知らんが。

502:名前は開発中のものです。
07/03/03 12:28:23 WpAkZHyn
>>500
今はどんな感じに(noteで読んでる)ファイル作ってる?

503:名前は開発中のものです。
07/03/03 13:18:13 a544u/75
HSP3です。
screen で作成したWindowを、HSPスクリプトディタみたく、
最大化ボタンを追加し、起動時に最大化を行う
(ただしタスクバーと重ならないように)
ようにする方法があれば教えてください。

Wikiの過去ログで最大化ボタンを追加する方法がありましたが、
タスクバーの後ろに画面が重なったり、
プログラム実行時、自動的に最大化する方法がわかりませんでした。

504:名前は開発中のものです。
07/03/03 13:21:58 /ZMyxF+O
こんなカンジです
;武器データの例(各0行目=インデックス=武器ID)
;10行目;ファイル名,アイテム名,材質
;11行目;アイテムの説明
;12行目;損壊後ID,耐久度,重量
;13行目;切断力,刺突力,衝撃力
;14行目;対切,対刺,対衝
;15行目;切,穿,打
;16行目;構えN,構えT,構えW
;17行目;持易N,持易T,持易W
;18行目;価格,汎/重
;19行目;欠番(改行だけを入れる)

Excelだとフィルタとか使えてアイテム間のバランス調整が楽だなあと思いまして

505:名前は開発中のものです。
07/03/03 14:07:38 WpAkZHyn
>>503
#uselib "user32.dll"
#func ShowWindow "ShowWindow" int, int
//  BOOL ShowWindow(
//    HWND hWnd,    // ウィンドウハンドル
//    int nCmdShow  // 表示状態
//  );
#func SetWindowLong "SetWindowLongA" int, int, int
//  LONG SetWindowLongA(
//    HWND hWnd,    // ウィンドウハンドル
//    int nIndex,      // 変更するデータの指定
//    LONG dwNewLong  // 新しい値
//  );
#func SetWindowPos "SetWindowPos" int, int, int, int, int, int, int
//  BOOL SetWindowPos(
//    HWND hWnd,            // ウィンドウのハンドル
//    HWND hWndInsertAfter,    // 配置順序のハンドル
//    int X,int Y,int cx,int cy,    //位置と大きさ
//    UINT uFlags            // ウィンドウ位置のオプション
//  );
#define GWL_STYLE                -16
#define WS_OVERLAPPEDWINDOW    0x00CF0000
#define SW_SHOWMAXIMIZED        3
#define SWP_FRAMECHANGED      0x0020
screen 0,ginfo_dispx,ginfo_dispy,0,,,640,480
SetWindowLong hwnd, GWL_STYLE, WS_OVERLAPPEDWINDOW
ShowWindow hwnd, SW_SHOWMAXIMIZED
SetWindowPos hwnd, 0, ginfo_wx1, ginfo_wy1, ginfo_dispx, ginfo_dispy, SWP_FRAMECHANGED

とりあえず作ったぜ?最大化はこんな感じ?
で、タスクバーが重ならないのはフルスクリーンではないのか?

506:503
07/03/03 14:33:02 a544u/75
>>505
早い回答ありがとうございます。
>>505の内容を新規作成で実行しましたが、ウィンドウがちらっと見えて速攻落ちました。
ちなみにこちらで作ってみたのを下に書いてみます。

screen 0,10,10,2
sz_w = ginfo(20)
sz_h = ginfo(21)
screen 2,sz_w,sz_h,,0,0
cls 4
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#uselib "user32.dll"
#cfunc GetWindowLong "GetWindowLongA" int,int
#func SetWindowLong "SetWindowLongA" int,int,int
#const GWL_STYLE -16
#const WS_MAXIMIZEBOX 0x00010000
ws = GetWindowLong( hwnd, GWL_STYLE ) //ウインドウスタイル取得
ws = ws | WS_MAXIMIZEBOX //最大化ボタン表示フラグを追加
SetWindowLong hwnd, GWL_STYLE, ws //ウインドウスタイルを再設定
gsel 2,-1 : gsel 2,1 // [最大化ボタン]再描画のため
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

>で、タスクバーが重ならないのはフルスクリーンではないのか?
フルスクリーンというのは、↓こんなのですか?
;$$$$$$$$$$$$$$$$$$$$$$
bgscr 2,ginfo(20),ginfo(21),,0,0
cls 4
;$$$$$$$$$$$$$$$$$$$$$$
というより、やりたかったのは最大化ボタンで最大化するとタスクバーを避けた範囲で最大化し、
タスクバーの高さをちょこちょこいじっても、追従してウィンドウの下枠が移動してくれるのです。

507:名前は開発中のものです。
07/03/03 14:46:03 WpAkZHyn
>>506
落ちたっすかwwwwwwサーセンwwwwwww
そのままコピペして全角スペース残って無いだろうな?#defineの所。もし、そうならプロセスが残ってるはずだ

>フルスクリーン
そんなの

>追従してウィンドウの下枠が移動
そのスクリプトでその通りに動いてるが?というかWindowsが勝手にやってね?

508:506
07/03/03 14:54:53 a544u/75
>>507
もうしわけございません。//の行をそのままやってました。
ちゃんと整理すると思い描いていたとおりの動きで感激です。
かなり嬉しいです。どうも。

509:名前は開発中のものです。
07/03/03 19:32:20 Ia/P8ltl
>>507
見吉ィぃぃぃぃいぃぃ!!!!

510:名前は開発中のものです。
07/03/04 17:15:14 wznVdj4V
突然の質問失礼します。Pcbnet2のサンプルのsample01_SimpleChatをコンパイル+実行
してみたのですが、HSP3ではエラーになってしまいます。
ソースコンバータ(HSP2をHSP3に変換してくれる)にかけたのですがサーバ側は問題
ないのですが、Client側でエラーが出てしまいます。
85|*main
86| tcpfail soc
87| if stat : tcpclose soc : dialog "接続が切断されました!",1 : end
88| tcpgetl buf,1024,soc
89| if stat : gosub *recv
90| instr a,msg,"\n"
91| if a!-1 : gosub *send
92| wait 1
93| goto *main

line89がエラーと出るのですが、どうしたらいいでしょうか? 教えてください

511:名前は開発中のものです。
07/03/04 17:42:38 S2R5w3OY
>>510
ソースコンバータを過信しすぎだな。
HSP3.1b7で実行すれば、エラーメッセージに原因が表示されるぞ。

512:名前は開発中のものです。
07/03/04 18:57:05 YMvgADvJ
instrを関数にしろ

513:1
07/03/05 00:21:04 6FToFsAD
>>512
instrを関数にしたいのですが、例えばa=instr(p1,p2,"string")ですよね?
このa=のaの部分を何にすればいいのかわかりません;;
>>511
早速DLしてきて試してみます! ありがとうございます ペコリ

514:名前は開発中のものです。
07/03/05 00:26:34 ao1dJWki
>>513
ヘルプ見ろって・・・
>instr(p1,p2,"string")

>p1=変数名 : 検索される文字列が格納されている文字列型変数名
>p2=0~(0) : 検索を始めるインデックス
>"string" : 検索する文字列
これでインデックス(自然数)が返ってくる。無ければ-1が返ってくる

515:1
07/03/05 00:34:38 6FToFsAD
>>514
すみません;; 本気でわからないのですが、instr(a,msg,"\n")では
パラメータ式の記述が無効です。
ってなります;;

516:名前は開発中のものです。
07/03/05 00:35:14 6FToFsAD
↑ごめんなさい、1じゃないです。

517:名前は開発中のものです。
07/03/05 00:48:28 ao1dJWki
>>515
C言語とかだと有効だけど、HSPでは関数の戻り値を入れる変数が必要
つまり、index=instr(a,msg,"\n")みたいな感じで。
というか、戻り値使わないと関数を実行する意味無くね?

518:名前は開発中のものです。
07/03/05 01:10:21 6FToFsAD
ほんとにすみません;; index=のindexの部分を何にすればいいのかわかりません。
instrでmsgから"\n"改行?を探してるのかな?ってぐらいにしかわからないです;;

519:名前は開発中のものです。
07/03/05 01:36:15 6FToFsAD
あ! HSP2のinstrのヘルプ見てわかったんですが、a=(msg,,"\n")にしてやればいいのかな?
ですが、これで実行してみるとチャット欄にhelloって文字を打ちエンター押すと
10行ぐらいhelloってずらずら続いてしまいます・・・・
やはり違うのかな・・・・

520:名前は開発中のものです。
07/03/05 02:07:49 ao1dJWki
index = instr(msg,0,"\n")
これでmsgの中身をインデックス0(1文字目)から検索して"\n"があるインデックスがindexに入る

例 : msg = "hello\n"の時
6文字目にあるのでindexには5が入る。

521:名前は開発中のものです。
07/03/05 02:11:49 6FToFsAD
>>520
はい、そこまではわかりました。 でも、こんどはメッセージを送信したときに
メッセージがずらずら~っといっぱい出てきてしまいます;;
Test17>test
Test17>test
Test17>test
Test17>test
Test17>test
こんな感じです;;
もう、思いつく限りの関数はHSP3用に直したのですが・・・;;
原因がさっぱりです

522:名前は開発中のものです。
07/03/05 02:14:37 6FToFsAD
*send
s=msg
instr a,s,"\n" //ここもa=instr(s,,"\n")に直しました
getstr ss,s,a+2
poke s,a,0
s+=ss
buf="say "+s+"\n"
tcpput buf,soc
objprm 0,""
return

523:名前は開発中のものです。
07/03/05 02:36:17 ao1dJWki
//動作がよくわからなかったのでためしに書いた。
s = "0123456789\nabcdefg"
ss = ""
a = instr(s,0,"\n")
mes a
getstr ss,s,a+2
mes ss
poke s,a,0
s+=ss
mes s

つまり文字列途中の改行を抜きたいってことでいいのか?
もしそうならinstrとstrmidをセットで使ったほうが楽
strmid(buff,instr(buff,0,"\n")+2,256)
これでbuff内の\n以降が取得できる。

余談だが、\nって二文字分なのな。\n\rに変換してるってどっかで見たが・・・

524:名前は開発中のものです。
07/03/05 02:48:59 6FToFsAD
>>523 さん ほんとうにありがとうございます。
いぇ、改行を抜きたいのではなくて、pcbnet2のサンプルのsample01_Simplechat
をHSP3で正しくコンパイルしたいだけでして・・・;;

525:名前は開発中のものです。
07/03/05 02:54:53 ao1dJWki
>>524
というか俺、さっきも書いた気がするがHSP3から入ったからHSP2の知識が全く無い。
移植そのものの役には立てそうにない。
しかし、良いスクリプトってだいたいHSP2だな・・・

526:名前は開発中のものです。
07/03/05 02:58:45 6FToFsAD
>>525
ですねぇ;; ソースコンバータがもっとバージョンアップしてくれれば・・・・
             ↑
          すごい他力本願^^;

527:名前は開発中のものです。
07/03/05 03:54:46 IdxZqlrk
>>522
msg=""
objprm 0,""
return

一応これで出来た
hsp2だと objprm 0,"" で使ってるバッファも影響受けるのかな?


528:名前は開発中のものです。
07/03/05 03:57:48 ay926VlW
なんかごちゃごちゃやってるみたいだけど
ソースコンバータ通したスクリプトを

90行目
a=instr(msg,0,"\n")

135行目
a=instr(s,0,"\n"):msg=""

にするだけの話だぞ

529:名前は開発中のものです。
07/03/05 04:04:56 6FToFsAD
>>528
おお!! でけた! 528さん、ありがとうございます;;
このサンプルでpcbnet一生懸命勉強しようと思います。
どうもありがとうございました ペコペコ

530:名前は開発中のものです。
07/03/05 04:19:35 IdxZqlrk
sdim msg,1024
mesbox msg,200,24,1
repeat
s=msg
;instr(a,s,"\n") ;2用
a=instr(s,0,"\n") ;3用
if a>0{objprm 0,""}
title ""+msg
wait 1
loop
stop

やっぱり objprm の動作が2と3で違うな
2ならobjprm で操作したら使ってる変数内容も
変化するけど 3は変わらない
バグっぽいけど・・・

531:名前は開発中のものです。
07/03/05 08:05:10 9TVkJKsy
関連付けてる変数を更新して、それをobjprmの引数にすれば
OKなんだけどね。

ていうかウィンドウキャプション、改行コードも表示されちゃうんだ。
知らんかった。

532:名前は開発中のものです。
07/03/07 17:18:17 nPv9ImbS
サーバ側からクライアント側へ画像を転送するにはどうすればいいですか?

533:名前は開発中のものです。
07/03/07 18:44:46 nwF22j0Y
>>532
HTTPのGETコマンドで画像ファイルのURLをリクエストすればいい。
でもバイナリデータだからHSPだと切り出しがツライかも。

534:名前は開発中のものです。
07/03/07 20:09:37 nPv9ImbS
>>533
いあ、HTTPではなくて、サーバ側のbufferに描いた画像をクライアント側
にgcopyするみたいなことってできないですかね?


535:名前は開発中のものです。
07/03/07 20:18:53 hRCFzq0X
>>534
クライアント側がサーバになり(ポートを開いて接続を待ち受ける)、
サーバ側がクライアントとして振舞う(クライアントに接続に行く)ことで
ファイルを送りつけることは可能。
でも現実にはルータやファイアウォールとか、サーバの規約とか、
ウイルス扱いされるとか、ネットワークの安全性とか、色々な問題が予想されます。

536:名前は開発中のものです。
07/03/07 21:06:27 ydn30hoM
>>534
クライアント側に初めから用意されている画像を、
『どの位置か』といったシンプルな情報だけを通信でやりとりして、
それを基にクライアント側で処理させるのが無難。
 
何のためにそれをしたいのかを書かないと、大したアドバイスは出来ないと思う。
絵チャットみたいなのをしたいの?

537:名前は開発中のものです。
07/03/07 21:53:25 nPv9ImbS
>>536
なるほど。 別になにかしたいってわけではなくて、ただ、どうやったら
できるのかな?って疑問に思っただけなんです^^;
「どの位置」をクライアント側に渡してやればいいのかあ。
考えてみます。
どうもありがとうございました。

538:名前は開発中のものです。
07/03/08 17:40:29 TEJL+ADw
レースゲームのサンプルスクリプトってどこかないですか?
アクセルとブレーキの実装ってどうやっているのか知りたいのですが。

539:名前は開発中のものです。
07/03/08 17:51:20 V+92YLpv
>>538
物理計算を単純にした感じでいいんじゃね?

540:名前は開発中のものです。
07/03/08 19:31:25 swI1jhiZ
アクセル 前進
ブレーキ 停止
じゃなくて
アクセル 速度上昇
ブレーキ 速度減少
にして、速度によって位置を変えていけばいいんじゃね?

って回答でおk?

541:名前は開発中のものです。
07/03/08 19:34:54 TEJL+ADw
>>539
すいません、物理計算っていうのがわかりません;;


542:名前は開発中のものです。
07/03/08 19:42:23 TEJL+ADw
>>540
なるほどお!? わかったような、わからないような・・・
普通のキー入力だと、キーを離すとキャラクタが止まってしまいますよね?
キーを離しても、慣性で進んでいくような、レースゲームでは当たり前でしょうが、
経験が浅いのかおつむがバカなのかその具体的な方法が思いつきません

543:名前は開発中のものです。
07/03/08 20:07:41 hsHUTUZZ
*main
//キーチェック
if(加速キーが押されてたら):加速度=加速度+いくらか
if(減速キーが押されてたら):加速度=加速度-なんぼか

//座標更新
座標=座標+加速度

//グラフィック表示
pos(座標…
gcopy(グラフィック表示…

//ループ毎に減らす(アクセルを踏んでないとエンジンブレーキ)
加速度=加速度-ちょっと
goto *main

レースゲームだとたぶんキャラの位置は固定で背景だけが動く
だろうから適当に工夫してちょ

544:名前は開発中のものです。
07/03/08 20:29:52 TEJL+ADw
>>543
おお!ありがとうございます! これを元に考えてみます

545:名前は開発中のものです。
07/03/09 04:35:11 PSudILgY
どうでもいいけど
加速度→速度
いくらか・なんぼか→加速度
じゃね?

546:名前は開発中のものです。
07/03/09 05:52:08 mAtCxyxj
それもそうだ
本能で書いた
すまぬ


547:名前は開発中のものです。
07/03/09 22:18:11 OmsA6ix3
gzoomでキャラクターが画面向こうからこっちに迫ってくるようにしたいんですが
背景で画面をクリア(残像を消去)しながらやるとちらついてしまいます。
多分gzoom命令のせいだと思いますがちらつかなくする方法ってありますか?

548:名前は開発中のものです。
07/03/09 23:08:54 mAtCxyxj
redrawとかは当然使ってるんだよね
gcopyではチラつかないのにgzoomだとチラつく?

549:名前は開発中のものです。
07/03/09 23:48:34 9wm9gx0I
向かってくるキャラが女性なんだろう。
だから色々チラつくんじゃないかな。

550:547
07/03/10 07:57:00 BrhUO2D5
うまくいきました。
初歩的なことですいませんでした

551:548
07/03/10 08:53:38 s4EgJTT+
  ( ゚д゚ )

552:名前は開発中のものです。
07/03/10 09:47:14 RgqImxK/
どっかのHSPまとめサイトかなんかで、

このTIPSは理解しやすいように変数に全角文字を 使ってるけど
行儀が悪いので半角に換えましょう

みたいな事が書かれてたんだけど、・・・行儀悪い?
俺見易くなるようにNOを#とかにしてるけど・・・
後で思わぬ不具合が出るとか?



553:名前は開発中のものです。
07/03/10 12:02:56 EgnyZfl8
プログラムの書き方なんて千差万別
どの書き方がよくてどれが悪いなんて無い

554:名前は開発中のものです。
07/03/10 15:53:04 dqgHW26b
その手の宗教発言は真に受けるべからず

555:名前は開発中のものです。
07/03/10 16:21:45 C28IpD1h
HSPでアクションゲームつくりたいんだけどどこかいい解説サイトはないかな

556:名前は開発中のものです。
07/03/10 17:19:27 eQ0ijKNl
昔は「美しいプログラムを書きましょう」だの「スパゲッティ」だのよく聞いたんだけどな。今はソースを
他人に公開することもなく、チームを組んで作るとか後で後輩に引き継ぐとかするのでもなければ
行儀なんてどうでもいいんだろうな。現実にはそういう場合でもきったねえんだけどさ。
でもHSPなんてフリーソフトなんだから、やっぱ標準的な書き方しないと心配じゃね?変数を全角で
書いて、もし変な不具合が起こったらどうしようってずーっと心配しなくちゃいけない。行儀がどうこう
ってんじゃなくて、信用できない。起こらないんだろうけど。てか現実にはマイクロソフトだってそんな
に信用できないけどさ。

>>552
Dr.Dに怒られちゃうぞ。

557:名前は開発中のものです。
07/03/10 17:34:29 eQ0ijKNl
>>555
シューティングでもテトリスでも作り方がある程度分かればアクションも作れるだろ。あとはたっぷり
アクションゲームをやることだ。お前の言ってるアクションが格闘アクションのことだったら知らんけど。
てかHSPでアクションゲームに特化して解説してるがなかったら作れないってんならやめちまえ!





でも頑張ってね。(←ツンデレで)

558:名前は開発中のものです。
07/03/10 17:51:50 GJ+Cs3X4
どうせ横スクロールモノだろ?
シューティングよりも、テトリスの方が似てるかな。
テトリスの棒が左右に歩いてジャンプできれば、一画面物アクションなら出来たも同然。

559:名前は開発中のものです。
07/03/10 18:51:01 3t9NJGvE
すごろくゲームのサンプルスクリプトどこかにありませんか?
サイコロの出た目によってコマが進むしくみが知りたいのですがどうすればよいのかわかりません。

560:名前は開発中のものです。
07/03/10 19:31:06 s4EgJTT+
クマー


561:名前は開発中のものです。
07/03/10 19:49:45 GJ+Cs3X4
>>559
双六は、マップのデータの持ち方が意外にややこしいかもな。
・・・どうも、それ以前の段階で詰まってそうな感じだけど。

562:名前は開発中のものです。
07/03/10 19:56:29 5ZAWuvtI
>>559
まず一方通行&一直線のすごろくを作って、
配列インデックスと座標データとコマ表示の関係を学ぶといい。

1.一方通行&一直線のすごろく (基本)
2.クネクネしたすごろく (応用)
3.ぐるぐる回るすごろく (モノポリーなど)
4.分岐やループのあるすごろく (人生ゲームなど)
5.目的地があり、好きな方向に動けるすごろく (桃太郎電鉄など)

この流れで作っていけば君もすごろくマスターだ!

563:名前は開発中のものです。
07/03/10 21:02:03 rcfj8Pc0
>>552
同一ソース内に全角と半角を混ぜるなんて、
ちゃんと動いたとしても、気持ち悪くて出来ないな。
万が一、半角スペースのつもりで全角スペースを入れたときとか
見つけにくいんだよ意外と。
「そんなミスするわけないだろ(笑)」とか思っててもやってしまうのが
プログラミング。

少なくともそういう、「全角だろうが半角だろうがOK!」
っていう教え方をする先輩や上司はいないだろうな。

というか既に結論出ちゃってるけど、
個人でやるなら自由にすればいい。
団体でやるならマナーを守れと。

564:名前は開発中のものです。
07/03/10 21:14:58 Of9Rb6RG
ビリー「全角スペースなんて小さな事でお悩みの貴方に送る、テキストエディタ TeraPad!」

565:名前は開発中のものです。
07/03/10 22:04:35 A2NSoGOm
エディタで色分けやら下線強調表示できたところで、コード次第ではどのみち死ねますね
統一すんのは検索効率もあるし

566:名前は開発中のものです。
07/03/10 22:58:30 s4EgJTT+
どっちのスタイルにせよ
コメント文をソースに書くとき
全角にして半角に戻すのって面倒臭くない?

VC++でもしょっちゅう間違えてソースの方に
全角スペース入れてしまってコンパイル蹴られる。
漢字キーがもうちょっと近くにあると嬉しいのだが

567:名前は開発中のものです。
07/03/10 23:00:49 Of9Rb6RG
コメントを英語で書けば何の問題も無い

568:名前は開発中のものです。
07/03/10 23:05:06 s4EgJTT+
// sore naisu!

569:名前は開発中のものです。
07/03/10 23:25:27 9POELrpn
スペースは常に半角とか、IMEの設定でできなかったっけ?

570:名前は開発中のものです。
07/03/10 23:28:51 uQgnCise
>>559
マルチ乙w




釣りじゃないんなら
なにがわかんないのか書けばいいと思うよ

571:名前は開発中のものです。
07/03/10 23:34:42 s4EgJTT+
ああ、会社ではそれにしてる
シフト押しながらスペースで全角スペースになる

なんで家ではやってなかったんだ俺
なんか理由があった気がするが…忘れた

572:名前は開発中のものです。
07/03/11 00:39:28 stPPhm55
hspdxfixについて質問なんですが…

es_set等でスプライトの優先順位を設定した際に
数値が大きいスプライトが手前に表示されるのですが、
小さいほうを手前に出来ないでしょうか?

なんか設定ミスってんのかな、俺。



573:名前は開発中のものです。
07/03/11 09:11:36 iZ4HV+4f
多角形塗り潰しの命令でおすすめのないでしょうか?
ウィザードリィ風な3Dダンジョンをつくるのに台形の塗り潰し機能を使おうとしてます。
壁と天井の色を分けて裏画面で奥から手前に向かう順番で壁で塗り潰していってるのですが、
pal_DrawPolygonを使っていると、画面を何度か更新しているうちに
色がどちらか一方の色だけにかわってしまいます。

574:名前は開発中のものです。
07/03/11 12:00:57 /T7FdIWg
その謎命令については良く知らんが
gsquareじゃ駄目なん?

575:名前は開発中のものです。
07/03/11 13:01:37 9H6tJUaN
つーか単なるあんたのプログラムミスじゃん。

576:名前は開発中のものです。
07/03/11 15:27:59 GsSBQTuQ
その不具合が確実に起こる短いソースを書け

577:573
07/03/11 15:49:57 iZ4HV+4f
>>574-576
サンクス!
gsquareにかえたら問題解消でした。
短いソースかいてみます。

578:573
07/03/11 17:46:02 iZ4HV+4f
起動した後、Enterキーを押すたび、同じ画像が再描画されます。
ぽち、ぽち・・・と、Enterキーを、20回くらい押し続けると、
なぜか画像が変化します。
pal_DrawPolygonは、ここ↓
URLリンク(www.vector.co.jp)



#include "palhsp.as"
repeat
stick KY
if KY=32 {
screen 2,640,480 : cls 4
buffer 3,640,480 : cls 4
for j, 11, 7, -1 : for k, 3, 12,1 : for i, 6,15,1
pal_SetPoint 0,310+i*2,310+i*2
pal_SetPoint 1,410+j*2,310+j*2
pal_SetPoint 2,410+k*2,410+k*2
pal_SetPoint 3,310+k*2,410+k*2
color 25,125,50
pal_DrawPolygon 4,1
redraw 1
next : next : next
gsel 2,1
gcopy 3,0,0,640,480
}
wait 5
loop

579:名前は開発中のものです。
07/03/11 18:21:12 /T7FdIWg
リンク先はマンドクセからみてないが
基本命令の使い方すらわかってないのは良くわかった
こんなレベルでプラグイン使うな

あと、せめてこのソースが何をしようとしているか
ぐらい書け

「ボタン押している間だけ台形が表示される」か?

なんでメインループの、しかもキーチェックの中に
screen,bufferがあるんだ?

580:名前は開発中のものです。
07/03/11 20:33:12 yv4HZkMu
>>578
これはひどい

581:名前は開発中のものです。
07/03/11 21:08:13 9lsP7SN/
もっとソフトに叩いてやれよ。
HSPスレは初心者もしくはプログラム触り始めの人間が
現れるとすぐにムキになってブッ叩くクセがあって良くない。

>>578
これはひどい

582:名前は開発中のものです。
07/03/11 21:33:08 fVOjDyWr
初めて見るプラグインで、役に立ちそうな機能を持ってたので
どんな代物なのか自分でも確かめるために、>578の件を調べてみたが。

一見、HSPでも問題なく動いているように見えるけど、
更新されたのが2002年2月で、HSP3が出るずっと前のプラグインだから
HSP3には完全対応してないんじゃないかと思った。

実際、>578のスクリプトを2.61用に一部修正して実行したら、
描画が変化する問題は発生しなかった。
それにしても

>>578
これはひどい

ボタン1回押すごとに、324個のポリゴン描画してるのは
573の意図したものなのか、疑わしいな。

参考までに。 wait 5の前に
title str(cnt)
とか追加して、実行してみるといい。
これが573の意図した動作なのかどうか。

583:名前は開発中のものです。
07/03/11 22:29:42 /T7FdIWg
#include "palhsp.as"
screen 0,640,480 : //ループに入れるなカス!IDは0だろ
buffer 3,640,480 : cls 4//透過色用に黒か?
//意図は知らんがループ前に作ってちゃ駄目か?
for j, 11, 7, -1 : for k, 3, 12,1 : for i, 6,15,1
pal_SetPoint 0,310+i*2,310+i*2
pal_SetPoint 1,410+j*2,310+j*2
pal_SetPoint 2,410+k*2,410+k*2
pal_SetPoint 3,310+k*2,410+k*2
color 25,125,50
pal_DrawPolygon 4,1//んなマイナーなプラグイン知らん
next : next : next
gsel 0//描画対象を0に戻せ
repeat
redraw 0 //まず描画を裏画面にセットしろカス
color 80,50,50 : boxf //まず先に画面を背景でクリアしろカス!
//色をつけてみたのは透過するか確かめる為だ
//その上から描きたいものを載せろこのウジムシ!!
stick KY,32 //押しっぱなしの処理がしたいのか?ボウヤ
if KY=32 {
gmode 2//透過コピーで良いのか?
gcopy 3,0,0,640,480 //ID3に描いといた奴をコピーで良いのか?
}
redraw 1 //全部描き終わったら裏画面を表画面に反映しやがれ
title str(""+cnt+" "+(cnt/60))//秒間60フレームより速ければ秒より速く表示
await 5//awaitにしてみた
loop
//お前のママでもエスパーでもないんだ
//何やりたいかなんか知るかカス
//動的に変化させて表示させる意図なら知らん!自分で考えろ
//マニュアルのredrawとscreenとgselとこ100回読んで氏ね

584:名前は開発中のものです。
07/03/11 23:03:03 k4eFOmxa
どうでもいいことだけど
>screen 0,640,480
いらなくね
>redraw 0
redraw 2のがいいはず。
まあ実際はたいして変わらんが。
>KY=32
KY&32のがええかも。仕様によるが。
>gmode 2
ループの外に出せるね。

585:名前は開発中のものです。
07/03/11 23:10:44 V3/hxKyI
思い切りひっぱたいた後で一行ずつ丁寧に教えててワラタ

ツンデレってこのスレのことやね。

586:名前は開発中のものです。
07/03/11 23:24:14 /T7FdIWg
screenとgmodeについては
今後の変更のことも考えてそうした
背景を透過なしで使う可能性が高いからな

redrawはそうだっけ?忘れた

keyはコイツには&の説明すんのはめんどかった




587:1/2
07/03/12 02:01:28 UmbRWuRt
>>559
分岐無しだけど・・・
準備
#define colrgb(%1) color ((%1)>>16),(((%1)>>8)&$ff),((%1)&$ff)
#module
#deffunc getdat var indx,array ps,int no,int fg,local notdat,local strdata
chk='=' , ':' , ':' , ':' , ':'
noteget notdat,0:if fg=1 {indx=strsizeindx(no):masmax=no}:getstr strdata,notdat,indx,','
if strsize>0 {if fg=0 {masmax++:indx+strsize:strsizeindx(masmax)=indx}:idx=0
repeat 5:getstr tmpstr,strdata,idx,chk(cnt):if (strsize>0) {idx+strsize
: ps(cnt)=int(tmpstr)}loop}else{return -1}return masmax
#deffunc masmov array pdat,int pno,int masno
dupptr masdat,varptr(pdat(0,pno)),4*5:getdat indx,masdat,masno,1:return
#global
mas="0=16:16:100:80:,1=120:25:80:70:,1=200:32:80:70:,1=280:50:80:70"
mas+",1=300:130:80:70,1=220:150:80:70,1=140:180:80:70,1=80:230:80:70"
mas+",2=40:290:80:70:1j0n,1=120:300:80:70,3=200:290:80:70,1=280:310:80:70,10=360:340:120:90"
evmes="☆スタート☆","イベント無し","分岐点\n(未実証)","一回休み\n(未実証)","4","5","6","7","8","9"," ★ゴール★"
evcol=$f08080,$8080c0,$505080,$806030,$806030,$806030,$806030,$806030,$806030,$806030,$5080f0
evmcol=$ffff50,$a0f0f0,$f000f0,$101010,$806030,$806030,$806030,$806030,$806030,$806030,$f05060
randomize:buffer 1:notesel mas:repeat :getdat indx,ps,0,0:if stat<0 {break}
masmax=stat:colrgb(evcol(ps(0))):circle ps(1),ps(2),ps(1)+ps(3),ps(2)+ps(4),1
colrgb(evmcol(ps(0))):pos ps(1),ps(2)+ps(4)/2-8:mes evmes(ps(0)):color:pos ps(1),ps(2):mes masmax-1:loop
playernam="①","②":playermax=2
続く

588:2/2
07/03/12 02:06:06 UmbRWuRt
メイン
repeat:dim pdat,5,playermax:dim player,playermax:playerno=0:sai=0
gsel 0:clrobj :pos 500,100:button gosub "サイコロ",*rndsai:repeat:redraw 0:pos 0,0:gcopy 1,0,0,640,480:
if (sai>0)&(((cnt-tim)\15)=0)&mov{sai--:player(playerno)++:if sai=0{playerno=(playerno+1)\2::objprm 0,"サイコロ"}}
repeat playermax:masmov pdat,cnt,player(cnt):if pdat(0,cnt)=10 {Gaul=1}:color:x=pdat(1,cnt)+pdat(3,cnt)/5+cnt*32
y=pdat(2,cnt)+pdat(4,cnt)/5:circle x,y,x+17,y+17,1:color cnt*255,(cnt=0)*255:pos x,y:
mes playernam(cnt):loop:pos 0,0:color:mes "残り("+sai+")"
if Gaul{break}:repeat 2:pos 200-cnt,5-cnt:color (playerno*255)*cnt,(playerno=0)*255*cnt
mes "[ "+playernam(playerno)+" ] の番です。":loop:redraw 1:await 10:loop:Gaul=0:pos 250,220:color 255:
mes "[ "+playernam(playerno)+" が ゴール しました]":redraw 1:wait 200:loop
*rndsai:if sai=0 {sai=rnd(6)+1:title "サイの目["+sai+"]":mov=0:objprm 0,"移動"}else{mov=1:tim=cnt}:return

適当に改行してコメント入れてけば読めるだろう

589:名前は開発中のものです。
07/03/12 11:04:23 mM+HHXub
awaitって何ミリ秒ウェイトしてるの?
確かawait 16なら前のawaitから0.016秒「待った」後でウェイトが入るんだよね?

590:559
07/03/12 11:37:51 NDVpsEF4
>>587
>>588
ありがとうございます。

591:名前は開発中のものです。
07/03/12 11:55:55 gLL2hKAr
FPSを60に近づけたい時は、awaitの値を16にするんですよね。
うちの環境では、15と16では、かなりの差があり、15の方が正確に、秒をきざんでいるのですが
環境に依存するのでしょうか?

repeat
a+
title "" + a/60 + "秒"
await 15
loop

592:名前は開発中のものです。
07/03/12 12:32:17 PDxfvhOI
気になるようなら時刻を拾って補正すればいいんでは.
そこまで面倒かけてする必要があるかは謎だが.

うちも15の方が近い(60FPSよりやや早めになる)
16ってのは単に1000を60で割ったら16~17が一番近いってだけだろうから
理論上は60フレームで960mm秒しか待たない筈でも遅延を入れると
1000mm秒超えて結果的に15の方が近くなるのだと思う
たぶんマシンパワーが無いほど遅延が大きいと想像するがよく知らない

エロイひとの解説を待とう

593:名前は開発中のものです。
07/03/12 12:52:56 c7c2vkZ/
俺はOSのスレッド切替が10msで実行単位が20msだから間をとって2の乗数でキリのいい16、だと思ってた

594:名前は開発中のものです。
07/03/12 12:59:26 UmbRWuRt
>>591
await 1 とawait 10 を比べてみ
ほとんど違いが無いから
Win2000以降のOSだとawait 1でも10前後待つ


winmm.dll
 timeBeginPeriod タイマー精度の設定
 timeEndPeriod 設定解除
 timeGetTime 設定に合った精度で経過時間を取得できる

kernel32.dll
 Sleep 設定に合わせた精度で待つ

これらの組み合わせで、ある程度正確に待てる
使い方が分からなかったら、モジュールにして
公開してる人が居るから利用させて貰えばいい

有る程度正確って言うのは、Sleep 1としても
2ms待ってしまう環境があるから
2ms未満は時間を監視しながらループ回して
待てば正確さは増す(けどCPU使用率は上がる)

注意としては、awaitとSleepは別物なので、
Sleepを使っていてもawait 0は必ず必要
無いと閉じるをクリックしても終了出来なかったり
マウス座標収得やオブジェクトボタンの操作も出来ない


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch