トップページgamedev
982コメント350KB

アクションゲーム製作総合スレッド Part1

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。04/09/26 23:35:52ID:U/f0VG3h
ワンキーゲーから格ゲーまで、様々なジャンルの基礎とも呼べるアクションゲーム。
このスレでは、そんなアクションゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論などについて語り合いましょう。
もちろん自分の作ったアクションゲームを晒してみたり、
プロジェクトをはじめてみるなどもOK!

ただし、アクションゲームの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
0466名前は開発中のものです。2005/07/20(水) 01:39:59ID:EPNi1Tp/
>464
横判定と縦判定を別にすりゃいいんじゃね?
横当たりで戻すなら横だけ戻す。縦当たりで戻すなら縦だけ戻すでいんじゃね?
それなら着地点がカドで両方めり込む場合も対応できるんじゃね?
0467名前は開発中のものです。2005/07/20(水) 01:44:43ID:EPNi1Tp/
しかも縦判定を上下にわけたら頭にブロックがぶつかって上昇止めるのと
足の下にブロックがあって落ちないのを分けられるんじゃね?
0468名前は開発中のものです。2005/07/20(水) 20:22:11ID:+a5dPNhL
どんな状態が横から当たったという事なのか
どんな状態が上下から当たったという事なのか
まずそれが定義できません
頭がこんがらがってきた
0469名前は開発中のものです。2005/07/20(水) 20:27:59ID:+a5dPNhL
たとえばXの加速度が0でYの加速度がーの時ブロックにあったたら
それは下からブロックに当たったと考えられるけど
Xの加速度が+Yの加速度がーの時ブロックにあった時
下から当たったのか左からあたったのか
どう考えればいいんでしょう
0470名前は開発中のものです。2005/07/20(水) 22:20:13ID:ZyAL1iJ1
キャラを左にずらしてみて当たっているようだったら左から
下にずらしてみて当たっているようだったら下から
実際に動かす必要はないから

ところで。。。
>右に走りながらジャンプしてジャンプ中に左からブロックにあったった場合
ひょっとして移動ブロック?
0471名前は開発中のものです。2005/07/20(水) 22:21:22ID:G93mZ0AF
if(上)上の判定
if(下)下の判定
if(左)左の判定
if(右)右の判定
こうで良いんじゃないの?
if文4つで判定していけば面倒なこと考えずに済む
0472名前は開発中のものです。2005/07/21(木) 23:30:52ID:wHTK6m5n
>>469
それってマリオで言うところの
下からブロックに接触したときだけキノコを出したいとかそういうことかな?
0473名前は開発中のものです。2005/07/21(木) 23:35:09ID:HcWPA8Z2
めり込まないようにするための自キャラ座標の修正っしょ?
0474名前は開発中のものです。2005/07/22(金) 02:20:52ID:C15cS8V2
>>469
1.Xの移動
2.壁との当たり判定(当たっていたらX値を修正)
3.Yの移動
4.壁との当たり判定(当たっていたらY値を修正)
矩形のブロックしか存在しない空間ならこれでOK
精度を上げたければ1/10ずつ移動させてどちらが先にぶつかるかを調べる。

これが気持ち悪ければ、ブロックに対するめり込み量が多いほうを優先するとか、
移動量自体が多いほうを優先するとか、いろいろ方法があると思う。
0475名前は開発中のものです。2005/07/22(金) 21:01:41ID:rRyf+a+6
超高速走行時のすり抜け問題もあるな。1/10移動しかないか?
0476名前は開発中のものです。2005/07/24(日) 17:31:12ID:L6ZxXouS
マウスで動くゲームでカーソルを自キャラの画像にしていないゲーム、
つまりマウスカーソルの移動量を取得して自キャラを動かしているものを、
DirectXなしで作るには、どうすればいいんでしょうか?

/*カーソルがウィンドウの中央からどれだけ動いたかを求めて自機の座標に反映*/
GetCursorPos(&ptCursor);
myX -= (WND_WIDTH / 2 - ptCursor.x);
myY -= (WND_HEIGHT / 2 - ptCursor.y);
/*カーソルをウィンドウの中央に戻す*/
SetCursorPos(WND_WIDTH / 2, WND_HEIGHT / 2);

