[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 05/09 10:50 / Filesize : 40 KB / Number-of Response : 133
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

★ゲーム製作期待の星! HSP Part 9 ★



1 名前:いいからゲーム作れよ名無しさん mailto:sakidori [01/11/09 22:49 ID:???]
こいつらを引き取ってください

公式サイト
www.onionsoft.net/hsp/

過去スレ
pc.2ch.net/test/read.cgi/tech/1004022176/ HSP - Hot Spup Processsor Part 8
pc.2ch.net/test/read.cgi/tech/1002478838/ HSP - Hot Spup Processsor Part 7
pc.2ch.net/test/read.cgi/tech/1001122847/ HSP - Hot Soup Processor Part 6
pc.2ch.net/test/read.cgi/tech/993489862/ HSP - Hot Soup Processor Part 3
関連スレ
pc.2ch.net/test/read.cgi/tech/1004522141/ HSPの評価って
pc.2ch.net/test/read.cgi/tech/1000213553/ HSP質疑応答スレ
pc.2ch.net/test/read.cgi/tech/1003825283/ HSPの詳しい解説とプログラムの仕方
pc.2ch.net/test/read.cgi/tech/1002027440/ 10分以内でHSPを使って何か作るスレ

100 名前:名前は開発中のものです。 mailto:sage [2009/12/02(水) 10:09:58 ID:rmtb1xkZ]
HSPはアクションゲーム作るのにも適してますか

101 名前:名前は開発中のものです。 mailto:sage [2009/12/02(水) 12:46:21 ID:1D6t3Ert]
それを解決するためにはアクションゲームとはなにか。
という定義から考えなければならない。

102 名前:名前は開発中のものです。 [2010/01/16(土) 15:02:23 ID:ehDf6fp6]
 

103 名前:名前は開発中のものです。 mailto:sage [2010/03/04(木) 20:54:15 ID:LD9yAEkV]
>>100が昨年12月に出したお題、「HSPはアクションゲームを作るのに適しているか?」
について、私なりの論考を書いておくものである。

1.HSPはゲームを作るのに適しているか?

これはもう素晴らしくYESである。私は後述するノートン問題により、HSP以外の選択肢は
ないものかと検索してみた。どうやら次の候補に来るのはDXライブラリであるようだ。が、
「意味は分からないだろうけどとりあえずこの通りにして開発環境を築きなさい」として
長々と書き連ねてあるのを読むと、それだけでやる気がなくなるのである。他にBASICに
似た言語としてDarkBasicというのがあるらしいが、有料のようだ。無料で、しかも簡単。
HSPは素晴らしい。

2.HSPはアクションゲームを作るのに適しているか?

HSPなら画像、音声出力、キー、ジョイパッドからの入力も簡単である。ポインタ、構造体
も関係ない。逆に言えば、そういうプログラム上の煩雑さを除いて、アルゴリズムだけに
特化するならば、何言語だろうがその構造は同じである。ここでは、格闘ゲームではなく、
悪魔城ドラキュラのようなアクションゲームについて考えてみる。地形、敵、敵の弾といった
ものは、HSPの場合配列変数に格納されるだろう。C言語の場合(ポインタを使う場合、と
いってもいいだろうが)、敵が1匹死ぬと、該当する変数を不要のものとし、ポインタをつなぎ
直す、といった処理が必要になってくる。座標や敵の種類、現在どういった状況であるのか、
といったすべての変数について、ポインタのつなぎ直し処理が必要になってくるのだ。
それを防ぐためには、敵に関するすべての情報を構造体とし、一つの変数に格納する必要が
あるかもしれない。

104 名前:名前は開発中のものです。 mailto:sage [2010/03/04(木) 20:56:07 ID:LD9yAEkV]
もちろん、配列においても、几帳面な人は死んだ敵の変数は不要のものとし、それ以降の
変数をひとつずつ前にずらす、といったことをやっているかもしれない。
これならば、敵の処理にかかる時間を最小限におさえることができるからだ。しかし一般的
には、敵のフラグという配列変数を用意し、敵の出現と同時に1とし、死ぬと同時に0とする
だろう。この場合、画面に登場する敵の最大数を100とするならば、1フレームごとに100
個のフラグをチェックすることになる。だが現代のPCは十分に高速であるので、気にする
必要もないだろう。
現実には敵の出現数はせいぜい10匹程度であると思われる。HSPの場合注意すべきは、
むしろ地形の方である。例えば32*32ドットの矩形を1ブロックとする。画面が640*480で
あるならば、最大20*15=300個のブロックが配置可能ということになる。存在するブロック
すべてについて、主人公と地形の当たり判定を行わなければならないのだ。インタプリタ
型言語であるHSPにとって、これは苦しい問題だ。敵が壁に当たったら反転する、地面の
端に来たら反転する、といったアルゴリズムである場合、敵と地形との当たり判定も発生
するのだ。例えばawait 16としている場合、16ミリ秒をオーバーすることは由々しき問題
だ。自分のPCでゲームバランスを調整するのであるから、もしも16ミリ秒をオーバー
しているのであれば、自分より速いPCの持ち主では速すぎてものすごく難しいゲームに
なっている可能性もある。この、地形との当たり判定問題に関しては、より巧妙なアルゴ
リズムが必要であるかもしれない。例えば、地形の配列が
chikei(3)="100000000000011"
となっているとする。これは左から4ブロックめの、縦1列の状況である。今主人公がジャ
ンプして、着地しようとしているところだとする。ここでは、主人公の足元の1番前と1番後ろ、
2点の座標だけについて当たり判定を行うものとする。前の座標が今、x=100、y=418である
場合、int(100/32)=3、int(418/32)=13、つまりchikei(3)の14番目の数字を見てただちに
当たりと判定することができる。

105 名前:名前は開発中のものです。 mailto:sage [2010/03/04(木) 20:56:48 ID:LD9yAEkV]
3.NORTON INTERNET SECURITY 2010問題

最近になって起こった問題である。私のPCもそうだが、これがインストールしてある。HSP
の実行ファイルをノートンが勝手に消してしまうのである。おにたま氏がノートンに改善を
求め、ノートンが「修正しました」とおにたま氏に連絡したが、直っていない。つまりこれは、
同セキュリティソフトをインストールしてあるすべてのPCで、HSP製のソフトが動かないと
いうことを意味する。このため私は>>100に、アクションゲームを作るのに最適なソフトと
してHSPをお勧めすることができない。驚くべきことに、おにたま氏を初めとするこの問題
に言及している人は、誰も怒っていない。私は昔ソフトウェアの品質保証の仕事をしていた
こともある。烈火のごとく怒るべきである。ノートンは徹夜してでも直せよと。
ノートンは世界からHSPを抹殺しようとしている。

106 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 18:40:40 ID:KjIgRWrY]
「論考」ってバカじゃね?

