トップページgamedev
253コメント88KB

C言語でアクションゲームが作りたい

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。02/05/03 18:22ID:jHGxuzaQ
0203名前は開発中のものです。2008/03/23(日) 05:08:10ID:mWO5t8G1
   _,,....,,_  _人人人人人人人人人人人人人人人_
-''":::::::::::::`''>   ゆっくりしていってね!!!   <
ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
 |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ     __   _____   ______
 |::::ノ   ヽ、ヽr-r'"´  (.__    ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
_,.!イ_  _,.ヘーァ'二ハ二ヽ、へ,_7   'r ´          ヽ、ン、
::::::rー''7コ-‐'"´    ;  ', `ヽ/`7 ,'==─-      -─==', i
r-'ァ'"´/  /! ハ  ハ  !  iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i |
!イ´ ,' | /__,.!/ V 、!__ハ  ,' ,ゝ レリイi (ヒ_]     ヒ_ン ).| .|、i .||
`!  !/レi' (ヒ_]     ヒ_ン レ'i ノ   !Y!""  ,___,   "" 「 !ノ i |
,'  ノ   !'"    ,___,  "' i .レ'    L.',.   ヽ _ン    L」 ノ| .|
 (  ,ハ    ヽ _ン   人!      | ||ヽ、       ,イ| ||イ| /
,.ヘ,)、  )>,、 _____, ,.イ  ハ    レ ル` ー--─ ´ルレ レ´
0204名前は開発中のものです。2008/03/27(木) 13:57:01ID:6aFlAzKU
保守
0205名前は開発中のものです。2008/03/27(木) 15:02:50ID:vXrdy63U
      _,,....,,_
-''":::::::::::::`''
ヽ::::::::::::::::::::::::::`::..、
 |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ
 |::::ノ   ヽ、ヽr-r'"´  (.__
_,.!イ_  _,.ヘーァ'二ハ二ヽ、へ,_7
::::::rー''7コ-‐'"´    ;  ', `ヽ/`7
r-'ァ'"´/  /! ハ  ハ  !  iヾ_ノ
!イ´ ,' | /__,.!/ V 、!__ハ  ,' ,ゝ
`!  !/レi' (ヒ_]     ヒ_ン レ'i ノ
,'  ノ   !'"    ,___,  "' i .レ'
 (  ,ハ    ヽ _ン   人!       本当にゆっくりしたい気持ちで…
,.ヘ,)、  )>,、 _____, ,.イ  ハ         胸がいっぱいなら…!
    /l ̄  '-~三~-'  ̄h
.   / |   レ兮y′/ l         どこであれゆっくりできる…!
  〈  く   ∨ l/ ,イ |
   \_,.>、    /,L..]]_           たとえそれが…
. 0ニニニ)而}ニニニニニ),リリニニ)
.   L| |_____|____| |          肉焦がし… 骨焼く…
    l | |._______| |  ,:
 ,  l \ヽ l  |   , '/  ;'            鉄板の上でもっ………!
 :, ____l_|_|_;_|_|___|_|__   ;
  |\゙;三三゙';三三三,;゙三三\ ;'
  |\\三三゙三ジジ三三,''三;'\,;'  ;'
  |、 \\三゙;三三ジジ・'三三三;\ ;
  0ト、\\\;'三三;'三三三;''三三,;'\
    \\\| 炎炎炎炎炎炎炎炎炎 |
      \\| 二I二二I二二I二二I二 |
       \LI二二I二二I二二I二二]]
        0]]            0]]
0206名前は開発中のものです。2008/04/07(月) 12:30:25ID:GXjnIAO6
0207名前は開発中のものです。2008/04/21(月) 20:42:44ID:dRtpsJPd
書き込みtest
0208名前は開発中のものです。2008/08/16(土) 23:56:41ID:TeL18Qem
ちょっと悩んでいるので質問
ロックマンのイメージでお願いします。

1.地面
平らならわかりやすい。
Y軸が任意の値になったらそこが地面。

しかし、凹凸がある。
自機が当たったら、前に進めないし、
弾が当たったら、弾は消えなければいけない。