上記のソースのような処理を自キャラの動作処理の度に行っているんですが、
SetCursorPosが重いのか動きがカクカクになります。
他にDirectXなしで、なにかいい(高速な)方法はないでしょうか?
0477名前は開発中のものです。2005/07/24(日) 21:19:59ID:Tt4A7o+h
>>476
私の環境では目立ったガタツキはありませんでした。

>カーソルを自キャラの画像にしていないゲーム
こうしなければならない理由は何ですか?もし背景をスクロールさせているゲームなら、
マウスがすぐ机の端に行ってしまい、何度も持ち上げなければならないと思うのですが…。

個人的にはマウスポインタが画面中央からどの位置にあるかで移動量が決まる、
下記のような手法が好みです。
GetCursorPos(&ptCursor);
myX -= (画面中央X - ptCursor.x)/10;
myY -= (画面中央Y - ptCursor.y)/10;
※ゲーム開始時に画面中央をクリックさせる必要があります。
  /10の数値は調整してください。
04784762005/07/24(日) 22:00:52ID:L6ZxXouS
>>477
アドバイスありがとうございます。

カーソルを自キャラの画像にしていなかったのは、カーソルの速度が速すぎたので、
自キャラの移動量をカーソルの移動量の何分の一かにしようと思っていたからです。
実際のソースでは
myX -= (WND_WIDTH / 2 - ptCursor.x) / 5;
myY -= (WND_HEIGHT / 2 - ptCursor.y) / 5;
のように移動量を割っています(すみません、書き忘れました・・・)。

でも、「マウスポインタが画面中央からどの位置にあるかで移動量が決まる」って方法のほうが、
操作性もよさそうですね。僕のPCでは重かった、SetCursor関数も要りませんし。さっそく導入を検討してみます。
0479名前は開発中のものです。2005/07/25(月) 01:51:00ID:d4SiN8in
マリオに関しては、まず移動させておいてから
めり込んでいる部分を押し返すだけでいいんじゃないかな、貫通するほどの速度もないし。
どの方向からぶつかったかというのはあまり意識しなくていいと思う。

ダッシュで1ブロック分の隙間を走り抜けたりするのも、意識しなくても勝手に再現されるよ。
プレイヤーの上昇方向の判定を少し狭くしておくと、
ジャンプが微妙にすり抜けて上の足場に着地するのも再現される。
ある程度めりこみが発生するのは構わないという前提で、甘めに判定するのがコツ。

HTMLとJavaScriptだけで作られたマリオ
ttp://www.janis.or.jp/users/segabito/JavaScriptMaryo.html
0480名前は開発中のものです。2005/07/25(月) 19:16:34ID:vPG6HPYk
>>479
どの方向から来たのか分からないと
どの方向に押し返すのか決められないよ
0481名前は開発中のものです。2005/07/25(月) 21:26:25ID:g1HMM4aW
右に移動してぶつかったら左に押し戻す、とか
0482名前は開発中のものです。2005/07/26(火) 07:54:06ID:/o47BJro
で、ダメージで吹っ飛ばされてめり込むとw
0483名前は開発中のものです。2005/07/26(火) 19:52:47ID:SBWFi+sv
吹っ飛び処理に接触判定入れてないの?
0484名前は開発中のものです。2005/07/27(水) 09:05:46ID:cRa0iwYz
入れてるはずだろ。でなきゃ地面を突き抜けて落ちていく。
0485名前は開発中のものです。2005/07/27(水) 17:39:34ID:JOpFaaQL
んじゃ、めり込むはずないね
0486名前は開発中のものです。2005/07/31(日) 12:32:27ID:1cCJGwcX
何がどうなってか、壁のこちら側ではなく、
壁の向こう側に押し出された事ならあるぞw
0487名前は開発中のものです。2005/08/01(月) 18:10:13ID:JGK4vs8h
キーによる移動と吹っ飛びによる移動を一緒にして判定すればいい
0488名前は開発中のものです。2005/08/04(木) 05:34:35ID:0Nyl93/Z
物体を押して動かす動作って、やってる人いる?
複数の物体を動かすと、無茶苦茶大変じゃね?
0489名前は開発中のものです。2005/08/04(木) 16:30:57ID:YFvDCil8
物体=オブジェクト=3D=3Dで物を動かすのは簡単
結論:そうでもないよ
0490名前は開発中のものです。2005/08/04(木) 18:38:45ID:e7pfmO0E
>>488
矩形にとらわれない形状・空間・移動方向で、直接押された物体以外も連鎖的に
動かそうとなると、一筋縄ではいかないよね。
物理シミュレーションとかかじると面白いんだけど、そっちに気が向きすぎて
ゲーム製作どころではなくなりそう。
0491名前は開発中のものです。2005/08/04(木) 22:56:58ID:Y2kkgy0i
結構大変そうだな
今年の盆休みはコレにチャレンジしてみるか・・・
いつか通る道だし
0492名前は開発中のものです。2005/08/05(金) 09:30:12ID:BLdYd1nn
多少のめり込みを許容しつつ、いい感じに動くやつをつくりてぇ。
04934902005/08/05(金) 23:47:24ID:j/CQ3Nfi
円形オブジェクトを動かすサンプルを作ってみました。
参考になればいいんだけど…