107 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 23:52:36 ID:xLHwVxSC]
一生懸命長文書いたんだから、そんなに責めてやるなよ

108 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 10:24:36 ID:rBu1byup]
ここまでHSPついて真面目に考えてくれる人も少ない



109 名前:名前は開発中のものです。 mailto:sage [2010/03/21(日) 16:18:43 ID:IJrbN5IE]
割と素直に感動した

110 名前:名前は開発中のものです。 [2010/04/02(金) 13:38:46 ID:PHi8AHxO]
HSPユーザに質問があります。

ぼくはプログラミングのとっかかりはHSPだったので、使い勝ってがいいのはわかります。

簡単なゲームならすぐに作れるし。


しかし、 ぼくは出会ってしまったんです。 FLASHに。。

確かにムリョウではないですFlashは。
しかしFlashのあまりのすばらしさに感動してしまったのです。

グラフィックを描くことが前提で作られている。 オブジェクトも階層化できるので
HSPみたいに変数がかぶるなどという低次元な心配がいらない。

はっきりいって、HSPで軽くプログラミングを楽しみたいという自分程度のプログラマー
なら、Flashのほうが断然いいのでは?? と思ってしまいました。

HSPユーザーのみなさんはどう思われますか?

HSPを使う理由ってなにかあるのでしょうか?

111 名前:名前は開発中のものです。 [2010/04/02(金) 13:42:42 ID:PHi8AHxO]
つづきですが、Flashのスクリプトにはactionscript3.0という高速に実行できる
環境もありますし、

世界中で3DエンジンやらLightWaveなど有名ソフトと連携するためのライブラリが
あります。

さらにブラウザ上で動かすので、windowsでもmacでも遊ぶ事が出来ます。




112 名前:名前は開発中のものです。 mailto:sage [2010/04/02(金) 13:43:09 ID:312z5Jcj]
ゲームしか作らないならそれでも良いけど
4がつばかは昨日までですよ


113 名前:名前は開発中のものです。 [2010/04/02(金) 16:57:57 ID:PHi8AHxO]
>112
ぼくはまさにゲームの話をしてるんですよ。
HSPでPhotoshopでもつくろうっていうんですか?

114 名前:名前は開発中のものです。 mailto:sage [2010/04/03(土) 13:13:58 ID:9Yh2mBFe]
2dスクロールアクションをつくっているんだけど、
SFCのスーパーマリオみたいなオフセット位置の決め方が分からない
具体的にいうと、マリオの向いている方向が、より遠くまで見えて、
急に向きを変えたりしても、違和感なくオフセット位置が動くような。
どなたかアイデアありませんか?
マリオのコードが見たい・・