この地面(凹凸)のデータを
どうやって持てばいいのか悩み中です。
みなさんどうやってますか?
0209名前は開発中のものです。2008/08/17(日) 00:01:34ID:3Mm4zQJB
>>208
接触してもダメージを受けない敵を配置して地面を作るとか。
02102082008/08/17(日) 00:28:31ID:1DXwyodU
>>209
ありがとうございます

地面もオブジェクトですか
・スクロールと同時にオブジェクトを移動
・地面グラフィックはオブジェクトもち
・地面データもオブジェクト出現だけに絞れる

自機に着地オブジェクト情報をもたせて・・・
・着地オブジェがなかったら全オブジェと着地判定
・着地オブジェがあったらそれと判定
 →乗っていたらそのまま
 →離れていたら着地オブジェを解除して、全オブジェと着地判定

こ、こんな感じですか
0211名前は開発中のものです。2008/08/17(日) 01:49:07ID:I7r3iinj
ふつーにマップチップ並べりゃええんでね?
02122082008/08/17(日) 12:20:41ID:1DXwyodU
>>211
キャラがチップ単位で動くような場合はいいのですが、
今回、移動不可チップの場所(座標)を特定する方法がよくわからないのです。
0213名前は開発中のものです。2008/08/17(日) 12:28:02ID:UMrLfjjO
計算をチップ単位にすりゃいいじゃん。
0214名前は開発中のものです。2008/08/17(日) 12:34:23ID:UMrLfjjO
0〜99の番号をつけた100人の子供がいます。
これを10人ずつの班に分けます。
0〜9番を0班、10〜19番を1班というように、9班まで作ります。

さて、X番の子は何班になるでしょう。
0215名前は開発中のものです。2008/08/17(日) 12:49:07ID:d7xV658j
>>214
10分のX班(小数点以下切捨て)
02162082008/08/17(日) 13:01:37ID:1DXwyodU
>>213
!?
ありがとうございます。
「チップ内でどこにいるか」を持てば、いけそうですか。

1.全オブジェ(自機、弾、敵)
・「どこのチップにいるか」情報を持つ
・「チップ内でどこにいるか」情報を持つ
・移動した場合、チップ移動判定をする

チップごとにオブジェリストを持っていて、
当たり判定は、同チップ内のオブジェ同士でだけよい

・・・いや、チップをまたがっている場合があるので、
「どのチップにいるか」は2個持たねば。

ちょっとどちらの方法がいいかテストしてみます。
0217名前は開発中のものです。2008/08/17(日) 22:23:17ID:d7xV658j
ワールド座標とスクリーン座標を別に用意しておいて、
画面に表示するときだけワールド座標をスクリーン座標に変換するとか。
0218名前は開発中のものです。2008/08/18(月) 16:02:07ID:V92q0CRD
PCゲーでオブジェって呼称用いるのに違和感があるなぁ

OBJ用のVRAM領域のあるような環境を想像してしまう
(ゲーム内オブジェクトとはまた意味が違うけど)
0219名前は開発中のものです。2008/08/18(月) 20:59:41ID:ZRBjOITm
マップチップのサイズを例えば16x16固定で、
仮想座標(0,0)からぴっちり敷き詰めるように並べるとする。
マップデータ自体は2次元配列で持てばよい。
チップの番号に対して,あらかじめ当たり判定があるかなど属性を定義しておく。

仮想座標上のあるキャラ(例えば矩形領域で(x1,y1)-(x2,y2)とする)が
どのチップ上にいるかどうかは (x1/16, y1/16)-(x2/16, y2/16) の
マップチップ座標(マップデータ配列)上の矩形領域を調べればよい。

チップ内でも詳細に当たり判定が必要な場合(坂道などを実現する場合?)には
チップ番号から適切な判定ルーチンを呼び出すテーブルなど作る。

キャラ同士の当たり判定はマップチップ当たり判定とは別の処理で行う。

