★ゲーム製作期待の星! HSP Part 9 ★
■ このスレッドは過去ログ倉庫に格納されています
0001いいからゲーム作れよ名無しさん
01/11/09 22:49ID:???公式サイト
http://www.onionsoft.net/hsp/
過去スレ
http://pc.2ch.net/test/read.cgi/tech/1004022176/ HSP - Hot Spup Processsor Part 8
http://pc.2ch.net/test/read.cgi/tech/1002478838/ HSP - Hot Spup Processsor Part 7
http://pc.2ch.net/test/read.cgi/tech/1001122847/ HSP - Hot Soup Processor Part 6
http://pc.2ch.net/test/read.cgi/tech/993489862/ HSP - Hot Soup Processor Part 3
関連スレ
http://pc.2ch.net/test/read.cgi/tech/1004522141/ HSPの評価って
http://pc.2ch.net/test/read.cgi/tech/1000213553/ HSP質疑応答スレ
http://pc.2ch.net/test/read.cgi/tech/1003825283/ HSPの詳しい解説とプログラムの仕方
http://pc.2ch.net/test/read.cgi/tech/1002027440/ 10分以内でHSPを使って何か作るスレ
0125名前は開発中のものです。
2010/04/07(水) 21:28:29ID:h2+BYV8HRPGならともかく、アクションはそれじゃダメだろ
ポインタですべてのインスタンスを配列かリストで管理すべき。
使用中のインスタンスと未使用のインスタンスを持って、
適宜相互にインスタンスを移動するのが普通だし、汎用的。
それより、アクションはインスタンスの状態管理が重要
状態遷移マシンを作ると楽にアクションゲームが作れる
0126名前は開発中のものです。
2010/04/11(日) 13:00:42ID:sX0GCi0vえ゛?
数値型配列ではいけないの?
0127名前は開発中のものです。
2010/04/11(日) 18:27:05ID:60JK+RHt画像の表示位置が微妙にずれる人がいたんだが
グラフィックボードによっては表示位置や仮想画面からの取得位置がずれたりするもんなのかな?
0128MIAのすごいスクリプト(原理はわからん)
2010/05/12(水) 20:33:05ID:zIpdnuJi; 重力を考慮した状態で硬いバネを複数繋ぎ、ヒモの動きを再現する ※位置と速度の更新方法が、ここまでのサンプルと変わっています
#define N 20 ; 制御点の数
#define L 10.0 ; 制御点を繋ぐバネの長さ
#define G 1.0 ; 重力
#define R 0.98 ; 速度に掛けるダンパー値
#define K 1.0 ; ばね定数
; データ領域の確保 (x,y = 現在の座標、ox,oy = 移動元の座標、vx,vy = 速度)
ddim x, N : ddim y, N : ddim ox, N : ddim oy, N : ddim vx, N : ddim vy, N
*MAIN
stick bt, 256 : if bt & 128 : end
; 移動元の座標を保存
repeat N
; 地面と接触していたら速度を減らす(摩擦)
if y(cnt) >= 460 : vx(cnt) *= 0.8
ox(cnt) = x(cnt) : x(cnt) = limitf(x(cnt) + vx(cnt), 20, 620)
oy(cnt) = y(cnt) : y(cnt) = limitf(y(cnt) + vy(cnt), 20, 460)
y(cnt) += G ; 重力を加える
loop
0129MIAのすごいスクリプト(原理はわからん)
2010/05/12(水) 20:34:43ID:zIpdnuJi; 結果を安定させるため、ある程度繰り返す
repeat 16
; マウス操作(クリックで端を引っ張る)
if bt & 256 {
x(0) = double(mousex) : xv(0) = 0.0
y(0) = double(mousey) : yv(0) = 0.0
}
; 力の解決
repeat N-1 : t = cnt + 1
; バネにかかる力の式 (f = kd)
dx = x(t) - x(cnt) : dy = y(t) - y(cnt)
d = sqrt(dx * dx + dy * dy) : if d = 0 : d = 1.0
f = (d - L) * K : ff = f * 0.5 / d
; 作用・反作用の法則に基いて、力を加える
x(cnt) += dx * ff : x(t) -= dx * ff
y(cnt) += dy * ff : y(t) -= dy * ff
loop
loop
; 速度の更新(元の状態との差を次フレームの速度とする)
repeat N
vx(cnt) = (x(cnt) - ox(cnt)) * R
vy(cnt) = (y(cnt) - oy(cnt)) * R
loop
; 描画
redraw 0 : color : boxf : color 255, 255, 255 : pos x(0), y(0)
repeat N : line x(cnt), y(cnt) : loop : redraw 1 : await 15
goto *MAIN
0130名前は開発中のものです。
2010/05/13(木) 14:52:42ID:b/2h1Ezhなにこのひどいスレタイ
期待の星ってアホですかと
0131名前は開発中のものです。
2010/05/15(土) 20:29:54ID:aV0xMDug0132名前は開発中のものです。
2010/05/17(月) 09:35:01ID:k4j0vMVCYahoo! JAPAN IDが無効です。
0133名無しさん@そうだ選挙に行こう
2010/07/11(日) 13:53:45ID:0C7+sX7X0134名前は開発中のものです。
2010/07/12(月) 02:20:26ID:y80fjAsy0135名前は開発中のものです。
2010/07/12(月) 17:17:00ID:WvTwcvl60136名前は開発中のものです。
2010/09/09(木) 11:43:02ID:/waQP0kcが出まくって困る
なにかよいノウハウはありますか
0137名前は開発中のものです。
2010/09/09(木) 21:35:35ID:3g70NkqJ0138136
2010/09/09(木) 22:51:35ID:/waQP0kc思いつかなかったわ、ありがと
0139名前は開発中のものです。
2010/09/10(金) 00:06:34ID:EGCifdrw0140名前は開発中のものです。
2010/11/29(月) 18:51:35ID:sJ2fbJyl0141名前は開発中のものです。
2010/12/08(水) 00:09:27ID:0lCsgori非常に重要なちがいがあるからちゃんと覚えよう
#deffuncは命令を作る。
だから、#deffuncで定義したモノは命令として他の場所で使える
命令ってのは
screen 0,800,400 みたいに、それ自体で何かを行うモノだ。
一方、
#defcfuncは関数を作る。
関数はあくまで変数や定数のような「値」であり、命令のように突然は使えない
hoge=2+関数+変数 のように使わなければいかないわけだ。
そのため、returnで戻り値(具体的にどういう値なのか?)が必要なわけだ。
関数は、この戻り値を求める間に、色んな命令を実行できるので、使いこなすと捗ったりもするわけだ。
このちがいがわからないと、モジュール変数を使うようになるとちんぷんかんぷんになるから気をつけてね
0142名前は開発中のものです。
2010/12/08(水) 20:02:59ID:x1mcEdPI0143名前は開発中のものです。
2010/12/09(木) 20:26:44ID:kzVSdZtX0144アジェグ4倍 ◆4xAJeG.COM
2010/12/17(金) 10:17:55ID:fH3VO3w1>敵が1匹死ぬと、該当する変数を不要のものとし、
>ポインタをつなぎ直す、といった処理が必要になってくる。
>座標や敵の種類、現在どういった状況であるのか、
>といったすべての変数について、ポインタの
>つなぎ直し処理が必要になってくるのだ。
コピペかもしれんし遅レスにもなるが、
単にポインタの説明のために考えられたサンプルに過ぎない
そのやり方が、実際の現場で使われてるのが
なんとも嘆かわしい限りだねぇ。
その後、そのテーブルのソートが必要になって、
vectorでインデックス作ってる記述を見たときは、もう・・・
0145名前は開発中のものです。
2011/01/23(日) 12:34:19ID:q+kP4u3WHSPが最近の言語の仕様じゃないからだろ
0146名前は開発中のものです。
2011/01/25(火) 00:52:33ID:pM2xeLh6数値は一つしか返せない。うーむ、設計を見直すか。
0147名前は開発中のものです。
2011/01/25(火) 04:23:55ID:pM2xeLh6refdvalを利用して
#modfunc e_retX
return x
#modfunc e_retY
return y
を作ってそれぞれ呼んで値を返させた。
0148名前は開発中のものです。
2011/02/06(日) 16:21:04ID:VYgWoDUh0149名前は開発中のものです。
2011/02/09(水) 19:18:42ID:M3k4P5wE新しい魔法を覚えたような気分。
0150名前は開発中のものです。
2011/02/10(木) 15:03:09ID:sra5tgS4そもそも#modfuncなんてモジュール変数使わなきゃ発見もできないだろ
0151名前は開発中のものです。
2011/06/11(土) 20:37:00.36ID:0fW8fZFAttp://pupld.net/07/110611/ns0w2ljveb/index.cgi
こちらよりクライアントのソースファイルをダウンロードして、hspスクリプトエディタ3.2(以降)でF5実行して
ip 218.44.29.42 に接続してみてください
本日24:00まで待ってます。
0152名前は開発中のものです。
2011/06/12(日) 00:02:41.99ID:VV0zrgj8この板人少さ過ぎワロタw
0153名前は開発中のものです。
2011/06/12(日) 00:41:31.82ID:AwFFX73i板もそうだけどHSPスレは乱立しすぎで余計にダメダメさ
VIPで頑張れ。協力者いそうだし
0154名前は開発中のものです。
2011/06/12(日) 00:42:34.18ID:VV0zrgj80155名前は開発中のものです。
2011/06/12(日) 02:06:21.11ID:efbIRhOuHSP3掲示板の方がが協力する人いたかも・・・
以前にも似たような要請あったけど何人か協力してたし
0156名前は開発中のものです。
2011/06/12(日) 02:25:29.24ID:AwFFX73iHSPっていうと敬遠されるのが分かる気がした
0157名前は開発中のものです。
2011/06/12(日) 03:04:49.37ID:VV0zrgj8getした部分はソケットから消えるとか書いといてよー
0158名前は開発中のものです。
2011/07/04(月) 21:34:05.74ID:MGPyNUuChttp://rinrin.saiin.net/~kojiwada/
0159名前は開発中のものです。
2011/07/06(水) 16:55:53.23ID:qXo8fmDv勝ってに更新されてた
0160名前は開発中のものです。
2011/08/17(水) 23:35:39.18ID:a4dY4tJbそういうのを話するスレとかってない?
0161名前は開発中のものです。
2011/08/18(木) 00:25:08.46ID:vkpPW8Foム板にあるよ
0162名前は開発中のものです。
2011/08/18(木) 00:27:07.80ID:opSVPQThありがとうございました
0163名前は開発中のものです。
2011/08/19(金) 07:13:20.23ID:iNoTS0T1コンテストのゲーム見るに見た目的にSFCからPS程度のものしかなさそうなんだけど
あんまり綺麗なグラフィックは重くて使えないって事なのかな、2DのRPG作りたいんだけども
0164名前は開発中のものです。
2011/08/19(金) 07:45:30.06ID:mRGQwp4kPSシリーズは3Dを意識したハード
PS2は3D処理は得意だけど、2D処理がとっても苦手なハードなのだ
例をあげるとPS2に移植された2D対戦格闘ゲームのすっごいアルカナハート・・・
スペックの限界オーバーで処理オチ&絵がぐちゃぐちゃで有名だよね
そのころドリームキャストは2D処理が大得意で
次々とアーケードゲームが移植されていった
ええと>>163は2DRPG作りたいんだよね
PS2並のでいいのかな?じゃあHSPでも大丈夫じゃね?たぶん
0165名前は開発中のものです。
2011/08/19(金) 07:55:49.31ID:iNoTS0T1とりあえずPS2レベルでドット描き込みまくるぶんにはHSPで大丈夫って事かな
安心したよありがとう
0166名前は開発中のものです。
2011/08/19(金) 08:11:49.05ID:mRGQwp4kドットの大きさって・・・もしかして解像度のことだったりする?
PS2の解像度はだいたい640x480だったんじゃないかな?
640x480のウィンドウで作ればPS2と一緒かもね
0167名前は開発中のものです。
2011/08/19(金) 08:25:48.29ID:iNoTS0T1コンテストのゲーム見ると簡素な2Dゲームが多いからそこが不安になったんだよね
ゲームのグラフィックはPS2ぐらいので満足というか好みなんで解像度もソレでやってみる
0168名前は開発中のものです。
2011/08/19(金) 08:52:02.11ID:iNoTS0T1256色でもいけるみたいだ
初心者な質問でスマンかった
0169名前は開発中のものです。
2011/08/19(金) 10:06:00.51ID:kxdLG7Tuそもそも何人ものプロが朝から晩まで頑張って何十日もかけて作ってるものを
アマチュアが1人〜数人で仕事や学業の合間の時間で完成させるのは無理な話
0170名前は開発中のものです。
2011/08/19(金) 10:25:21.90ID:iNoTS0T1C++までになるとさすがに無理だと思ってたからね
プログラム板のほうに質問スレあるみたいなのに親切にありがと
0171名前は開発中のものです。
2011/08/19(金) 18:21:26.69ID:mRGQwp4kそれがムリ無茶無謀でも俺は好きだよ
0172名前は開発中のものです。
2011/08/28(日) 20:44:57.03ID:MduuGjyUゲ製作から手を引いた人はどれくらいいるだろう
0173雨島珠洲歌 ◆hpQKE7cBAE5Y
2011/11/02(水) 21:00:02.12ID:5qGBDxfw0174雨島珠洲歌 ◆hpQKE7cBAE5Y
2011/11/02(水) 21:03:25.27ID:5qGBDxfwメモリ上の png を読み出すには GDI+ (a2d.hsp に細工をすると楽) を使う
0175雨島珠洲歌 ◆hpQKE7cBAE5Y
2011/11/02(水) 21:06:59.65ID:5qGBDxfw0176雨島珠洲歌 ◆hpQKE7cBAE5Y
2011/11/08(火) 19:48:44.14ID:x9yT+23zこれは一日坊主の味だ
0177名前は開発中のものです。
2011/11/23(水) 14:20:26.90ID:aX9kTeHZ現在、ロードモナークみたいなリアルタイムSLGを作っているのですが、
素人技でくみ上げたらものすごく重くなりました。メインのルーチンは
キー入力→(0〜9or10〜19or…480〜489or490〜499)味方駒処理→(0〜9or10〜19or…480〜489or490〜499)敵駒処理
→(0〜5or6〜11or…288〜293or294〜299)味方拠点処理→(0〜5or6〜11or…288〜293or294〜299)敵拠点処理→
各グラフィック表示→各情報表示→戻る
といった感じでまわしています。
メインルーチン内ではサブルーチンを出来るだけ使わないようにしてまっすぐ下へ流れるように組んでいるつもりです。
モジュールは現在使用していません。
抽象的過ぎるのは承知ですが、なにかお心当たりが有る方、ご教授ねがいます。
0178名前は開発中のものです。
2011/11/23(水) 14:22:10.59ID:2rKPW63Z0179名前は開発中のものです。
2011/11/23(水) 14:25:34.25ID:+B6YWhEg0180名前は開発中のものです。
2011/11/23(水) 14:35:24.07ID:aX9kTeHZありがとうございます。
いわれてみれば、全部処理してから描画しては動かなすぎたので、
今は10駒ユニット処理毎に一回描写命令を出していました。
描写命令を出すタイミングを考えて見ます。
>>179
ありがとうございます。
成る程、各処理に仕込んでやってみます。
0181雨島珠洲歌 ◆hpQKE7cBAE5Y
2011/11/23(水) 14:56:38.29ID:71Od6Kju描画関連だけ
毎度 celput とかでマップチップを並べるよりも
背景専用に buffer を用意、変更があるときに buffer に描画したほうが圧倒的に早くなる
gmode 4 は遅いので gmode 2 に置き換えられるところは gmode 2 を使う
0182名前は開発中のものです。
2011/11/23(水) 15:11:52.66ID:Krno6R4jまず描画と他処理の処理時間を分けて計測
これが分からないと改善の方向が分からない>
#uselib "winmm.dll"
#cfunc global timeGetTime "timeGetTime"
*main
redraw 0
処理開始=timeGetTime()
repeat 50000
a+
loop
描画開始=timeGetTime()
処理時間=描画開始-処理開始
color
boxf
pos 0,0
color 255,255,255
mes "処理時間="+処理時間+" 描画時間="+描画時間
redraw 1
描画終了=timeGetTime()
描画時間=描画終了-描画開始
await 16
goto *main
秒間60フレなら16msぐらいに収める必要がある
0183名前は開発中のものです。
2011/11/23(水) 15:36:52.14ID:aX9kTeHZ>>181
ありがとうございます。
gmodeは極力2で可能ならば1でやっております。
あらかじめバッファにマップを仕込むのは正直「その発想は無かった」です。
いじってみます。
>>182
ありがとうございます
正直に申し上げますと、モジュールはわけわからんで手を付けてないんですが、
つかって無いのですが、せっかく頂いたソース、これを機会に理解できるよう勉強します。
夜勤なので寝ます。皆さん、ほんとにありがとう。
また、来ます。
0184名前は開発中のものです。
2011/11/23(水) 15:38:48.35ID:aX9kTeHZつかって無いのですが、は飛ばして読んでいただければ幸い
0185名前は開発中のものです。
2011/11/23(水) 16:06:26.92ID:Krno6R4j#cfunc global timeGetTime "timeGetTime"
winmm.dllって言うDLL内にあるtimeGetTimeをHSPの関数として使えるように登録
timeGetTimeはPC起動してからの経過時間を1000分の1秒(1ms)単位で収得できる
winmm.dllはWindowsなら最初からあるDLLだから登録するだけで使用可能
gettime(7)も1ms単位で収得できるけど0〜999なのと何故か16ms未満ではまともに収得できない
>正直に申し上げますと、モジュールはわけわからんで手を付けてないんですが、
モニュールと外部DLLは別物
外部DLL使うときに使いまわししやすいようにモジュールが使われる事が多い
0186名前は開発中のものです。
2011/11/24(木) 09:10:09.98ID:3U67mdMmウインドウモードは8ビットカラーでやらないと遅いよ
それかDirectXを使えば速くなる
0187名前は開発中のものです。
2011/11/25(金) 22:42:51.84ID:jagBkXOxHSP用のDLLとやらについて学べるサイトはありませんでしょうか
■ このスレッドは過去ログ倉庫に格納されています