Javaのソースとアプレットのデモを掲載中
ttp://summerclap.hp.infoseek.co.jp/test/PushSample1/
0494名前は開発中のものです。2005/08/06(土) 00:08:25ID:ozOLA3p2
>>493
すげー!感動した!!
でもCしか読めん (T_T)
0495名前は開発中のものです。2005/08/06(土) 01:23:04ID:mdQmR8Nd
>>494
オブジェクトの衝突判定って所だけ見れば問題なし

キモは動かす玉の加速度からぶつかり先の加速度を求めるんじゃなくて
重なった量からぶつかり先の加速度を求めてる所にあると思われる
ボールが凹んだ分だけ押し返すみたいな感じかな
スマートにまとまってていいね〜
0496名前は開発中のものです。2005/08/06(土) 09:04:03ID:SCanc4CH
凄い凄い。めり込み具合から計算するなんて、考えた事もなかったよ。

昔、キャラが重なる事を、全く想定しない方式で作った事があってな。
運悪くキャラが重なれば、キャラが動作不能におちいるわ、複数の
物体を押そうとすると、自キャラの移動がガクガクするわで、全然
うまくいかなかったんだよ。

Thanx!!
0497名前は開発中のものです。2005/08/06(土) 10:11:44ID:D5FBVQjr
ペナルティ法
0498名前は開発中のものです。2005/08/06(土) 12:01:33ID:PNc88TP1
>>497
そ〜ゆ〜のは何で調べるの?
アルゴリズム辞典には載って無かったんだが。
0499名前は開発中のものです。2005/08/06(土) 16:15:06ID:gXfKdljo
>>498
昔はいいサイトがあったんだけど そこの作者winnyつくって捕まっちゃったんだよな
0500名前は開発中のものです。2005/08/06(土) 17:54:31ID:qONoCor0
>>499
そうそう
なんか3Dのプログラムとかうpてたよね
0501名前は開発中のものです。2005/08/06(土) 18:20:37ID:OQXjMLjA
PGには色々な意味で、無政府主義者が珍しくないからなぁ・・・
逆も珍しくないけどさ。
0502名前は開発中のものです。2005/08/07(日) 02:45:23ID:5OtBYpxD
貴様等に何が分かるか
0503名前は開発中のものです。2005/08/07(日) 06:13:35ID:R5K/VwOD
金の無い学生が、とりあえず共産主義に走ってるだけの話かと。
0504名前は開発中のものです。2005/08/07(日) 06:26:22ID:ms9PetyD
学校や一部の会社は、その組織の中だけで
運営される、閉じた共産主義の世界だからなぁ・・・
0505名前は開発中のものです。2005/08/07(日) 06:50:06ID:ms9PetyD
割れ厨房やピーコ厨房の悲しい所は、圧倒的に世界が狭い点だな。
夢や希望、理想を信じていて、現実を直視出来てない点が問題だ。
もっと広い目で世間を見ていれば、違った見方も出来るだろうに。
現実には、Winnyとかの氾濫で、著作権の強化には歯止めがかから
なくなりつつあるのが現状だしな。
0506名前は開発中のものです。2005/08/07(日) 06:57:31ID:EiSRB336
法律は弱者救済が原則。