こんな感じ?かなりいいかげんだが。
0220^−^2008/11/07(金) 21:44:34ID:/Qi4r6QU
あge
0221名前は開発中のものです。2009/06/21(日) 21:21:46ID:sjkKH3pT
ho
0222名前は開発中のものです。2009/06/28(日) 15:36:21ID:lrktbDqt
作って
0223名前は開発中のものです。2009/08/17(月) 12:13:08ID:0JGPIGpV
典型的スレ上げ
0224名前は開発中のものです。2009/08/18(火) 18:03:21ID:lhzLPooo
衝突判定について質問なんですがドラクエの場合1チップづつ動くので一回の判定で済みますが
スーパーマリオのような場合そうはいきませんよね。
それでマリオがいるところを2画面分づつ毎フレーム衝突判定することを考えました。
つまり2画面分のブロックすべて衝突判定するわけです。
このやり方はどうだろう?
0225名前は開発中のものです。2009/08/18(火) 18:08:05ID:YVeLHy0k
敵ならともかく、ブロックは動かないんだから、
普通はマップデータとして持つでしょ。

なら、マリオのいる場所のマップデータ参照すれば済むのでは。
0226名前は開発中のものです。2009/08/18(火) 19:40:27ID:lhzLPooo
だからドラクエならそれでできるけどスーパーマリオのようななめらかな動きでは
マリオの位置から参照なんてできません
0227名前は開発中のものです。2009/08/18(火) 21:03:39ID:8mT2+NG9
いいえできます
0228名前は開発中のものです。2009/08/18(火) 23:47:55ID:dvwJmgpU
例えば1チップが20×20ドットとすれば
マリオの座標が(154、64)とすれば
154/20 = 7, 64/20 = 3
でチップの座標で(7,3)−(8、4)の所に跨ってるってことが分かる
0229名前は開発中のものです。2009/08/19(水) 17:39:38ID:l0bcnLQE
>>228
おどろきっ
それで換算できるのね
ベリーサンキュ
0230名前は開発中のものです。2009/08/20(木) 18:23:59ID:ft0rBKBL
またまた質問なんですが
マリオがブロックにめりこんだとき上下左右のどの方向へ戻すかがむずかしいですよね。
ヒントをいただきたいです。
0231名前は開発中のものです。2009/08/20(木) 18:27:31ID:xSKyEsDB
マリオの進行方向の逆、じゃないか?
0232名前は開発中のものです。2009/08/20(木) 18:38:57ID:ft0rBKBL
そっか
マリオの進行方向のフラグを使えばいいわけですね?
0233名前は開発中のものです。2009/08/23(日) 23:29:51ID:G7YrcOaf
じつに奥深い
0234名前は開発中のものです。2009/08/27(木) 03:30:45ID:h69Q7bqc
マリオは偉大
0235名前は開発中のものです。2009/08/27(木) 15:22:13ID:47D9lhWh
>>231
画面端(進行方向と逆方向)の壁の穴にめり込んだときは
向きに関係なく右に流されるんじゃなかったか?
じゃないと画面端に流されて永久に戻ってこれなくなるぞ

単純に衝突判定したい場合とはちょっとシチュエーションが違うかもしれんけど・・
0236名前は開発中のものです。2009/08/28(金) 18:12:06ID:clFN1A0w
衝突はけっこうむずいな
ブロックをチップ単位でなくランダムに置いた場合はこのやり方でなく一画面づつ
判定しないとだめだろうな。
マリオのいる一画面分のブロックデータを毎フレーム抜いてこないといけない。
0237softbank221031124201.bbtec.net 2009/08/28(金) 20:32:09ID:t3Xl9opM
今時のゲームをCだけで完成させるのはむしろ難しい
とだけ言っておこう
0238名前は開発中のものです。2009/09/23(水) 09:49:57ID:wPxYdb/J
マリオの進行方向と逆に戻すロジックだけではできない場合もあるよな
0239名前は開発中のものです。2009/09/23(水) 12:19:55ID:fPSXilIR
まあそりゃゲームによる
0240名前は開発中のものです。2009/10/20(火) 17:12:20ID:mVqzm4Yz