115 名前:名前は開発中のものです。 mailto:sage [2010/04/03(土) 14:21:31 ID:/HNuBj6+]
>>114
キャラクターの向き boolen D (false右向きR,true左向きL)
キャラクターの位置 integer X,Y
ビューポイントX integer VX (Xに対しての相対位置)
ビューポイントXL const VlX (VXが最終的にあるべき位置)
ビューポイントXR const VrX
if D
{
 XVがVlXと同じじゃなければ近づける
} else {
 XVがVrXと同じじゃなければ近づける
}

116 名前:名前は開発中のものです。 mailto:sage [2010/04/03(土) 18:50:36 ID:GPcMKza7]
C++しか知らん俺にHSPはどんなことが出来るのか教えてくれ
○○の処理がどんな風に出来る、とか

117 名前:名前は開発中のものです。 mailto:sage [2010/04/03(土) 20:52:08 ID:2IE5q2HF]
ウインドウの作成が1行でできる
他色々

118 名前:名前は開発中のものです。 mailto:age [2010/04/04(日) 14:23:19 ID:hFzrHQaf]
>114
洞窟物語のような感じかな?



119 名前:名前は開発中のものです。 mailto:sage [2010/04/05(月) 07:33:20 ID:cS3R7I9s]
>>116
何も書かなくても問題なく実行できる

120 名前:名前は開発中のものです。 mailto:sage [2010/04/05(月) 13:48:01 ID:dc21abzx]
>>116
Win32 API他、既存のDLLがけっこうお手軽に利用できる。COMも使える。

121 名前:名前は開発中のものです。 mailto:sage [2010/04/05(月) 13:50:56 ID:dc21abzx]
ていうか、マニュアル読むかコンテストのページ見た方が早い。

122 名前:名前は開発中のものです。 mailto:sage [2010/04/05(月) 20:01:05 ID:dKgEjKp6]
>>116
まず最初に
picload "hentai.jpg"
の一行でウィンドウに画像が表示できる

C++だとハードやOS、jpgのファイル構成の知識も必要ですが
hspならこれ一行、マジでこれ一行
「main」とか「void」とか不要、メモリの確保も解放も不要、DLLも不要
他に、ボタン判定、waitなどゲーム制作的なことは
一行で足りることが多い

>>116 さんは凄腕かもしれないけど
おれならC++のコンパイラだけ渡されて
これらを実現しろと言われるとマジで気が滅入る、というか逃げる


123 名前:116 mailto:sage [2010/04/05(月) 23:05:57 ID:LnGtu5ZQ]
なるほど、なんとなく分かった。ありがとう

124 名前:名前は開発中のものです。 mailto:sage [2010/04/07(水) 08:40:57 ID:Vkp0Vww4]
>>103
変数には文字型配列を使うと管理が楽だよ。
応用すれば何かを重ねて表示する場合にも使える。
基本入出力命令と文字列操作関数はマスターした方がいいかも。

キャラ同士も地形と同じ考え方でいいよ。
移動するたびにキャラ番号を座標から導き出したマスに置く。
ただすでに味方が置いてあるマスの場合、そこには一つしか番号が置けない欠点があるね。
サイズが異なったものや斜面処理でも条件式を加えれば応用は可能だよ。

昔のゲームソフトは速度的に遅かったからそういう処理が多かったんだ。

125 名前:名前は開発中のものです。 mailto:sage [2010/04/07(水) 21:28:29 ID:h2+BYV8H]
>>124
RPGならともかく、アクションはそれじゃダメだろ
ポインタですべてのインスタンスを配列かリストで管理すべき。

使用中のインスタンスと未使用のインスタンスを持って、
適宜相互にインスタンスを移動するのが普通だし、汎用的。

それより、アクションはインスタンスの状態管理が重要
状態遷移マシンを作ると楽にアクションゲームが作れる

126 名前:名前は開発中のものです。 mailto:age [2010/04/11(日) 13:00:42 ID:sX0GCi0v]
>>124
え゛?
数値型配列ではいけないの?


127 名前:名前は開発中のものです。 mailto:sage [2010/04/11(日) 18:27:05 ID:60JK+RHt]
今hmm.dll使ったゲームを何人かにテストプレイしてもらったんだけど
画像の表示位置が微妙にずれる人がいたんだが
グラフィックボードによっては表示位置や仮想画面からの取得位置がずれたりするもんなのかな?

128 名前:MIAのすごいスクリプト(原理はわからん) mailto:age [2010/05/12(水) 20:33:05 ID: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




129 名前:MIAのすごいスクリプト(原理はわからん) mailto:age [2010/05/12(水) 20:34:43 ID: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


130 名前:名前は開発中のものです。 mailto:sage [2010/05/13(木) 14:52:42 ID:b/2h1Ezh]
>>1
なにこのひどいスレタイ
期待の星ってアホですかと

131 名前:名前は開発中のものです。 [2010/05/15(土) 20:29:54 ID:aV0xMDug]
九年たって。

132 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 09:35:01 ID:k4j0vMVC]
>>80
Yahoo! JAPAN IDが無効です。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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