そして著作権は、著作権を所有している人間が弱者だと
認定している法律だ。この意味を、深く考えるべきだね。
0507名前は開発中のものです。2005/08/07(日) 10:07:54ID:ZFBJiW80
>>506
>法律は弱者救済が原則。

低脳はマイルールを法律と言い出すから困る

http://www.google.co.jp/search?hs=RFE&hl=ja&c2coff=1&client=firefox-a&rls=org.mozilla%3Aja-JP%3Aofficial&q=%E6%B3%95%E5%BE%8B%E3%81%AF%E5%BC%B1%E8%80%85%E6%95%91%E6%B8%88%E3%81%8C%E5%8E%9F%E5%89%87&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0508名前は開発中のものです。2005/08/07(日) 11:26:21ID:xz3quRgr
>>507
それは藻前の調べ方が悪い

http://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&c2coff=1&client=firefox-a&rls=org.mozilla%3Aja-JP%3Aofficial&q=%8E%E3%8E%D2%8B%7E%8D%CF+%8C%B4%91%A5+%96%40%8Aw&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0509名前は開発中のものです。2005/08/07(日) 11:56:43ID:DvKZ5TPE
こっちの方が詳しいかもな。

http://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&c2coff=1&client=firefox-a&rls=org.mozilla%3Aja-JP%3Aofficial&q=%8E%E3%8E%D2%8B%7E%8D%CF+%8C%F6%97%9D+%96%40%8Aw&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0510名前は開発中のものです。2005/08/07(日) 14:51:33ID:2zoPxgWc
とりあえず俺に言えることは言えることは
お前らみんなスレ違い
0511名前は開発中のものです。2005/08/07(日) 22:08:23ID:Qhu6bNnu
>>510 error C4292:'お前らみんな'はあいまいであるか、アクセスできません。明確な参照を指定してください。
0512名前は開発中のものです。2005/08/07(日) 23:58:19ID:5OtBYpxD
>>498
物理シュミレーションの分野。解析法とか。
0513名前は開発中のものです。2005/09/17(土) 09:10:29ID:Ou43c5rT
質問です
ソニックザヘッジホッグのように
曲線で描かれた地面との衝突判定って
どう処理するのがよいのでしょうか。
地面に沿った曲線方程式を持っていて
それから計算するのでしょうか
ご教授ねがいます
0514名前は開発中のものです。2005/09/17(土) 09:55:39ID:8tvgUAR/
線との接触判定を地道に一つ一つやっている。
今のマシンのパワーなら、そのぐらいは簡単だよ。
0515名前は開発中のものです。2005/09/17(土) 14:43:24ID:Ou43c5rT
>>514
回答ありがとうです
接触判定用の線の配置マップは
やはりマトリクスで管理するのでしょうか?
たとえば↓のように坂道があったら
□□□□□
□□□□/
□□_/□
_/□□□
□□□□□
各マスごとに接触線の有無情報を持つということでしょうか。
00000 0:なし 1:_ 2:/
00002
00120
12000
00000
※おおまかに数値化した例です

マップがでかくなったり、細かいカーブのある地面を表現しようとすると
管理できなくなりそうだなあ。
素人丸出し、すんまそん。
何か良い方法ありますか。
0516名前は開発中のものです。2005/09/17(土) 15:18:30ID:E0zJ1TH0
>>515
それは、マップの作り方次第やね。

たとえば515のマップなら、こんな風に作る事もできる。
00000 0:なし 1:床 2:坂
00002
00021
02111
11111

あと、閉じた線リストのグループを組み合わせてマップを作る方法もあるが、
これはちょっち難しいかな?
0517名前は開発中のものです。2005/09/17(土) 15:37:45ID:Rc3vY+QN
まあ要するに、マップの作り方は、作りたいゲームによって変わるって事だよ。

