HSP - Hot Soup Processor [14]at GAMEDEV
HSP - Hot Soup Processor [14] - 暇つぶし2ch386: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は必ず必要
無いと閉じるをクリックしても終了出来なかったり
マウス座標収得やオブジェクトボタンの操作も出来ない

595:名前は開発中のものです。
07/03/12 16:32:41 gLL2hKAr
>>592-594
回答有難うございます。
探してみたところ、MIA氏のtime.hpiが良さげなので、使ってみます。

596:名前は開発中のものです。
07/03/12 17:18:23 UmbRWuRt
>>595
それは用途が違うHSP2時代のawaitが
少し処理を食ってたから作られた物で
タイマー精度には関係ない

hsp Manager で検索してみ

597:名前は開発中のものです。
07/03/12 18:23:04 kFfYyS9X
>>570
何がわからないのかわからないのが初心者クオリティ

598:名前は開発中のものです。
07/03/12 20:14:55 gLL2hKAr
>>596
サンクス! Time Manager for HSP3ですね。

599:578
07/03/12 20:48:26 bHRnq+dr
>>579-584
いろいろ、ありがとうございました。
>>583のプログラムはいろいろノウハウがあって驚きました。
自分のとは比べ物にならないほど綺麗に画面が切り替わりました。
初心にもどって頑張ります。
またきます。

600:名前は開発中のものです。
07/03/12 20:53:37 c7c2vkZ/
初心者じゃなかったのか

601:583
07/03/12 21:15:42 PDxfvhOI
( ゚д゚)、ペッ 地球人め

602:名前は開発中のものです。
07/03/13 19:35:12 N8GDXKRx
コーディング能力・・・5だと?!

603:名前は開発中のものです。
07/03/15 21:35:25 R/FJK7NS
コミュニケーション能力はマイナスみたいね。

604:名前は開発中のものです。
07/03/16 04:49:37 BDnU/+tv
>>603
誰がうまいことをいえと・・・