0241名前は開発中のものです。2009/11/06(金) 21:58:43ID:aZlLerC2
フリーゲームクラシックに投票しよう。
もう日本のフリーゲームは糞ダサいつまらん見飽きた作りメンヘラの
ワンパターンゲーばかりでどうしようも無い。
アート性、知的さが皆無なのが特に問題だ。
変わった奴を演じれば、変わったゲームを作れるという下らない思い込みはよしておいた方がいいだろう。
大体そんなことをしてみてもちっとも芸術的じゃない、知的じゃない。こいつらアホどもは病んでるフリがカッコいいと
思い込んでるから本当にやっかいなんだ。
いかにもだが広い意味でガロ系と言われる漫画家の一部はグロい物を描いてアートだと言われているだろうが
ガロではないが氏賀・駕籠・サガノヘルマー辺りも人道から外れると判断される事にステータスを見出している作家だな。
もうそう言う作風をアートだとは思わんし、大して評価もしないがな
自分は変わっていますというのを前面に出していたのが20世紀の芸術家だった訳だ。
衒学ぶれば、ブルトン主導のシュルレアリスムの運動を筆頭として文学でもそう言う運動があったな。
だが現代は大衆社会で当然我々も大衆の一人、という事になるな。つまり多くの奴が少数派を気取る前に必ず多数派であって、
そこを認識しないのに前衛芸術でございと叛逆挑発を嘯く奴には何処か香具師の臭いを感じ取らざるを得なくなるだろうな
本当に上手いのが崩して描いているのではなく、根本的に絵が下手な奴はとにかく見飽きた。そしてなにより芸術的じゃない、知的じゃない。 とにかく下品なんだよ。アート的センスがないからごちゃごちゃして汚いし。
こんなの使うよりアニメ風萌え絵を使ったほうがまだいいくらいだ。
完全な糞ゲーの厨ゲーになる。そういう大失敗ゲームは腐るほどあるのだよ。
たまにやるのはいいけど、そんなのばっかだとがっかりするんだわ。
フリーゲームなんだから新しさと独創性を少しは出そう。同じようなゲームばっかやらすな。
副島隆彦を読め。総てユダヤの陰謀だ。
糞汚ねえ作りメンヘラ共をゴミ箱にぶち込め。

ttp://www.freegameclassic.com/contest.php?id=07
ttp://www.freegameclassic.com/vote.php
0242名前は開発中のものです。2009/11/08(日) 22:33:29ID:gQ1EYumM
総受け死ね
0243名前は開発中のものです。2010/01/11(月) 19:46:51ID:iBHSZgAH
PCゲーム制作において(大雑把な)小数を扱いたい場合
整数型にゲタをはかすより素直に浮動小数を使うほうがメジャーなんですかね?
0244名前は開発中のものです。2010/01/18(月) 22:11:58ID:7jxGgs5m
整数型にゲタをはかる方法教えてください。
0245名前は開発中のものです。2010/01/18(月) 23:53:22ID:KY+N9kEF
正しくは「整数型変数にゲタをはかせる」ですね
「ゲタをはかせる」の言い回しに説明はいらないでしょう
それとも固定小数と言った方がいいのでしょうか?
0246名前は開発中のものです。2010/01/24(日) 07:06:57ID:7unsPESO
>>243
FPUが標準で載ってなかった頃(80386とかi486)ならともかく
今は普通に浮動小数点数を使う。メリットがほぼ何も無いから。
0247名前は開発中のものです。2010/01/24(日) 11:45:21ID:NsFPdvE4
「何も無い」ではなく「ほぼ何も無い」の理由を教えて欲しいな。
0248名前は開発中のものです。2010/01/24(日) 12:10:41ID:dfptX4TC
過去のコード資産使うとか
0249名前は開発中のものです。2010/01/24(日) 18:55:21ID:XyEAfLKu
>>246
浮動小数点数を使う方が良いのですね
ありがとうございます
ソース書き直してきます。。。
0250名前は開発中のものです。2010/02/14(日) 10:16:23ID:01ksrop7
一応今でも固定少数は生き残ってるな。携帯JAVAとか。
使えなさ杉。
0251名前は開発中のものです。2010/03/28(日) 18:21:03ID:TsctO2kM
>>247
計算誤差の蓄積が致命的になるケースとかかね。
内部的に連続ではなく離散的に扱ったほうがいいケースはまれにある。

ゲーム関連だとオンライン同期とか長時間のシーケンス再生とかかね。
まぁこれもアルゴリズムの工夫とか計算式の見直しで対処できるけど
手段の一つとして固定少数、とかかなぁ・・・
0252 忍法帖【Lv=8,xxxP】 2011/09/05(月) 17:16:00.07ID:Lr7+AzeQ
長い時を越えレス
0253名前は開発中のものです。2011/09/09(金) 19:51:52.30ID:k3TsIYrn
age
■ このスレッドは過去ログ倉庫に格納されています