[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 02/28 18:54 / Filesize : 235 KB / Number-of Response : 860
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



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

ただし、アクションゲームの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。


377 名前:名前は開発中のものです。 mailto:sage [05/02/22 16:03:32 ID:hZBZtuyr]
WinRARとeoとXP標準のzip解凍
3つともちゃんと解凍できた
1,306,864バイト

378 名前:名前は開発中のものです。 mailto:sage [05/02/22 16:49:25 ID:p5aKw6II]
今XP標準の解凍を使ったら、また空のフォルダが・・・
消せないフォルダがもう一個ふえてしまいました (ノω`)・゚・。。
作成された空のフォルダ「偽ガルーダ」は、開く事もできない。。。

zipファイルのサイズは
1.24 MB (1,306,864 バイト)
でした。私のパソコン固有の問題でしょうか。
他のzipファイルは全て解凍できるのですが・・・ o(T_T)o モウダメポ

379 名前:372 mailto:sage [05/02/22 18:34:24 ID:uPHZl7kd]
>>373
config.txtあったのか。サンクス
ウィンドウモードだと、『0x47AA65の命令が"0x0"のメモリを参照しました』でエラー終了。errlog出る前

380 名前:名前は開発中のものです。 mailto:sage [05/02/22 19:31:22 ID:vokUp0uw]
>>378
proxomitronとかファイアウォールを使っていたとかいう
オチじゃないだろうな

ダウンローダを変えるか、串もためしてみなよ。

381 名前:名前は開発中のものです。 [05/02/23 03:07:40 ID:Ep2lR8hE]
>>378
すいません。ちょっと判らないです。
圧縮には、Explzhというソフトを使ってます。
たしかXPで標準対応してるという理由でZIPファイルを選択しました。

>>379
報告ありがとうございます。
errlogの所を見直してみます。
勘ですが、Direct3D等がdebugで再現するのかも。調べてみます。

382 名前:名前は開発中のものです。 mailto:sage [05/03/08 15:41:18 ID:fOr0Y383]
孤独にぬるく作りたかったんで、VB+Flashでアクションゲーム作ることにしてみた。

プログラムはVBでぬる〜く作成。
ゲームパッド、ファイル出力、解像度の設定もVB側で。
グラフィック、アニメーションはFlash。
まあ作るのは楽。こんなオーサリングソフトは個人じゃ作れない。
アニメーションとプログラムとのタイミングも簡単にとれる。
サウンド周りも全部Flash側で鳴らせるようにした。
Flashコンポーネントひとつでいいから互換性やバグに悩まないですみ手軽。それでいて短期間で見栄えよくできた。
問題はFlashは重く、あまり沢山のオブジェクトを表示できないが工夫の余地はある。

383 名前:名前は開発中のものです。 [05/03/11 12:30:44 ID:2wjY2/65]
角度を決めて弾を打ち出すのって、どうすればできますか?
物理得意な方お願いします。


384 名前:名前は開発中のものです。 mailto:sage [05/03/11 12:38:40 ID:qssgl8ma]
指定した角度で弾を移動させればいい。物理関係ない。

385 名前:383 mailto:sage [05/03/11 12:44:58 ID:2wjY2/65]
x軸方向とy軸方向への移動を別々に考えて移動させてたんですけど、
角度を考えるとなると、その書き方が分からないのです。




386 名前:名前は開発中のものです。 mailto:sage [05/03/11 12:49:11 ID:wol0IT/T]
>>383
>物理得意
数学

// 角度=ラジアン
x=cosf(角度)*移動量;
y=sinf(角度)*移動量;


387 名前:383 mailto:sage [05/03/11 13:16:41 ID:2wjY2/65]
なかなか、うまくできない・・・。
ソースアップしてもいいですか?

388 名前:名前は開発中のものです。 mailto:sage [05/03/11 14:23:37 ID:HTa5DsJA]
>387
その場合、1レスに収まらないならテキストでアップロードしろよ

389 名前:383 mailto:sage [05/03/11 14:40:10 ID:2wjY2/65]
>>388
普通のあぷろだ37869にプロジェクトファイルごとアップしました。
なにとぞご教授おねがいします。
パスは「角度決めて発射」です。

390 名前:名前は開発中のものです。 mailto:sage [05/03/11 14:56:01 ID:cHGKos1z]
ごめん、言い方が悪かったかもしれない…
丸ごと来るとは思わなかった

391 名前:名前は開発中のものです。 mailto:sage [05/03/11 14:56:56 ID:iFNRRCmz]
まあまあリンクぐらい貼っとけ。
www.rupan.org/~kain/cgi-bin/upload/src/up37869.zip.html

392 名前:名前は開発中のものです。 mailto:sage [05/03/11 15:11:01 ID:cHGKos1z]
あんまし考えないで書いたけど玉の処理はこんな感じで良いの?

tama_old_x = tama_x;
tama_old_y = tama_y;

/* 3.14/180.0はマクロ化したほうが見やすいけど面倒だから省く */
x_mov = cosf(ue*3.14/180.0)*pow;
y_mov = sinf(ue*3.14/180.0)*pow;

tama_x+=x_mov;
tama_y-=y_mov-gra;

393 名前:383 mailto:sage [05/03/11 15:17:48 ID:2wjY2/65]
>>392
すごい、できてますね。
ちょっと感動・・・。

394 名前:383 mailto:sage [05/03/11 15:30:44 ID:2wjY2/65]
ついでに、棒に当たった時の反射角はどう算出したらいいでしょうか。
この棒は30度に設定してあります。


395 名前:名前は開発中のものです。 mailto:sage [05/03/11 16:55:54 ID:BPAC//R0]
うぜーーーー



396 名前:名前は開発中のものです。 mailto:sage [05/03/11 17:06:15 ID:wol0IT/T]
プログラム組まない(組めない)プログラマ増殖中

397 名前:名前は開発中のものです。 mailto:sage [05/03/11 18:29:28 ID:Ajs4EMBm]
それくらい検索汁。または図を描け。

398 名前:名前は開発中のものです。 mailto:sage [05/03/11 18:55:01 ID:J61NQ7VU]
それこそ高校物理の世界だなー
がんばって勉強しる

399 名前:383 mailto:sage [05/03/11 18:56:11 ID:2wjY2/65]
がんばります。

400 名前:名前は開発中のものです。 mailto:sage [05/03/13 16:36:38 ID:fL2BiXJ1]
PS2のドラゴンボールZ〜Z3みたいなゲーム作りたいorz

401 名前:名前は開発中のものです。 mailto:sage [05/03/13 17:57:44 ID:ynjg3961]
ならまずアルゴリズムを理解することだ

402 名前:名前は開発中のものです。 mailto:sage [05/03/14 07:35:22 ID:JuMY8nMU]
>400
目標を高く持つことはいいことじゃが
プログラミングというものはじゃな
一足飛びには身に付かんものなのじゃよ
ここはじゃな
急がば回れと言う格言通りにじゃな
ブロック崩しから始めてみてはどうじゃろか?

403 名前:名前は開発中のものです。 mailto:sage [05/03/18 20:08:39 ID:W6vbnPE1]
初心者にはワンキーゲームがオススメかモナー。


404 名前:名前は開発中のものです。 mailto:sage [05/03/20 19:24:41 ID:zaNdVfwo]
たしざんゲームにしとけ

405 名前:名前は開発中のものです。 mailto:sage [05/03/20 19:38:09 ID:xFvuiUNr]
それって、ゲームというよりは、
「さんすう」ソフトの間違いかと。



406 名前:名前は開発中のものです。 mailto:sage [2005/03/23(水) 00:42:53 ID:3cWT/ehY]
2Dのロックマンみたいなゲーム作っているんですが、
二次元配列でマップチップをちりばめてステージを
作っている場合、どうやって当たり判定するんですか??

ロックマンみたいな重力を考慮しないと駄目な
時は「自キャラの底のY座標 > 物体の頭のY座標・・・」
の様に判定して自キャラの底のY座標が入っている変数に、当たっている物体の頭のY座標
を代入するのではうまくいかないのですが、、どなたかヒントを頂けませんでしょうか。
分かりにくい文章ですみません。。

407 名前:名前は開発中のものです。 mailto:sage [2005/03/23(水) 03:06:26 ID:UGovkUa+]
せっかくマップチップを使ってるんだ
マップチップで通れるか否かの判定しちゃえ

座標で考えるんじゃなくてチップ単位で処理するようにしたら楽
#座標をチップ単位に変換するのがちょっと面倒だけども

408 名前:名前は開発中のものです。 mailto:sage [2005/03/23(水) 11:37:05 ID:3cWT/ehY]
>>407
なるほど…。チップが16*16の時は座標/16…?
う〜ん、もう少しヒントを頂けませんか?

409 名前:名前は開発中のものです。 mailto:sage [2005/03/23(水) 13:15:03 ID:UGovkUa+]
キャラの頭,足,右手,左手の座標があったら楽

頭の部分の判定
int i;
for(i=左手/チップの大きさ;i<=右手/チップの大きさ;i++){
 if(マップの配列[i][(頭+移動量)/チップの大きさ] が通過できないチップなら){
  移動量=-(頭-((頭+移動量)/チップの大きさ*チップの大きさ+(チップの大きさ-1)-1);
 }
}

こんな感じかな

410 名前:名前は開発中のものです。 mailto:sage [2005/03/23(水) 18:57:46 ID:3cWT/ehY]
おお、ありがとうございます!
早速試してみます。

411 名前:名前は開発中のものです。 mailto:sage [2005/03/23(水) 21:58:19 ID:UGovkUa+]
>>409
マップの配列は[横][縦]を前提としてるからその辺注意ね

412 名前:名前は開発中のものです。 mailto:sage [2005/03/24(木) 01:14:47 ID:5VtHBaep]
漠然とした質問だけれど。
アクションゲームにタスクシステムってどう?なかなか便利そうでそれで実装しようかと思ってんだが、
シューティングとかオブジェクトが多いもの向けな感じがするんだわ。3Dゼルダとかわんさか
オブジェクトが出てくるわけじゃないゲームとかだと、使ってないのかな などと思って。

どう?ってのも漠然としすぎてるんで、このスレの中にタスクシステムで実装してる人いるかな と思った次第。

413 名前:名前は開発中のものです。 mailto:sage [2005/03/24(木) 13:41:09 ID:GOe2RJsQ]
409さんのサンプルを参考に、自キャラが物体に乗った時の判定を
してみました。マップは[縦][横]=[30][40]で、チップの大きさは16*16です。

int j,i;
for (j = 0; j < 30; j++) {
for (i = 0; i < 40; i++) {
if (マップの配列[j][i] が通過できないチップなら) {
if(右手X座標 > i*16 &&
左手X < i*16 + 16 &&
足Y座標 > j*16 &&
足Y座標 < j*16 + 16){
頭Y座標 = j * 16 - 21; // キャラの縦の長さが21なので引いています
フラグ = true;
} else if (右手X座標 <= i*16 || 左手X座標 >= i*16 + 16) {
フラグ = false;
}
}
}
}

フラグがfalseの時(当たっていない時)は常にY座標を減算(8ずつ)するようにしています。
でもなぜか、フラグをチェックすると常時falseになっていて、一応、物体に
乗っているのですが8めりこんでいます。。もう一度、ヒントを頂けませんでしょうか。

414 名前:413 mailto:sage [2005/03/24(木) 13:43:11 ID:GOe2RJsQ]
あれ、スペースが入ってない…汗

415 名前:名前は開発中のものです。 mailto:sage [2005/03/24(木) 16:37:31 ID:qEAHO4/J]
行頭の半角スペースや連続した半角スペースは削除されちゃう
全角スペースに置換がてっとりばやい



416 名前:名前は開発中のものです。 mailto:sage [2005/03/24(木) 16:53:56 ID:u7Oj2rIN]
>>413
8進んでめり込んだあとに判定しちゃってるからだと思う
>409のは頭+移動量になってるからめり込む前に判定に入れる

417 名前:名前は開発中のものです。 mailto:sage [2005/03/25(金) 07:40:06 ID:6vHhet0i]
ふと思ったんだが、行動のモードを歩行とジャンプに分けるとして
それに落下モードを加えるのはデフォなのか?

ジャンプボタン離した時から上昇減速して落下とか
歩いてて地面が無くなったから落下とかの場合を考えると
そっちの方が簡単になるかな?と、ふと思いついたんだが
実はこっちの考え方の方が当たり前なのかも?と思ったんで。


418 名前:名前は開発中のものです。 mailto:sage [2005/03/25(金) 08:29:03 ID:8zUnsj04]
ジャンプ可能なアクションでは、足元に床が無ければ、
無条件に落下するのがデフォかと。ちなみに、床の有無の判定は、
ジャンプするかどうかの判定と一緒にやらない方が良いぞ。
かなりの確立で変なバグが出る。

1、足元に床があるかどうかの判別(ジャンプ処理用)
2、動作処理。
3、足元に床があるかどうかの判別(落下処理用)
4、落下処理。

ってな感じかな?

419 名前:名前は開発中のものです。 mailto:sage [2005/03/25(金) 14:12:26 ID:UNQW+4b1]
足元に床があるかどうかの判別をやって、
床フラグに反映させて、ジャンプしたら
床フラグをクリアする処理の方が良いな。


420 名前:名前は開発中のものです。 [皇紀2665/04/01(金) 14:35:11 ID:ByLPmBAa]
俺もマップチップとの当たり判定が微妙にうまくいかないのでageておく。
それは皇紀2665年の事であった・・・続く。

421 名前:名前は開発中のものです。 mailto:sage [皇紀2665/04/01(金) 18:26:57 ID:Avk562TJ]
最終手段として色で判定するというのもあるけどな

422 名前:名前は開発中のものです。 mailto:age [2005/04/02(土) 16:58:54 ID:bcEeWavw]
なかなか面白い

ttp://www.malware.com/forceframe.html

423 名前:名前は開発中のものです。 mailto:sage [2005/04/02(土) 17:12:17 ID:s9Y8P34v]
>>422
いきなり自動的にヘンなソフトを
ダウンロードするページみたいだが、何だこれ?
妖しいからキャンセルしたが。

424 名前:名前は開発中のものです。 mailto:age [2005/04/02(土) 17:30:20 ID:bcEeWavw]
ttp://www.runarudo.flnet.org/newpage25.htm

425 名前:名前は開発中のものです。 mailto:sage [2005/04/02(土) 17:33:59 ID:nltxwWQf]
>>423
もう手遅れ



426 名前:名前は開発中のものです。 mailto:sage [2005/04/02(土) 18:06:32 ID:IBVnthMA]
>>423
ダウンロードしなけりゃ大丈夫だよ。
ダウンロードしたなら、HDをフォーマットした方がいいな。
多分、OSが変になるから。


427 名前:420 [2005/04/04(月) 22:21:39 ID:W+uWA9ao]
矩形情報を持ったオブジェクトが不可侵のマップチップと衝突したときに、めり込んだ分だけ位置を補正する処理なんだけど
振動したり、壁にくっついちゃったり、きれいにできない
みんなどんな感じでやってるか流れだけでいいから教えてくれー

今時の2Dアクションのマップって、描画は一枚絵、データは線分の集合で衝突判定は法線を元に、とかやってんだろうか
つーか最近の2Dアクション知らねーや俺

428 名前:名前は開発中のものです。 mailto:sage [2005/04/05(火) 00:14:28 ID:DoQMdZY/]
ひょっとして、めり込んだ後に補正処理してないかい?

1.移動する前に次の座標(移動先)を算出する
2.めり込まないならそのままGO
3.めり込みそうなら障害物の直前で止める

でいけそうなもんだが。

429 名前:名前は開発中のものです。 mailto:sage [2005/04/05(火) 00:17:20 ID:DoQMdZY/]
3Dゲームで主に使われてるけど、420さんの判定方法なら参考になるかも:)
ttp://www.cam.hi-ho.ne.jp/strong_warriors/teacher/chapter09.html


430 名前:名前は開発中のものです。 mailto:sage [2005/04/05(火) 02:19:31 ID:vtEI2kJK]
>>428
この方法の場合、複数の物体があった場合に、
片方の手前で止めたら別の方の物体にめり込んだ、
なんて現象が発生する事もあるので、注意して作る事。


431 名前:名前は開発中のものです。 mailto:sage [2005/04/05(火) 02:28:58 ID:QYk/Va0v]
>>428
あとブロックより移動量が大きくなっちゃうとすり抜けちゃうんだっけ?
まあ、そこまで移動量が大きくなることはほとんど無いだろうけども

432 名前:420 mailto:sage [2005/04/05(火) 16:44:56 ID:7/2TXIWe]
やったできたー!
・速度の補正に、現在の位置ではなく新しい位置を使っていた
・オブジェクトの持つ矩形の幅、高さのoriginの問題
が主な原因でした

>>428-431
参考になりましたありがとう!固体感ハァハァ

433 名前:名前は開発中のものです。 mailto:sage [2005/04/10(日) 18:51:47 ID:0EywJ/hC]
VFや鉄拳のようなカメラワークはどうすれば実現できるんでしょうか。
2キャラ間の中心を見るようにしてあとはカメラを中心点から垂直にずらした位置へ
動かせばいいのかと思ってたらその目標地点の算出に手間取り。

もしかして考え方自体が違う?

434 名前:名前は開発中のものです。 mailto:sage [2005/04/12(火) 01:06:19 ID:KPKJ9Df5]
いいと思うよ。
2人のキャラの中心点をA、Bとすると、カメラの視線の先をCとするとC=(A+B)/2だよね。
カメラが存在する位置はC→A(C→B)のベクトルを90度回転させてもうちょっと伸ばせばいいんじゃないかな。
表記が分かりづらくてスマソ

435 名前:名前は開発中のものです。 mailto:sage [2005/04/17(日) 19:47:49 ID:AVCbiNha]
>>434
少々遅れたけどサンクス。
どうもC→Aの部分を間違えてたみたい。
その後も伸ばすときにwhile使ったりしてかなりテンパってたようだ…。



436 名前:名前は開発中のものです。 mailto:age [2005/05/07(土) 12:27:56 ID:5VRbH+3P]
ほすage

437 名前:名前は開発中のものです。 mailto:sage [2005/05/07(土) 12:28:45 ID:5VRbH+3P]
下げ

438 名前:名前は開発中のものです。 mailto:sage [2005/05/13(金) 19:44:59 ID:URgSvp8O]
まったくの初心者が最終的にロックマンXを作ろうと思ってます。
とりあえず色々調べたり試しに簡単なのを作ってみようと思ってるのですが、
ツールや言語が色々あってどれを使おうか迷ってます。
ロックマン作るならこれだ!とか、これはだめだ!とかあったら教えてください。
どれもあまり変わらないものですか?
ちなみに2Dです。

あと、垂直の壁を登る壁蹴りなんてアクションはプログラムしだいでどうにかなりますか?

439 名前:名前は開発中のものです。 mailto:sage [2005/05/13(金) 21:13:00 ID:wwYAXCZ1]
ZGEがいいよ。

440 名前:名前は開発中のものです。 mailto:sage [2005/05/13(金) 21:41:41 ID:oNN8yFJZ]
あなたはロックマンは神が創ったものとでも思ってるんですか?
人間が作ったなら出来るに決まってるじゃないですか。
迷ってる?ならVC++でも買えばいいじゃないですか。10万あれば買えますよ。
ちなみにDelphiはだめですよ。VCLがうんちです。ZGEはマンモス太郎です。
そんな事よりACT系作るなら物理の勉強でもしろ。

441 名前:名前は開発中のものです。 mailto:sage [2005/05/13(金) 22:21:20 ID:Fb21TaQW]
VC++なんて過去の遺物はやめておけ。
参照じゃないクラスなんて考え方が古すぎてめんどっちい。
DelphiのVCLは神です。
JAVA SDKやC#の.NET Frameworkだったら超神です。

というか、HSPでもActive Basicでもなんでもいい。

442 名前:名前は開発中のものです。 mailto:sage [2005/05/13(金) 23:25:08 ID:O6f7T5KT]
C言語とDirectX

443 名前:438 mailto:sage [2005/05/13(金) 23:59:20 ID:URgSvp8O]
みなさんレスありがとうございます。
何を使うかよりどう使うか、うまく使えるかが大事なようですね。
まだ迷ってますがみなさんの意見も参考にして頑張っていこうと思います。
それでは、ありがとうございました。

444 名前:名前は開発中のものです。 mailto:sage [2005/05/14(土) 15:22:49 ID:Gqt+hLdh]
>>443
GameMakerで作るという手もある。
サンプルにロックマンのパクリがあるし・・・w

ttp://www.gamemaker.nl/
Top
>Games
 >Stand Alone Games

専用スレもあるよ。
【2D】ゲーム作成ツールGameMaker【マンセー】
ttp://pc8.2ch.net/test/read.cgi/gamedev/1087068523/

445 名前:438 mailto:sage [2005/05/14(土) 23:38:10 ID:LROjirKM]
>>444
レスありがとうございます。
GameMakerはダウンロード済みです。使うか判りませんが。
とりあえずまだサイトめぐりの段階です。



446 名前:名前は開発中のものです。 mailto:sage [2005/06/04(土) 19:47:34 ID:F9U0FxWx]
イースみたいに見下ろし型のARPGで
斜めの壁にぶつかったら勝手にズレてくれるる奴って
マップの地形データに斜めの情報も入れとけばいいんですか?
それとも周囲の地形からそのつど判定した方がいいですか?

447 名前:名前は開発中のものです。 mailto:sage [2005/06/05(日) 04:13:09 ID:xdkgVqy1]
>>446
大抵の場合は後者。

448 名前:名前は開発中のものです。 mailto:sage [2005/06/07(火) 12:10:07 ID:YHhQeV4B]
アクション用の素材ってツクールの素材以外だと、どこに素材がありますか?
素材がNEEEE

449 名前:名前は開発中のものです。 mailto:sage [2005/06/07(火) 12:57:37 ID:bY/pc+ah]
そういや見たこと無いな。
まあ他のジャンルと比べると、規格化の難しいジャンルだからな……


450 名前:名前は開発中のものです。 [2005/06/12(日) 20:06:19 ID:WhyZAEvM]
アクションもガンガレ!

451 名前:名前は開発中のものです。 mailto:sage [2005/06/14(火) 17:25:03 ID:9FWtswMc]
はじめまして。
さっきアクションゲースレがあるのを知らずに、
「ゲームのアルゴリズムを教えて」スレに書いちゃったんだけど、
マリオみたいなアクションゲーを作るにあたって、
スクロール・キャラクタ・当たり判定の管理方法の定石とか良い方法ってありますか?
見下ろしのRPGみたいに、自キャラを画面の中心に固定すると、
マップの端に来たときに、

(◇=自キャラ、■=壁)
              ■■■■■■
              ■■■■■■
              ■■■■■■
          ◇■■■■■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■

これだと天井は見えないし、床の奥の方やマップのかなり奥の方まで見えちゃって、
美しくないしゲーム性にも難が出るでしょ。
結構古くから横スクロール系ACTゲームでは、

■■■■■■■■■■■■■
                      ■■
                      ■■
                      ■■
                  ◇■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■

端まで来ると自キャラ中心じゃなくなるじゃん。これってどうやってるんですか?

452 名前:名前は開発中のものです。 mailto:sage [2005/06/14(火) 17:45:15 ID:SX+8LP/H]
画面の位置とキャラの位置を別々に管理してるだけ。

キャラの位置(x,y)
画面の位置(gx,gy)
マップの幅と高さ(mw,mh)
画面の幅と高さ(gw,gh)


453 名前:名前は開発中のものです。 mailto:sage [2005/06/14(火) 18:19:46 ID:QN6CFzmy]
キャラの位置(x,y)
画面の左上の位置(gx,gy)
マップの幅と高さ(mw,mh)
画面の幅と高さ(gw,gh)

gx = x - gw / 2;
gy = y - gh / 2;
if( gx < 0 )gx = 0;
if( gy < 0 )gy = 0;
if( gx + gw < mw )gx = mw - gw;
if( gy + gh < mh )gy = mw - gh;

あとは自分でアレンジ汁。

454 名前:名前は開発中のものです。 mailto:sage [2005/06/14(火) 19:39:31 ID:9FWtswMc]
お。サンクス。
マップ全体からのキャラ位置(x,y)を、
ディスプレイへの出力位置に変換するのどうしよ。
ちょっと考えてきます。

455 名前:名前は開発中のものです。 mailto:sage [2005/06/14(火) 20:29:27 ID:OA7ZLhur]
画面の左下をy=0にするか、画面の左上をy=0にするかでも、
話は色々と違って来るな。でもって、キャラの足元を
キャラの表示基準位置にするか、頭の先を表示基準位置に
するかでも、話は違って来るな。




456 名前:名前は開発中のものです。 [2005/06/22(水) 10:59:34 ID:9EAdJ/sh]
HSPを使って2Dアクションゲーム製作をしています。
特定のマップチップに当たるとキャラクターを死亡させるようにしたいのですが,
どうにもうまくいきません。
アドバイスを頂けないでしょうか?

ちなみに,現在自キャラの当たり判定に

celhit=8
{中略}

a=-1:mx=x/celx:my=y/cely:ma=x\celx

check=map.mx.my

if check=4 {
      map.mx.my
           }
if check>=celhit :return
といった式を使っており,
死亡させるのに使いたいマップチップは12番目です。
知識不足で申し訳ありませんが,どうかよろしくお願い致します。

457 名前:名前は開発中のものです。 mailto:sage [2005/06/23(木) 10:35:32 ID:NNi2CtO/]
全ソースupするとか、何がうまくいかないのかをもっと具体的に書いてもらわないとわからないです。
他の人はどうか知りませんが、私は頭が悪いのです。
出し惜しみしてもしょうがないじゃないですか。実際できてないんですから。

458 名前:名前は開発中のものです。 mailto:sage [2005/07/01(金) 21:30:15 ID:uhCLvFf1]
アクションゲームのデバッグモードに何が必要ですかね?
無敵 敵配置 無重力・・・・あとは?

459 名前:名前は開発中のものです。 mailto:sage [2005/07/02(土) 06:20:49 ID:Gk32sIkc]
お前は世の中に出回ってるアクションゲームが全部同じだというのかと

460 名前:名前は開発中のものです。 mailto:sage [2005/07/18(月) 15:17:29 ID:EO3/QU2T]
マリオのコピー作ってるんですが
プレイヤーがブロックと当たった時のプレイヤーの座標の修正ってどう考えればいいんでしょうか


461 名前:名前は開発中のものです。 mailto:sage [2005/07/18(月) 19:09:10 ID:U/+zsg12]
>>460
ブロックに当たっていると判定されない位置までしか移動しないのが基本。
例えば下に8単位移動することで床に当たってしまうのなら、4単位移動して当たるかどうか調べる。
当たれば2単位移動したとき、当たらなければ6単位移動したときに当たるかどうか調べ、
判定を繰り返して床に当たらない限界の移動量を突き止める。

ターゲットマシンの処理能力がファミコン並みの場合、ブロックが16x16単位でしか存在しないという規約を決め、
y=y/16*16 または y=y & 0xfff0
という単純な式で解決する方法がよく使われていた。マリオを作るならこちらがおすすめ。

462 名前:名前は開発中のものです。 mailto:sage [2005/07/19(火) 08:49:28 ID:h08CCx7/]
たいしたゲーム作れないヤシに限って
ソースを出し惜しみする罠w

463 名前:名前は開発中のものです。 mailto:sage [2005/07/19(火) 12:38:57 ID:3gAxftmB]
無茶言うなよ。ただでさえアクションゲーム
はソースが膨大になりがちなんだからさ。
汚いソースは見せたくないのが人情だろ?


464 名前:名前は開発中のものです。 mailto:sage [2005/07/19(火) 14:38:07 ID:g9RffVxd]
>>461
どうもありがとう御座います
判定後の修正済みの座標の計算自体はわかっていました
質問が言葉足らずでした

例えば右に走りながらジャンプしてジャンプ中に下からブロックに当たった場合(X方向の加速度が+Y方向の加速度が−でブロックに当たった)
修正後のプレイヤーのY座標は当たったブロックのY座標+ブロックの高さ
にしてX座標は変えない

右に走りながらジャンプしてジャンプ中に左からブロックにあったった場合
プレイヤーのY座標は変えない
修正後のプレイヤーのX座標は当たったブロックのX座標ープレイヤーの幅

というふうにすればいいのだと思うのですが
単純に当たり判定をしただけでは下から当たったのか左から当たったのか分からないので
その方法が無いかなと思ったのです

465 名前:名前は開発中のものです。 mailto:sage [2005/07/19(火) 18:21:22 ID:Q/KJA8ki]
ソース見せろというヤシに限って
汚くて読めないと文句言う罠w



466 名前:名前は開発中のものです。 mailto:sage [2005/07/20(水) 01:39:59 ID:EPNi1Tp/]
>464
横判定と縦判定を別にすりゃいいんじゃね?
横当たりで戻すなら横だけ戻す。縦当たりで戻すなら縦だけ戻すでいんじゃね?
それなら着地点がカドで両方めり込む場合も対応できるんじゃね?

467 名前:名前は開発中のものです。 mailto:sage [2005/07/20(水) 01:44:43 ID:EPNi1Tp/]
しかも縦判定を上下にわけたら頭にブロックがぶつかって上昇止めるのと
足の下にブロックがあって落ちないのを分けられるんじゃね?

468 名前:名前は開発中のものです。 mailto:sage [2005/07/20(水) 20:22:11 ID:+a5dPNhL]
どんな状態が横から当たったという事なのか
どんな状態が上下から当たったという事なのか
まずそれが定義できません
頭がこんがらがってきた

469 名前:名前は開発中のものです。 mailto:sage [2005/07/20(水) 20:27:59 ID:+a5dPNhL]
たとえばXの加速度が0でYの加速度がーの時ブロックにあったたら
それは下からブロックに当たったと考えられるけど
Xの加速度が+Yの加速度がーの時ブロックにあった時
下から当たったのか左からあたったのか
どう考えればいいんでしょう

470 名前:名前は開発中のものです。 mailto:sage [2005/07/20(水) 22:20:13 ID:ZyAL1iJ1]
キャラを左にずらしてみて当たっているようだったら左から
下にずらしてみて当たっているようだったら下から
実際に動かす必要はないから

ところで。。。
>右に走りながらジャンプしてジャンプ中に左からブロックにあったった場合
ひょっとして移動ブロック?

471 名前:名前は開発中のものです。 mailto:sage [2005/07/20(水) 22:21:22 ID:G93mZ0AF]
if(上)上の判定
if(下)下の判定
if(左)左の判定
if(右)右の判定
こうで良いんじゃないの?
if文4つで判定していけば面倒なこと考えずに済む

472 名前:名前は開発中のものです。 mailto:sage [2005/07/21(木) 23:30:52 ID:wHTK6m5n]
>>469
それってマリオで言うところの
下からブロックに接触したときだけキノコを出したいとかそういうことかな?

473 名前:名前は開発中のものです。 mailto:sage [2005/07/21(木) 23:35:09 ID:HcWPA8Z2]
めり込まないようにするための自キャラ座標の修正っしょ?

474 名前:名前は開発中のものです。 mailto:sage [2005/07/22(金) 02:20:52 ID:C15cS8V2]
>>469
1.Xの移動
2.壁との当たり判定(当たっていたらX値を修正)
3.Yの移動
4.壁との当たり判定(当たっていたらY値を修正)
矩形のブロックしか存在しない空間ならこれでOK
精度を上げたければ1/10ずつ移動させてどちらが先にぶつかるかを調べる。

これが気持ち悪ければ、ブロックに対するめり込み量が多いほうを優先するとか、
移動量自体が多いほうを優先するとか、いろいろ方法があると思う。

475 名前:名前は開発中のものです。 mailto:sage [2005/07/22(金) 21:01:41 ID:rRyf+a+6]
超高速走行時のすり抜け問題もあるな。1/10移動しかないか?



476 名前:名前は開発中のものです。 [2005/07/24(日) 17:31:12 ID: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なしで、なにかいい(高速な)方法はないでしょうか?

477 名前:名前は開発中のものです。 mailto:sage [2005/07/24(日) 21:19:59 ID:Tt4A7o+h]
>>476
私の環境では目立ったガタツキはありませんでした。

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

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






[ 続きを読む ] / [ 携帯版 ]

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

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