この2日間の空白を作ったのはは明らかに空気が詠めない子だね (`ω´;)

605:名前は開発中のものです。
07/03/16 12:32:21 s337brCd
今日ぐぐったら、ウィンドウ半透明化のサンプルを見つけた。
これから全てのウィンドウを半透明化してやるぜフゥーファハハハハー

606:名前は開発中のものです。
07/03/16 23:28:12 5xoFEMkV
なんだ、XPで擬似Vistaでもやる気か!

607:名前は開発中のものです。
07/03/17 04:07:05 w6Ip/tdc
>>605
HSPだとメインウィンドウだけしか半透明にできないよね。
もし、子ウィンドウも半透明にできるんだったら知りたい。

608:名前は開発中のものです。
07/03/17 17:06:27 HgUYLq+d
>>605
重くなりそう

609:名前は開発中のものです。
07/03/17 19:08:59 q4U0F70w
>>608
重くなりました・・・
特にタブブラウザと2chブラウザが致命的だたーよ

610:名前は開発中のものです。
07/03/17 21:02:55 Z5sWvh6/
メモリ2GB以上推奨じゃね。

611:名前は開発中のものです。
07/03/26 00:48:34 pDPzBZgB
あげる

612:名前は開発中のものです。
07/03/26 01:10:12 EnuQNPAk
いらない

613:名前は開発中のものです。
07/03/28 18:27:58 A5jDWsKh
フルスクリーンとウィンドウを動的に切り替えるdirectxのdllは無いのでしょうか?
hspdxfixじゃ切り替えようと思うと急に落ちてしまって・・・

614:名前は開発中のものです。
07/03/28 21:21:13 +O7YOmys
処理として凄く面倒だから対応していないソフトって結構あるね

615:名前は開発中のものです。
07/03/28 21:41:27 rMTkz8BK
再起動後に有効になります。
で良いんじゃね。


616:名前は開発中のものです。
07/03/28 21:47:57 W4jKrJc5
iniファイルとかを書き換えて再起動でいいんじゃね?

617:613
07/03/28 21:59:47 A5jDWsKh
切り替えは再起動がやはり前提になるのですね・・・返答、ありがとうございました

618:名前は開発中のものです。
07/03/28 22:04:14 W4jKrJc5
再起動ってかDLL解放して再初期化だな

619:名前は開発中のものです。
07/03/28 22:54:45 zDNvHnoM
;フルスクリーンじゃなくて、全画面ウィンドウへの切り替えなら…

#include "HSPDXFIX.as"
sx=800:sy=600:screen 0,sx,sy,0:d3d=0
es_ini:if stat : goto *owari
onexit goto *owari
es_screen sx,sy,32,0,1,d3d:if stat : goto *owari
es_cls 0,0,0:wx0=ginfo_wx1:wy0=ginfo_wy1
*main:await 0:kyP=ky:stick ky,ky:if (ky=128):goto *owari
color 0,0,0:es_boxf 0,0,sx,sy:color 255,255,255:es_boxf sx-8,sy-8,sx,sy
pos 0,0:es_mes strf("あめんぼあかいな(゚ω゚)aiueo ky=%3d",ky)
if ((ky=4)&(kyP=0)) {bgscr 0,ginfo_dispx ,ginfo_dispy, 0,0,0}
if ((ky=1)&(kyP=0)) {screen 0,sx,sy,0,wx0,wy0}
es_sync -17,2:goto *main
*owari:es_bye:end

;(全画面<->窓の切り替え処理は手抜きなので、
;このままでは実用するには不都合あると思いますが、参考までに。)

620:名前は開発中のものです。
07/03/28 23:00:06 zDNvHnoM
あー、
カーソル右で全画面、
カーソル左で窓モードに戻す
ESCで終了、です。(読みづらいかと思ったので一応)

621:名前は開発中のものです。
07/03/29 04:26:24 yzMVV1IZ
ZGPはできたけど
今更3には対応していないしなぁ

622:名前は開発中のものです。
07/03/29 04:44:25 YSXEyT2v
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


623:名前は開発中のものです。
07/03/29 10:39:59 3R4jXytD
ちっちゃい窓画面と二倍表示の窓画面の切り替えをしたくて、

#deffunc draw int dispbuf
getkey key,112
if key {
 if key_on = 0 {
  if wsize {
   wsize = 0
   screen 0,320,240,0,(ginfo_dispx / 2 - 160),(ginfo_dispy / 4) : cls 4
  } else {
   wsize = 1
   screen 0,640,480,0,(ginfo_dispx / 2 - 320),(ginfo_dispy / 4) : cls 4
  }
  key_on = 1
 }
} else : key_on = 0

gsel 0 : pos 0,0
if wsize = 0 : gcopy dispbuf,0,0,320,240
if wsize = 1 : gzoom 640,480,dispbuf,0,0,320,240
gsel dispbuf
return

「dispbufに全部描画したあとスクリーンに(拡大)コピーする」
っていう命令を作ってredrawの代わりに使ってるんだけど
なんか他にもっと簡単な手段とか無いですか?

624:名前は開発中のものです。
07/03/29 11:35:10 5ZBqJ65v
>>623
大きさ変えるだけならwidthでいいんじゃね?
あと、clsよりboxfの方がいい。

625:名前は開発中のものです。
07/04/01 08:33:57 PkSFAggM
repeat -1
chp_zure.i = furehaba * sin((kakusokudo*cnt)+(kakudosokudo*i));正弦波?
i++
if i>chp_max : i=0
//ここでずらした位置に画像をコピー処理
loop

擬似ラスタスクロールで波が作りたいんですが、自分で作ったやつを見ると何故かカクカクしてしまいます。
ズレを画像の縦の座標1ピクセルごとに正弦波で作ってやって、それをその座標でコピーしています。

626:名前は開発中のものです。
07/04/01 08:42:58 bh2+2cXg
・redraw入れたか?
・変数名が酷いがどう思う?
・sin( kakusokudo * (cnt + i) )のほうがいいと思うけど何か?

627:名前は開発中のものです。
07/04/01 10:45:02 PkSFAggM
>>626
redrawは入れました
読みずらくてすいません。

628:名前は開発中のものです。
07/04/01 10:50:56 bh2+2cXg
int型になってるとか

629:名前は開発中のものです。
07/04/01 11:10:44 PkSFAggM
実数で計算して最終的にint()を呼び出して変えてます。
一応左右には揺れるんですけど、波みたいに見えないんですよね
波の起こりが遅いように見えます

630:名前は開発中のものです。
07/04/01 11:47:38 bh2+2cXg
buffer 0
picload "test.jpg" //適当な画像
SZx = double(ginfo_winx)
SZy = double(ginfo_winy)
screen 1,SZx,SZy
kakusokudo = 0.05
furehaba = 0.0
dim chp_zure,SZy
i = 0
repeat
?repeat SZy
??chp_zure(cnt) = furehaba * sin( kakusokudo * double(cnt + i) )
?loop
?redraw 0
?color 0,0,0 : boxf
?repeat SZy
??pos chp_zure(cnt), cnt
??gcopy 0,0,cnt,SZx,1
?loop
?redraw 1
?i += 5
?kakusokudo += 0.0001
?furehaba += 0.1
?await 16
loop

ちょっと書いてみた。こんな感じでいい?

631:名前は開発中のものです。
07/04/01 11:57:28 l/QzLrkf
;モレも作ってみたヨ

#define PI 3.1415926535897932386 

w=32                ;波の強さ
t=128               ;波の間隔

buffer 2,640,480 :picload "",1
gsel 0
repeat
    repeat ginfo_winy
        x=sin(PI*((cnt*360/t+a)\360)/180)*w
        y=cnt
        pos x,y :gcopy 2,0,y,ginfo_winx,1
    loop
    redraw 1: redraw 2 :color 0,0,0 :boxf :color 255,255,255
    a+=16           ;波の速さ
    await 16
loop


632:名前は開発中のものです。
07/04/01 12:05:42 bh2+2cXg
ちょい修正
buffer 0
picload "test.jpg" //適当な画像
SZx = double(ginfo_winx)
SZy = double(ginfo_winy)
screen 1,SZx,SZy
kakusokudo = 0.05
furehaba = 0.0
dim chp_zure,SZy
i = 0
repeat
 redraw 0
 color 0,0,0 : boxf
 repeat SZy
  chp_zure(cnt) = furehaba * sin( kakusokudo * double(cnt + i) )
  pos chp_zure(cnt), cnt
  gcopy 0,0,cnt,SZx,1
 loop
 redraw 1
 i += 5   //スピード
 kakusokudo += 0.0001 //振動数
 furehaba += 0.1   //振れ幅
 await 16
loop


633:625
07/04/01 13:39:14 PkSFAggM
>>630
>>631
ありがとうございます。
初歩的な勘違いをいくつかしていたのが原因だったみたいでした。

あとできたら横揺れに縦揺れを追加する方法が知りたいんです。
一応疑問は解決したので、これはできたらでいいんですが

634:631
07/04/01 14:01:50 l/QzLrkf
   pos x,y :gcopy 2,0,y,ginfo_winx,1
      ↓
   pos 0,y :gcopy 2,0,x+y,ginfo_winx,1

こうすると縦揺れ(?)になるヨ


   pos x,y :gcopy 2,0,x+y,ginfo_winx,1
      ↑で縦横

635:名前は開発中のものです。
07/04/01 14:25:16 bh2+2cXg
// 1/2

#define SZX_EXT 128 //揺れてはみ出た分
#enum BUF_IMG = 0
#enum BUF_SECOND
#enum SCR_MAIN

//元画像バッファ
buffer BUF_IMG
picload "D:\\画像\\ありがちな虹\\25666.jpg" //適当な画像
SZx = double(ginfo_winx)
SZy = double(ginfo_winy)
//横揺れ
buffer BUF_SECOND, SZx + SZX_EXT * 2, SZy
//メインウィンドウ
screen SCR_MAIN, SZx, SZy
//横揺れ用
dim chp_zure_x, SZy + SZX_EXT
kakusokudo_x = 0.05
furehaba_x = 0.0
//縦揺れ用
dim chp_zure_y, SZy
kakusokudo_y = 0.05
furehaba_y = 0.0
i = 0

636:名前は開発中のものです。
07/04/01 14:26:08 bh2+2cXg
// 2/2

repeat
redraw 0
//横揺れを描画
gsel BUF_SECOND
color 0,0,0 : boxf
repeat SZy
chp_zure_x(cnt) = furehaba_x * sin( kakusokudo_x * double(cnt + i) )
pos chp_zure_x(cnt) + SZX_EXT, cnt
gcopy 0, 0,cnt, SZx + SZX_EXT,1
loop
//縦揺れを描画
gsel SCR_MAIN
color 0,0,0 : boxf
repeat SZx + SZX_EXT
chp_zure_y(cnt) = furehaba_y * sin( kakusokudo_y * double(cnt + i) )
pos cnt, chp_zure_y(cnt)
gcopy BUF_SECOND, cnt + SZX_EXT,0, 1,SZx
loop
redraw 1
i += 5 //スピード
kakusokudo_x += 0.00001 //振動数
furehaba_x += 0.2 //振れ幅
kakusokudo_y -= 0.00001 //振動数
furehaba_y -= 0.2 //振れ幅
await 16
loop

637:名前は開発中のものです。
07/04/01 23:23:00 qmrcQHpu
>>624
亀だけど㌧

他には特になし、てことでいいのかな…

638:名前は開発中のものです。
07/04/02 02:06:45 yH4J2c4D
#define 変数 システム変数(cntとか)

って無理なんですかね?
コレができれば管理の手間が減らせそうなんだけど・・・

639:名前は開発中のものです。
07/04/02 02:48:10 E8nYiBqA
やってみればいいだろそれくらいなら

640:名前は開発中のものです。
07/04/02 03:43:50 YF+orBxP
constも使おうよ

641:名前は開発中のものです。
07/04/02 06:32:38 yH4J2c4D
>>639
いえすでにやってみてエラーがでたんで、その回避か代替は可能かなと

>>640
#constでも、やはり変数を使ってる時点でエラーがでました



普通に需要がありそうな気がしたんですが、発想自体がイレギュラーだったのかな・・・

642:名前は開発中のものです。
07/04/02 07:03:07 6D/Td0Rc
#define 変数 cnt

repeat 3
mes 変数
loop

;何を言っているのかよくわからないよ

643:名前は開発中のものです。
07/04/02 07:51:02 OgFackaK
ネストしても各cntが生きてる時点でアウトな気がする

644:名前は開発中のものです。
07/04/02 08:30:49 AAu4E+87
#defineはただの置き換えだろ・・・同じ意味を持たせるってわけじゃないだろ・・・

645:名前は開発中のものです。
07/04/02 10:16:27 CBsQTNyT
>>641
>普通に需要がありそうな気がしたんですが、発想自体がイレギュラーだったのかな・・・
意味がわからね
何をするために必要なの?
意味あんの?


646:名前は開発中のものです。
07/04/02 10:58:38 WD0jAhl8
システム変数に値を代入したいとか...?

647:641
07/04/02 18:20:22 yH4J2c4D
;失礼しました・・・3D関係でオブジェクトIDというのが数字で割当てられているので
;それを名前で把握する為に#defineすると言うのが目的です。
;例えば
buf="pan","pin","pun","pen"

repeat 4
#define buf(cnt) ,cnt
loop

;という感じで、p2はp1に対応したオブジェクトIDを入れて使おうと思いまして。
;bufはメモリノートパッドで大量に読むので、その手作業を減らす為です。

648:名前は開発中のものです。
07/04/02 18:26:35 AAu4E+87
repeat 4
#define buf(cnt) ,cnt
loop

無意味なループじゃね?いろいろと勘違いしてないか?

649:641
07/04/02 20:21:16 yH4J2c4D
・・・イヤそうじゃなくて・・・

>>647で書いたように、#defineが変数の中身を参照した使い方がしたいけど
仕様ではそれができない(変数自体使えない)んで、
その代わりになる方法はないでしょうか?という質問です。解りづらくてスミマセン

650:名前は開発中のものです。
07/04/02 20:24:51 GnD4wQd4
hoge = cnt

651:名前は開発中のものです。
07/04/02 20:27:52 tpdpORJE
>>649
たぶん無理な気ガス。
どちらにしろ、#define はコンパイル前に置換するだけだから。

あえてやるなら、連想配列みたいな方法だと思うが。

オブジェクトIDと文字列が完全に固定なら、
repeat 4
mes "#define "+buf(cnt)+" "+cnt
loop
みたいにヘッダファイルを書き出してから、それをインクルードするw

652:641
07/04/02 20:44:30 yH4J2c4D
お答えありが㌧です。

やはり私の発想はどこか飛んでたようですね。あきらめてまた一から
違う管理方法を考えます

653:名前は開発中のものです。
07/04/02 22:21:02 fSYb2JxG
URLリンク(nextbm.ty.land.to)

毎月HSP掲示板に来てたのが廃刊してくれたそうだw
理由がワロスw

654:名前は開発中のものです。
07/04/02 22:31:48 nAJq39ai
>>647
オブジェクトIDは何が割り当てられるか不定で
使う時には名前でIDを使いたい?

俺はこんな感じでやってる(ID何番が割り当てられるかは気にしなくていいから楽)
#include "hgimg3.as"
#enum pan=10
#enum pin
#enum pun
#enum pen
#enum objend
dim id,objend
hgini
setsizef 10,10
addbox mid
repeat objend-pan,pan
regobj id(cnt)
loop
repeat
setpos id(pan),sin(0.1*cnt)*25
addang id(pan),0.01,0.01
setpos id(pin),0,sin(0.01*cnt)*20
addang id(pin),0,0.01,0.01
hgdraw
hgsync 10
loop

連想配列が実装されたらid("名前")って出来るみたいだけど・・・

655:名前は開発中のものです。
07/04/02 22:43:36 6D/Td0Rc
HSP3.1は連想配列の実装が予定されている・・・
そんなふうに考えていた時期が俺にもありました

656:名前は開発中のものです。
07/04/04 17:21:52 n+Mf/sOw
age

657:名前は開発中のものです。
07/04/04 19:18:19 xIUSvdy4
HSPって、&と&&の区別しないんだな
俺の3時間返せ

658:名前は開発中のものです。
07/04/04 19:34:58 WifholmS
つ【3時間】

659:名前は開発中のものです。
07/04/05 11:29:50 ym/KUe2Y
マニュアルよめよ

660:名前は開発中のものです。
07/04/05 11:36:49 qUHD2MB+
↑読んでないやつ

661:名前は開発中のものです。
07/04/05 11:41:19 Jnpg8Zk/
その辺りはマニュアルに書いてない、というか、
仕様外の演算子じゃねーの?

662:名前は開発中のものです。
07/04/06 22:37:19 9HFxtVR8
で、β8が出てる訳だが

>・更新履歴
>
> 2007/04/05 3.1b8
>
> 新規拡張プラグインhspcvを追加。(詳細はhspcv.txtを参照してください)
> 変数データをまとめてファイルに読み書きするためのvload、vsave関連命令(hspdaプラグイン)を追加。
> HSPCL(コンソール版)のinput命令でバイナリーモード時にEOFを誤認識する不具合を修正。
> コンパイル時の追加ファイル(hspdef.as等)が存在しなくてもエラー表示しないように修正。
> 変数名情報を常に出力するオプションを#cmpopt命令に追加。
> HSPSDK(プラグイン)側から変数IDと変数名に関する情報を取得可能に修正。
> RSSモジュール(mod_rss.as)のモジュール名を修正。(HSPBT#133)
> user32.as内のGetWindowModuleFileName関数定義を修正。(HSPBT#125)
> 拡張プラグインhspinetのftpopen命令のポート指定ができない不具合を修正。(HSPBT#58)
> 拡張プラグインHGIMG3の機能追加と不具合をいくつか修正(詳細はhgimg3.txtを参照してください)。


663:名前は開発中のものです。
07/04/07 00:05:32 wTOoLdT/
そのb8、実行するとタイトルがb7になるわけだが
あと、アナウンスも無いけどね

664:名前は開発中のものです。
07/04/07 21:21:42 xJqf1AgZ
正式版キタ

665:名前は開発中のものです。
07/04/08 08:49:30 yoJuvkiJ
メッセージボックスの指定行のバイト数ってどうやって求めてる?
OSの問題でsendmsgはボツだし、地道に計算したらフリーズするし・・

666:名前は開発中のものです。
07/04/08 10:45:14 YH0fkqKd
リンク張っていないので
URLリンク(www.onionsoft.net)
URLリンク(www.onionsoft.net)

なんかdgdgね

667:名前は開発中のものです。
07/04/08 11:34:02 kbz+IrgG
>>665
note系命令で指定行取得してstrlen

668:名前は開発中のものです。
07/04/08 12:54:56 yoJuvkiJ
>>667
thx

669:名前は開発中のものです。
07/04/08 20:17:18 5KwOsR6N
新しいヘルプになって最前面に固定できなくなった?

670:名前は開発中のものです。
07/04/09 12:50:06 DSUlSx8P
>なんかdgdgね
ディグダグ?

671:名前は開発中のものです。
07/04/09 19:56:01 6Hv4syfu
>>670
グダグダ

672:名前は開発中のものです。
07/04/09 22:23:05 ntsmkKok
dgdgならディグダグで正解じゃないか?w

673:名前は開発中のものです。
07/04/09 22:44:43 xQ5lPNOu
新しい描画プラグインってどうなの?

674:名前は開発中のものです。
07/04/10 01:23:00 k7+XauZp
>>673
こんなのが数十行で出来る
URLリンク(thelaughingman.net)


675:名前は開発中のものです。
07/04/10 01:59:10 E0BpcqA+
描画プラグインに新しいのが出たのか?

676:名前は開発中のものです。
07/04/10 08:57:53 k7+XauZp
β晩にhspcvが追加されている
が、サンプルはない


677:名前は開発中のものです。
07/04/10 09:00:39 k7+XauZp
haarcascade_frontalface_alt2.xml はぐぐれ
#include "hspcv.as"
cvbuffer ,280, 212
cvloadxml "haarcascade_frontalface_alt2.xml"
cvload "認識させたい画像"
cvfacedetect , 1.0
if 0 == stat {
mes "認識失敗"
}
facearea_num = stat
cvgetimg , 0
dim maskarea, 4
repeat facearea_num
cvgetface facearea(0), facearea(1), facearea(2), facearea(3)
mes ""+facearea(0)+","+facearea(1)+","+facearea(2)+","+facearea(3)
loop
とりあえずこんな感じで認識できるはず

678:名前は開発中のものです。
07/04/10 12:05:36 BMeKgnLh
>>677
動いた おもすれー

679:名前は開発中のものです。
07/04/10 19:02:17 wiWwQvgv
変数データを直接読み書きできるって事は
セーブ・ロードが簡潔にできるってことなのかな

680:名前は開発中のものです。
07/04/10 21:54:45 XIsMa+6t
うん

681:名前は開発中のものです。
07/04/11 05:13:37 SKNSOWMH
ノートパッドで切り出しとかやってセーブ・ロードに苦心してた事も
いい思い出に変わるのかな

682:名前は開発中のものです。
07/04/12 21:07:33 22vncB1J
初心者用講座とか色々廻ってたけど
電卓作るあたりで挫折した

683:名前は開発中のものです。
07/04/12 21:08:29 bCgTq/qC
盛りage

684:名前は開発中のものです。
07/04/12 21:20:14 j0G3mdxP
>>677
顔じゃ無い部分が認識された
よく見ると顔みたいに・・・

心霊写真かと思ったよw

685:名前は開発中のものです。
07/04/12 21:20:43 00Wev8Rd
電卓で挫折って・・・

686:名前は開発中のものです。
07/04/12 22:32:55 cq6R8ing
なんのためにコンピュータ使ってんだろうなw

687:名前は開発中のものです。
07/04/13 02:40:01 KoxYsYvL
こんぽじっとぱたーん・・・・??????

デジタル土方レベルのCかBASICしか出来ない香具師でも
力技だけでゲームを作れる言語作ってくれよ!


あ、もうあるか。

688:名前は開発中のものです。
07/04/13 15:33:03 kkKSJW2x
10,200,30,60 00 ってテキストに書いておいて、
カンマ区切りで配列にしたいんですが、

notesel fileLoad
noteload "data.txt",0
sdim Fname,32000,999
getstr Fname,fileLoad,0,','
dialog Fname.1
dialog Fname.2

って書いてもダイアログには数字が表示されませんでした。
カンマ区切りのテキストファイルから配列を作るにはどう書けばいいのでしょうか。

689:名前は開発中のものです。
07/04/13 15:59:15 a+Uovvd0
>>688
それじゃあ、最初の一つしか配列に渡されないよ
notesel fileLoad
;noteload "data.txt",0
fileLoad="10,200,30,60,00"
sdim Fname,32000,999
index=0
repeat
getstr Fname(cnt),fileLoad,index,','
index+strsize
if ','!stat {break} ;getstrで区切りキャラクタ以外で取り出された
loop
repeat
if Fname(cnt)="" {break}
dialog Fname(cnt)
loop
end

プラグイン hspdaの csvstrと間違えた?
こっちなら一行分なら一回で配列に代入される
(でもhspdaには色々バグがあるから注意)

690:名前は開発中のものです。
07/04/13 18:14:32 kkKSJW2x
>>689
ありがとうございます。おかげさまでできました。
助かりました。

691:名前は開発中のものです。
07/04/13 20:07:44 I5qoCwtL
>>669
それ必要なの?

692:名前は開発中のものです。
07/04/13 20:30:21 fWNR28q6
おれ別人だけど、ヘルプ見ながらスクリプト打ち込みたいとか?

693:名前は開発中のものです。
07/04/14 00:03:39 atoydD3j
>691
うん、ヘルプ見ながら打ち込むので俺には必要。
命令のパラメータさえ分かればいいから小さくして右上に出しっぱなしにしてたんだが。
今は画面の3分の2にエディタ開いて残りにヘルプ出してる。
ヘルプブラウザのreadme見ても何も書いてないから抹殺されたんだろうな。

694:名前は開発中のものです。
07/04/14 01:44:52 8sg2zORJ
作者のページにBBSもあるんだし
ここで聞くよりも、作者に直接聞いた方がいいと思うんだが

695:名前は開発中のものです。
07/04/14 13:46:00 atoydD3j
あるか、ないか、が聞きたかっただけだから。
なけりゃないで、やり方はあるから作者ページに書き込むほどでもないと判断した。

696:名前は開発中のものです。
07/04/14 13:57:51 tSlK/VcG
今アイテム数20個毎にページを増やすように作ってるんだけど、
コレを16個毎にして16進数で管理すると簡便化できる?

697:名前は開発中のものです。
07/04/14 14:21:07 XHCB7tyo
>>696
\式使えば楽

698:名前は開発中のものです。
07/04/14 20:07:48 tSlK/VcG
ありが㌧

699:名前は開発中のものです。
07/04/15 19:29:31 HlbFQmd9
HGIMG3の簡易コリジョン(AABB)は実装されてますけど、
パーツ毎判定みたいのはいつ頃に実装されるのかな?

あんまり実装遅いなら使いたくないけど、ランタイムなのが魅力的なんだよな~
おにーたまHGIMG3スケージュルも出して欲しい

700:名前は開発中のものです。
07/04/16 03:55:20 jNSmnASU
パーツっつーかポリゴン毎のコリジョンか?
かなり重くなると思うんで簡易的にやったほうが良いんじゃないかと思うんだが…。

701:名前は開発中のものです。
07/04/16 10:10:37 bENpqRAl
hmm使ってフルスクリーンで動画再生するとキー入力受け付けなくなるんだけど
どうしようもないですか?

702:名前は開発中のものです。
07/04/16 18:25:39 9S9SQQvC
256*224の解像度を512*448のウィンドウで2倍表示したいんですが、
directXを使う以外に方法はありませんか?

703:名前は開発中のものです。
07/04/17 01:46:56 Zo18qgQY
>>702
>>623-624

704:702
07/04/17 07:26:05 /o1QDDuz
>>703
どうもッス。ファミコンぽいアクション作ってて、
gzoomだと透過色が使えないので困ってます。

705:名前は開発中のものです。
07/04/17 11:40:10 Lf6HAn0k
>>704
読み込んだ後にgzoomで他のバッファにコピーしとけばいいだけじゃん
buffer 1
picload dir_exe+"\\sample\\demo\\jp6girl.bmp"
sx=ginfo(12)
sy=ginfo(13)
buffer 2,sx*2,sy*2
gzoom sx*2,sy*2,1,0,0,sx,sy
screen 0,640,480
gcopy 1,0,0,sx,sy/2
gmode 2
pos sx/2,0
gcopy 2,0,0,sx*2,sy

それか、表示用と違うバッファに画面を完成させてから表示用の画面にgzoom


706:名前は開発中のものです。
07/04/17 17:21:04 jur7HrQ+
座標の扱いが違うけどgmode の設定が利くのもある
buffer 1
picload dir_exe+"\\sample\\demo\\jp6girl.bmp"
sx=ginfo(12)
sy=ginfo(13)
gsel 0
gmode 2,sx,sy ;コピー元の画像サイズ
pos 320,240+sy/2 ;画像の中心(gcopy等と違い指定した座標が中心に来る)
grotate 1,0,0,0,sx*2,sy*2

後gsquareってーのもあるけど、大量にコピーするのには向かないかな・・・




707:702
07/04/17 18:15:12 vZNpL9Pl
>>705 >>706
うお、その発想はなかったわ!
どうもありがとうございます。

708:名前は開発中のものです。
07/04/17 22:14:21 bRIENLRO
最近hsp2.6でhspdxのプラグインを使ったSTG作ってるんだけど
壁に自機弾と敵弾があたると、自機弾と敵弾が消えるようにしてるんだけど
稀に弾がすり抜ける時がある。
これって敵弾と自機弾が同時に壁に衝突した時にすり抜けるのかね?
自機弾のタイプ値2
敵弾のタイプ値8
400は壁のスプライト番号
es_find a,10,a
if a=-1:return
es_check b,a,32,1,400,400
こんな感じなんだけど。
すり抜けないよう対処法を教えて欲しい。

709:名前は開発中のものです。
07/04/17 22:19:51 2AXbs49U
単に弾の移動量が自機の判定より大きくて抜けちゃってるだけじゃないの?

710:名前は開発中のものです。
07/04/17 23:06:48 H8BcVo3o
壁との当たり判定なんてスプライトの判定命令じゃなくて計算でやれ

711:名前は開発中のものです。
07/04/17 23:19:06 bRIENLRO
>>709
確かに移動速度も影響あるけど
速度を遅くしてもやっぱり同時に衝突するとすり抜ける。

で、対策を考えたんだけど
単純に衝突のサブルーチンを2つにする事により
2発動時に衝突してもOKになったみたい。
この時点で全くすり抜けなくなった。
サブルーチンを3つにすれば3発同時もOKかな。

712:名前は開発中のものです。
07/04/17 23:32:40 I7JDTHxT
>>711
hspdxって使ったことないんだが、そのes_checkって当たってるスプライト1つしか返さないんだな。
自前でやったほうが簡単そうだな

713:名前は開発中のものです。
07/04/17 23:48:03 bRIENLRO
es_checkはもし同時に衝突してたらスプライト番号が低いほうが優先される仕組みになってる。
少しでも衝突タイミングが違えば問題ないんだけど。
あと、一度すり抜けたスプライトはすり抜け中に再び衝突判定が得られにくい。
すり抜けてる最中に他のスプライトとの衝突判定が起きるから。
あと俺の使ってるのはhspdxじゃなくてhspfixの間違いでした。


714:名前は開発中のものです。
07/04/17 23:49:00 2AXbs49U
>>711
ああすまん、ちゃんと読んでなかった。壁なw

>>712
判定を始めるスプライト番号を指定できるから、ひとつ見つかったら
その番号の後から再検索すれば良い。

715:714
07/04/17 23:51:13 2AXbs49U
自己レス
>判定を始めるスプライト番号を指定できるから
そんなもん無かったw
勘違い

716:名前は開発中のものです。
07/04/17 23:52:08 BKWD+g7L
>>711
つーか一回当たったら判定処理から抜けてるだけじゃねーのか?w

で、使ってるのはhspdxfixだろ?
*sub
es_find a,10,0
if a=-1:return
repeat
es_check a,400,10,1,a
if a=-1:break
消す処理
a++
loop
return

これでいんじゃねーの?


717:名前は開発中のものです。
07/04/17 23:52:31 M+5M3LEd
>>708
その3行の前後の処理が分からないけど
出現してる敵・自機弾に、
漏れなく壁接触判定を行き渡らせるのなら
2行目のreturnが実行されるまで、
繰り返し処理をしないといけない。

*hitcheck
es_find a,10,a
if a=-1:return
es_check b,a,32,1,400,400
(bに対する何らかの処理)
goto *hitcheck


つーか、
そのプログラムを組むとしたら

*wallhitcheck
es_check b,a,10,1,400,400
if b<0: return
(bに対する何らかの処理)
goto *wallhitcheck

で済むんじゃないか?

checkのタイプ値32の説明がないから
このままでは不都合あるのかもしれないけど

718:名前は開発中のものです。
07/04/17 23:54:36 M+5M3LEd
間違えた。

*wallhitcheck の次の行
es_check b,400,10,1,400,400

だな。

719:名前は開発中のものです。
07/04/17 23:55:01 BKWD+g7L
>>713
やっぱりfixかw

>>715
大丈夫fixだから指定できるw

720:名前は開発中のものです。
07/04/17 23:58:44 bRIENLRO
1回衝突判定が終ったら弾スプライトに+1してループさせてる。
それでもすり抜ける。

721:名前は開発中のものです。
07/04/18 00:11:22 I6KwsLu+
>>720
まぁ何だ。

似たような事をやったことあるけど
問題なくDXFIXで衝突判定できてたぞ。

アルゴリズムが悪いか、
>>713の書き込みから明らかだが
なんか大きな勘違いしてるんだろ。


>es_checkはもし同時に衝突してたらスプライト番号が低いほうが優先される仕組みになってる。
同じフレームで、続きから走査すれば、同時に衝突した
「スプライト番号が高いほう」のスプライトが見つかりますよ

> あと、一度すり抜けたスプライトはすり抜け中に再び衝突判定が得られにくい。
> すり抜けてる最中に他のスプライトとの衝突判定が起きるから。
お前は何を言っているんだ。

722:名前は開発中のものです。
07/04/18 00:16:03 7jAYZaBw
スプライト番号が高いのが優先されるかどうかはどうでもいいから適当に書いた。
すまんかった。
後半の文はちょっとわかり辛かったかな。
まあ大した事無い事なので訂正しなかったけど。
まあまだゲーム製作初めたばっかりだから勘違いしてる所は結構あると思うけど。
とりあえずもう少し勉強してみます。

723:名前は開発中のものです。
07/04/18 00:47:39 7jAYZaBw
プログラミングよりも日本語や人間としての常識の勉強が必要だったようです。
スレ汚しして申し訳ございませんでした。

724:名前は開発中のものです。
07/04/18 01:04:07 0trzgnV6
なんだこの展開w

725:716
07/04/18 01:22:55 bCYiqmbF
#include "hspdxfix.as"
es_ini :es_screen 640,480,16,0,1,0:es_cls 0,0,0:buffer 1
picload exedir+"\\sample\\hspdx\\TESTCHR.BMP"
es_buffer 1:es_size 64,64,50,0:es_pat 1,64,64,0:es_set 1,mousex,mousey,1:es_type 1,1
es_pat 2,64*2,64,0:es_pat 3,64*3,64,0:es_pat 4,64*4,0,0:es_set 400,320,200,4:es_type 400,32
gsel 0
repeat
es_boxf 0,0,640,480:es_pos 1,mousex-32,mousey-32
stick stk,$ffff:if (stk>0) and ((cnt\10)=0) {es_new newid,2
if (100>newid) and (newid>0) {es_set newid,mousex,mousey,2:es_adir newid,0,-500:es_type newid,2}}
rnd r,3
repeat (r*((cnt\30)=0))
es_new newid,100:if (200>newid) and (newid>0){rnd x,640:rnd y,100:es_set newid,x,y,3
es_aim newid,320,200,100:es_type newid,8}loop
gosub *sub
es_draw:es_sync 1,-10
await 0
loop
*sub
es_find a,10:if a=-1{return}
repeat:es_check a,400,10,1,a:if a=-1{break}:es_kill a:a++:loop:return

hsp2.61で作ってみたけど擦り抜けなんて起きないぞ?
(最初3.0aの方で作って試したけど問題なかった)
使ってる変数の初期化を忘れてるだけじゃねーのか?

726:名前は開発中のものです。
07/04/18 04:34:37 zV0payYl
島根県のみなさん、パチンコをするなら、

  優良パチンコ店 エ○トワン     

に行こう! 遠隔(※1)をやっていないパチンコ店は「エイ○ワン」だけ!
違法ロム(※2)を使っていないパチンコ店も「エイト○ン」だけ!
○イトワンでは、遠隔等が可能な設備は入れていません。 ロムも、警察がチェックしやすくしています。

詳しい方はご存知の通り、どんなにパチンコの遊戯人口が変動しても、その市場規模は変わりません(※3)。
要するに、客が減っても、残った客から絞り盗る量を増やして調整しているのです。
しかし、何故それが可能なのか?…ご理解頂けると思いますが、9割以上の店が確実に遠隔等を行ってます。
1万店以上のパチンコ店の中で、遠隔も違法ロムも確実にやってないのは「○イトワン」ただ1店です!

※1…遠隔とは
 「お、あの客は新顔だな。勝たせて味を占めさせるか。遠隔操作で設定変更しよ」
 「客が減ってきたな。ま、設定を絞めて(違法)、1人あたりから搾る量を増やせばいいか」
 「あのオヤジ負け続けてるからそろそろ辞めるかもな。今日は勝たせてやるか」

※2…違法ロムとは
 「うちのアタリ確率は、もちろん他と同じ『○○○分の1』ですよ!(ロムいじってるからウソだけど)」

※3       市場規模   遊戯人口
 平成06年 30兆4,780億円 2,930万人
 平成08年 30兆0,630億円 2,760万人
 平成10年 28兆0,570億円 1,980万人
 平成12年 28兆6,970億円 2,020万人
 平成14年 29兆2,250億円 2,170万人
 平成16年 29兆4,860億円 1,790万人


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