レースゲームでは、道の両側の座標を二本のポリゴンで管理する事も珍しくないし、
道幅が固定なら一本のポリゴンで管理する事もある。
0518名前は開発中のものです。2005/09/17(土) 16:15:52ID:Ou43c5rT
レスありがとう、参考になります。
ソニック系のゲームを作りたくて
どの方法がいいのが決めかねていました。
>>516
>あと、閉じた線リストの〜
例えばマップを10×10マス単位に区切って
その中に含まれる直線式をリスト管理しておいて
キャラクタが居る場所のリストとの当たり判定を
するということでしょうか。
□□□□□□□□□□
□□□A__□□□□
□□□/□□□□□□
□□/□□□□□□□
□/□□□□□□□□
@□□□□□□□□□
□□B―――□□□□
□□□□□□□□□□
□―□□□C―――□
□□□□□□□□□□
リスト1
@y=ax+b
Ay=cx+d
By=ex+f
Cy=gx+h
このマップ内にいたら上記@〜Cの式との衝突判定をする
ってことでしょうかね。
これなら曲線式(円とか)もリストに入れられそうですね。
0519名前は開発中のものです。2005/09/17(土) 18:01:47ID:ScEP3mCD
直線の始点(x1,y1)と終点の座標(x2,y2)があれば、一本の線が描ける。
そして二つの点が決まって居れば、その線の計算式を求める事は可能だ。
(y-y1)=((y2-y1)/(x2-x1))(x-x1)

三つの座標があれば三本の線が描ける。
(x1,y1)〜(x2,y2),(x2,y2)〜(x3,y3),(x3,y3)〜(x1,y1)
四つの座標があれば四本の線が描ける。
(x1,y1)〜(x2,y2),(x2,y2)〜(x3,y3),(x3,y3)〜(x4,y4),(x4,y4)〜(x1,y1)
こうした折れ線が、閉じた線リスト。

三つの座標で、二本の線。
(x1,y1)〜(x2,y2),(x2,y2)〜(x3,y3)
四つの座標で、三本の線。
(x1,y1)〜(x2,y2),(x2,y2)〜(x3,y3),(x3,y3)〜(x4,y4)
こうした折れ線が、開いた線リスト。
0520名前は開発中のものです。2005/09/18(日) 12:43:56ID:s39mZ4CU
さて質問。
今マリオ風アクションゲームを作っているんだが、壁とマリオの衝突判定で問題発生。

マリオの上、下、左、右それぞれに当たり判定を作って上が当たったら頭があたったと判定させ
下が当たったら足と壁(地面)が衝突するからY軸の重力加速度をゼロにして地面の上にたたせる。
右がぶつかったら左にすこし押し返される感じにして左も同様

こんな感じで基本的に動くようになったんだが、このキャラクターが吐く玉があるんだが
その玉にも同様の当たり判定(上下左右)を行ってるのね
だけどこの玉の移動速度があまりにも速いものだから壁にめり込んで正確に動作してくれないんだ
玉のスピードによって当たり判定を伸ばせばいいのかな?ともおもったが色々考えて却下。

最終的に1秒60フレームの60FPSとは別に玉の動作だけ600FPSくらいで判定処理をさせればOKじゃね?とおもってやってみたが
なぜか動かん!

本来マリオ風アクションゲームを作る時のキャラの当たり判定ってどう行うんだ?
0521名前は開発中のものです。2005/09/18(日) 13:37:00ID:yP69ys0m
60FPSを600FPSにした場合、1フレームの移動量は1/10倍に、
60FPSを6FPSにした場合は、1フレームの移動量を10倍にしないと
玉の速度が変わるわけだが?
0522名前は開発中のものです。2005/09/18(日) 13:39:07ID:vUrboQp9
めり込んでから判定するか、めり込む前に判定するか
0523名前は開発中のものです。2005/09/18(日) 14:01:59ID:d7ieMFyE
>>520
このスレの上の方で、

@移動前に判定
A当たらなかったらちょっと'(1ドット?)移動
これを1フレームの移動量に達するor壁に当たるまで繰り返し

ってやりかたが出てたような気がする
0524名前は開発中のものです。2005/09/18(日) 16:45:57ID:TnJMPUnx
弾が壁に当たったらデカいエフェクトでも出せば〜
そんな気にならんと思うぞ。
0525名前は開発中のものです。2005/09/18(日) 18:17:20ID:+n+8NiI7
マリオが壁にひっかかったりめりこんだりすりぬけたりするバグまで再現するのは、普通にやると難しいんだろうか
0526名前は開発中のものです。2005/09/18(日) 18:50:37ID:fAahe9rg
>>513-519
メガドラ版とかだったらそんな大層な事してなさそう
例えばマップデータにその点での曲線の傾きを入れておいて、傾き2のポイントに左からぶつかったら上に2上がる、みたいな

もちろん上の人はわざわざ「今のパソコンなら」って書いてるわけだし今ならその方がスマートだとは思うんだけど、
ソニックは移動が高速だから多少粗くても問題なさそうだし、処理性能の面でも当時ならそうしたんじゃないかなと
見当違いだったらスルーよろ
0527名前は開発中のものです。2005/09/18(日) 18:52:21ID:fAahe9rg
ごめん寝ぼけてた
忘れて下さい
0528名前は開発中のものです。2005/09/18(日) 20:18:59ID:tilH0X8d
>>524
何げに良いテクを言ってる気ガス。
0529名前は開発中のものです。2005/09/18(日) 20:25:37ID:tilH0X8d

|   ○))))



|  ○))))



| ○))))


・・・
・◆・
・・・

◆◆◆
◆◇◆
◆◆◆

□□□
□□□
□□□




0530名前は開発中のものです。2005/09/19(月) 00:47:45ID:pDDJ7+1W
>>528
そもそも壁にあたったと判定できなくてこまってるんじゃ
あんまり意味がない気がする。
0531名前は開発中のものです。2005/09/19(月) 09:43:08ID:v8vzsqdV
60フレで移動値10ぐらいならそんな気にならんと思うし、
それ以上になるようならデカいエフェクトで対処したほうがいいと思う。
接触をどこで判定するかにもよるが、弾自体をデカくしてもいいかと。
見た目のめり込みドット数は減ると思うぞ。
0532名前は開発中のものです。2005/09/19(月) 09:45:00ID:FeS2reeC
>>523
なるほど
次フレームに位置する玉の場所と現在の場所にスライドするように判定を行うわけだね?

頭いいー!
で、どうやるんだろ…w

がんばってくる!
0533名前は開発中のものです。2005/09/19(月) 09:47:15ID:FeS2reeC
>>弾自体をデカくしてもいいかと。

それ考えたんだけどやっぱそうしたほうがいいのかなぁ。
うぅむ。
ちなみにエフェクトで対処とかっていう案が結構でてるけど
>>528
さんが言うように早すぎると壁抜けてしまうので
エフェクト以前に判定できないのよね。

とりあえず↑の方法を頑張ってみる。
0534名前は開発中のものです。2005/09/19(月) 09:48:32ID:FeS2reeC
すまん。
>>530さんね。

みんなありがとう!
0535名前は開発中のものです。2005/09/19(月) 20:10:36ID:FeS2reeC
手短にC++について質問

class MOVEOBJ {
public:
**省略**
MOVEOBJ();//コンストラクタ
MOVEOBJ(int x, int y);//コンストラクタ
};

class PLAYER : public MOVEOBJ {
public:
**省略**
};

MOVEOBJ a(8,8);//これは出来るけど
PLAYERn(8,8);//敬称してもこれは出来ない。

どうすればPLAYERクラスからMOVEOBJ内のコンストラクタにアクセス出切る?

場違いかな?
0536名前は開発中のものです。2005/09/19(月) 20:56:48ID:JUxOCKS9
class PLAYER : public MOVEOBJ {
public:
PLAYER( int x, int y ) : MOVEOBJ(x,y){}
**省略**
};
0537名前は開発中のものです。2005/09/20(火) 14:48:01ID:1rmjE96S
>>536
THX
0538名前は開発中のものです。2006/01/05(木) 23:56:28ID:8YIYn0ZE
>>227
年を2つ越えて亀レスだが、俺がPC版アーマード・コア作っちゃっていい?
本家のACはもう行くところまで行ってしまった気がする。
0539名前は開発中のものです。2006/01/06(金) 03:29:23ID:MTbix/3n
>>538
ガンガレ
0540名前は開発中のものです。2006/01/06(金) 14:04:58ID:yOgH2a1d
>>539
dクス、地道にがんがる。
0541名前は開発中のものです。2006/03/07(火) 01:01:48ID:LVgywCzP
横スクロール型アクションゲームを作っているんですが(魔物ハンター舞(知ってるかな?))みたいなやつ、
コマンド技などを実装しようと思いますがコマンドの判定がいまいちわかりません。
1フレーム(約14ms)毎にキー状態を取得し、前のキー状態と比較してAかつBのコマンドがあれば
フラグをONにし、そのフラグがONの状態の時あるボタンを押されたらコマンド技という実装を考えたのですが、
どう頑張っても入力が不可能になってしまいます、どうすればいいでしょうか?
0542名前は開発中のものです。2006/03/08(水) 10:36:03ID:mZu8SEWn
それでいいはずだけど?実際のキー入力見たら?
入力無し状態が間に入って、成立してないって判定してるかも。
0543名前は開発中のものです。2006/03/08(水) 19:45:40ID:LPRPt45/
コマンド解析ロジック
でぐぐって参考にすれば?
05445412006/03/08(水) 21:30:58ID:7jcBB4H/
>>542
その通りでした、くだらないバグですいません。

>>543
ありがとうございます、参考にします。
0545名前は開発中のものです。2006/03/21(火) 18:07:26ID:s8nZYA/R
プレイヤーキャラクタの動かしかたについて質問です。
キー入力をキャラクタの動きに対応させる際に、以下の二通りの実装を考えています。

1. 上位側でキー取得、キーに対応したキャラクタの関数呼び出しで行動。
2. キャラクタ側行動関数内でキー取得、対応した動作を内部で記述。

1、2、どちらがOOPとしてスマートな実装方法だといえるでしょうか?
識者のかたお願い致します
0546名前は開発中のものです。2006/03/21(火) 19:18:13ID:JkFbCiMp
>545
俺もちょうど似たようなところを組んでいたが、OOPとしては当然1じゃね?

ゲーム内のキャラクタが、現実のキー入力という異世界の情報を、直接扱うのは美しくない。
0547名前は開発中のものです。2006/03/21(火) 19:47:18ID:II3VfSa/
なるほど、そういう考え方もあるな。
0548名前は開発中のものです。2006/03/21(火) 19:55:29ID:BETRB9Hh
そうなん?
普通に2がやりやすいと思うが。
0549名前は開発中のものです。2006/03/21(火) 22:51:39ID:nXEENBpa
やりやすいとスマートは違うぞな、もし
0550名前は開発中のものです。2006/03/23(木) 03:37:22ID:2sNSmG50
1だとCPUもキー入力的に動かせる気がして1にしてる。
0551名前は開発中のものです。2006/03/23(木) 17:03:05ID:Ccbbk2h0
てか、2の方法だと、プレイヤーの行動以外のために
キー入力状態が欲しくなったら面倒じゃん。
0552名前は開発中のものです。2006/03/23(木) 17:18:37ID:lA0BaRyH
イベントリスナーを使うのがオブジェクト指向っぽい
0553名前は開発中のものです。2006/03/24(金) 01:57:47ID:4Uk+3T2/
ところでまったくの初心者である俺から質問させてほしいんだが

C言語とかDelphiとかどれがお勧め?

いま友達が簡単だからお勧めっていうHSPってのを勉強してるんだが
使ってるのによって何か弊害とかあるのですか?
あのプログラムができない云々とか(´・ω・
0554名前は開発中のものです。2006/03/24(金) 03:03:04ID:HlGxkzvX
言語にお勧めなんて無いよ、使い慣れたのが一番だ

あとの質問は意味が理解しきれないのでパス
#使ってるコンパイラなのか言語なのか
#プログラムができないってどういう意味なのか
0555名前は開発中のものです。2006/03/24(金) 03:12:01ID:7W3qOTI+
プログラムの基礎を学ぶ意味でCを最初にやる事を強く勧める
0556名前は開発中のものです。2006/03/24(金) 04:00:40ID:4Uk+3T2/
>>554使いなれたのが一番・・・なるほど、あと説明が変ですみませぬ
>>555やっぱりCが押されるようで、ありがとう
んーやっぱC言語からって意見をよく聞くからC言語がいいのかな


なんかHSP使うと細かな命令がやりにくいとか、
処理が重いとか言われてて、もしHSPに満足できなくて
C言語に乗り換えて使うとしてもHSPの知識では役に立たないとか?
だったら早期に見切りを付けてC言語やったほうがいいのかなって
(;´・ω・
いずれは3Dアクションゲームを作ろうと思ってるからなおさらC言語なのかなと
(こう発言して散っていった先人達は星の数ほどいるらしいから
今は笑い飛ばしてくれていい)
だけど早期にそれなりのアクションゲーム作りたいならHSP使えと言われるジレンマorz
0557名前は開発中のものです。2006/03/24(金) 06:09:45ID:lhqBkY85
とりあえずHSPで何か作っちゃうのが良いよ
0558名前は開発中のものです。2006/03/24(金) 06:57:50ID:fkaCWNcU
HSPの言語の知識は役に立たないかもしれないが、
HSPでのプログラムの経験は、役に立つかもな
0559名前は開発中のものです。2006/03/24(金) 10:40:32ID:6JV0Yf7q
結果が全てなのだぁ
0560名前は開発中のものです。2006/03/24(金) 10:53:44ID:7W3qOTI+
最初はコンソール画面でオセロでも迷路でも作ればいいよ
プログラムすることの面白さに気付ければ
後は誰の後押しも無く自分で学んでいける

HSPはポインタあるのかな?
ポインタって何?(・∀・)
という状態になるのが怖いな

Cでグラフィカルな表現に進む場合にはWindows、DirectXが立ちはだかるわけだが
SDLという道もあるので頑張って欲しい
0561名前は開発中のものです。2006/03/24(金) 17:07:56ID:ynvPJr33
>>553
マジレスするとRuby。趣味言語として。
しかし趣味でゲームつくるくらいならHSPで間違いなく十分。

モチロン職に就くなら話は別だが。
0562名前は開発中のものです。2006/03/24(金) 17:10:41ID:ynvPJr33
連レススマソ

>>560
HSPでも一応ポインタは使えるよ。

ところで、>>555もそうなんだが
なぜ職でプログラミングをやるわけでもない初心者に
Cを進めるのか理解できないんだ。
煽りとかじゃなくて真剣な話ね。

ちょっと答えてくれるとウレシス
0563名前は開発中のものです。2006/03/24(金) 17:19:20ID:6JV0Yf7q
>>562
2DゲームならHSPでもいいかもしれんけど、
3Dゲームになると明らかにdirectXとか使ったほうが良いし
そのためにはC言語くらい出来ておくべき。

それと俺の場合はシューティングゲームを良く作るんだけど、
最近の弾幕バリバリ系のをHSPで作ると凄く処理が重たくなる。
05645532006/03/24(金) 17:25:42ID:4Uk+3T2/

>>557とりあえずHSPで作ってみます

>>558という思考からやっぱり最初からCやるべきなのかと思ってしまう

>>559同意

>>560なんか擬似的にポインタっぽい仕様があるとか聞いた

>>561.562んー趣味LVだからなァ、たしかに・・・


とまあ、Rubyとか出てきたしそれぞれに特徴があるんだったら
説明をお願いしたいんですがorz
初心者すぎてゴメン、とりあえずCはプロ向きで
HSPは初心者向きで他のを使うときには役に立ちにくい感じのでいいのかな
他のDelphiとかどうなんでしょ(´・ω・

とりあえずいずれの目標は
つ{http://www.geocities.jp/ikachi_soft/saintpaulia/index.htm
↑のをもうちょいゲームとして遊べる仕様なのを作ってみたいです
0565名前は開発中のものです。2006/03/24(金) 17:32:18ID:7W3qOTI+
最初に身に付ける言語が基礎になると思うから。

05665532006/03/24(金) 17:38:50ID:4Uk+3T2/
おっと書き込み中にレスが増えてました

>>563
そう、その意見をHSPを使ううえでよく聞かれるんだよね
「処理が重たくなる」っての、それが心配なんだけど
Cで作る場合とかなり違うと思っていいんですか?


C言語が優秀なのはわかった
とりあえずこのスレで質問した結果から
明日書店へひとっ走りして入門書を購入してこようと思います

ちなみに今手元にあるのは
「HSP3プログラミング入門」
「12歳からはじめる、HSP3.0ゲームプログラミング教室」
中古本ですけど値段が手ごろだったので
■ このスレッドは過去ログ倉庫に格納されています