[過去ログ] 一人で完成まで頑張るの寂しいからかまって [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
505: 某犬犬 ◆HzfAAjcl8nz1 2019/03/23(土)08:49 ID:Q/m1CvIm(2/4) AAS
敵戦車の移動Aを作った
ランダムに方向転換と直進を繰り返す

・角度 = (次の向き - 現在の向き + 360) % 360
・角度 = 角度 / 回転速度 * 回転速度
・(角度 == 0) なら 直進
・(角度 <= 180) なら 現在の向き += 回転速度
・(角度 > 180) なら 現在の向き -= 回転速度

これで左右回りの近い方に
方向転換してから直進する
506: 某犬犬 ◆HzfAAjcl8nz1 2019/03/23(土)09:16 ID:Q/m1CvIm(3/4) AAS
敵戦車の種類で、画像と攻撃方法が固定で決まり
それとは独立に、移動パターンを掛け合わせて
バリエーションを増やす
507: 2019/03/23(土)11:26 ID:Q/m1CvIm(4/4) AAS
敵戦車の移動Bを作った
PCの視線に対して直角に左右に逃げる

・(戦車の描画X < 0) なら
 次の向き = 360 - PCの向き - 90
・(戦車の描画X >= 0) なら
 次の向き = 360 - PCの向き + 90

これで後は戦車Aと同じ処理
508: 某犬犬 ◆HzfAAjcl8nz1 2019/03/24(日)13:53 ID:bKpugRoi(1/4) AAS
敵戦車の移動Cを作った
左手法でマップの壁に沿って移動する

・前方が壁なら右折する
・左に壁が無いなら左折する
・但しランダムに決めた時間内は直進する

近くに壁が無い状態だと
その場でクルクル回って仕舞うので
ランダムに直進する処理を加えた
509: 某犬犬 ◆HzfAAjcl8nz1 2019/03/24(日)13:54 ID:bKpugRoi(2/4) AAS
敵にもPCと同じ、壁の当たり判定と
押し出し処理を実装した
510: 某犬犬 ◆HzfAAjcl8nz1 2019/03/24(日)15:19 ID:bKpugRoi(3/4) AAS
PCの出現位置をマップ上で指定できる様にした

マップから壁や敵を生成する時に
特定の地形が有ったら
その座標をPCの座標に入れる
511: 某犬犬 ◆HzfAAjcl8nz1 2019/03/24(日)16:13 ID:bKpugRoi(4/4) AAS
戦車の画像は、移動方向に合わせて
車体の向きが12枚ある

砲塔は常にPCの方向を向いていて
何時でも攻撃できる様になっている
512
(1): 某犬犬 ◆HzfAAjcl8nz1 2019/03/25(月)03:22 ID:mBobaV08(1/4) AAS
敵戦車の移動Dを作った
PCに向かって追い掛けて来る

dx = (自機X - 敵X) / 1マスのサイズ
dy = (自機Y - 敵Y) / 1マスのサイズ
if (dx <= -1) {
 if (dz <= -1) {
  目標の向き = 3
 }
 if (dz == 0) {
  目標の向き = 2
 }
 if (dz >= +1) {
  目標の向き = 1
 }
}
if (dx == 0) {
  目標の向き = 4
  目標の向き /= 45
  目標の向き = 0
}
if (dx >= +1) {
 ……
}
目標の向き *= 45

45度単位で、目標(PC)の方を向いて
その方向に直進する
PCと重なっている時は、向きを変えない
513: 某犬犬 ◆HzfAAjcl8nz1 2019/03/25(月)03:34 ID:mBobaV08(2/4) AAS
>>512
※訂正

dz = (自機Z - 敵Z) / 1マスのサイズ

if (dx == 0) {
 if (dz <= -1) {
  目標の向き = 4
 }
 if (dz == 0) {
  目標の向き /= 45
 }
 if (dz >= +1) {
  目標の向き = 0
 }
}
514
(1): 某犬犬 ◆HzfAAjcl8nz1 2019/03/25(月)05:30 ID:mBobaV08(3/4) AAS
戦車の攻撃パターンをネタ出しした

・自機狙い
・4Way
・緩いホーミング
・ランダムに揺れる弾幕
515
(1): 某犬犬 ◆HzfAAjcl8nz1 2019/03/25(月)08:58 ID:mBobaV08(4/4) AAS
PCが敵戦車に轢かれたらダメージを受ける様にした
ダメージと効果音の処理の一部を実装した
516: 某犬犬 ◆HzfAAjcl8nz1 2019/03/26(火)16:21 ID:yQUdAvyc(1) AAS
戦車4種のレンダリングした
Blender が少しずつ解って来た気がするけど
たぶん気のせい
517: 某犬犬 ◆HzfAAjcl8nz1 2019/03/27(水)00:39 ID:kz4Q+KiW(1/2) AAS
FPSの戦車4種の画像とマップ上の生成が出来た
518: 某犬犬 ◆HzfAAjcl8nz1 2019/03/27(水)14:52 ID:kz4Q+KiW(2/2) AAS
戦車の砲弾の画像を作って、取り敢えず
撃ったその場に描画する所までやった
PCの回転や移動もおk
519
(2): 某犬犬 ◆HzfAAjcl8nz1 2019/03/28(木)11:34 ID:yyMS9KtM(1/4) AAS
戦車の攻撃Aを実装した

・x1 = 攻撃した敵のマップ上のx
・y1 = 攻撃した敵のマップ上のy
・dx = (PCのマップ上のx - x1) / 弾の速度
・dy = (PCのマップ上のy - y1) / 弾の速度
・最大フレーム数 = 最大(絶対値(dx), 絶対値(dy))

弾の発射時に、発射位置(x1, y1)と
PCとの相対座標(dx, dy)と
PCと衝突するまでの最大フレーム数を
求めて置く

・フレーム数 = 0...最大フレーム数
・弾のx = dx * フレーム数 / 最大フレーム数 + x1
・弾のy = dy * フレーム数 / 最大フレーム数 + y1

フレーム数をインクリメントしながら
弾のマップ上の座標を計算して、描画処理に渡す
こうするとsin, cos, tanの重い処理を省ける

弾がPCに当たらなかった場合は
そのままフレーム数を増やして行って
壁にぶつかったら消す
最大フレーム数を越えても問題無い

実際は弾の速度を半分にして
移動と当たり判定を2回分実行する事で
壁のすり抜けを防ぐ
520: 某犬犬 ◆HzfAAjcl8nz1 2019/03/28(木)15:15 ID:yyMS9KtM(2/4) AAS
>>514
・自機狙い
単発で撃って来るだけ。単純に雑魚

・4Way
最初ビビるけど直ぐに避けられる様になる

・ホーミング
めっちゃ当てに来るので壁避け必須。HP少な目

・ランダムに揺れる弾幕
板野サーカスの腕前を要求。単純に強い
521: 某犬犬 ◆HzfAAjcl8nz1 2019/03/28(木)16:46 ID:yyMS9KtM(3/4) AAS
>>515
「敵が前に進んでてその角度の範囲内にPCが……」
とか難しく考え過ぎる子が居るから答え合わせな

・dx = (戦車のx - PCのx) / 当たり半径
・dy = (戦車のy - PCのy) / 当たり半径

でdxとdyが両方とも0だったらひき頃されてる
522: 某犬犬 ◆HzfAAjcl8nz1 2019/03/28(木)17:06 ID:yyMS9KtM(4/4) AAS
>>519
・最大フレーム数 = 最大(絶対値(dx), 絶対値(dy))

こっちのdx, dyは合ってるけど

・弾のx = dx * フレーム数 / 最大フレーム数 + x1

こっちのは、弾の速度で割る前の値な
説明を省くと文章にバグが入り込む何時ものやつ
523: 某犬犬 ◆HzfAAjcl8nz1 2019/03/29(金)10:39 ID:ELgYOkhI(1) AAS
敵戦車の4Way攻撃を実装した
PCを中心にした扇状の4方向へ向けて飛ばす

1. PCと敵の相対座標から角度を45度単位で求める
 x > 0 かつ y > 0 の場合
  (x / y) >= 2 なら 0度
  (y / x) >= 2 なら 90度
  それ以外なら 45度 と言う感じ
2. 角度を直角に回転し正規化する
  0度 なら x = 0, y = 1
 45度 なら x = -1, y = 1
 90度 なら x = -1, y = 0
3. 正規化した数値を +1, -1 倍して扇の幅を掛けて
 敵の座標に加えた位置から発射し
 数値を +1, -1, +5, -5 倍して扇の幅を掛けて
 PCの座標に加えた座標に向けて飛ばす
524: 某犬犬 ◆HzfAAjcl8nz1 2019/03/30(土)09:59 ID:RzjCApdz(1) AAS
敵戦車のホーミング攻撃を実装した

移動処理で、目標の座標を
現在のPCの座標で毎フレーム更新するだけ
他は >>519 の自機狙い弾と同じ

自機狙いは残像拳と一緒で
当たる頃には、もうそこに居ない
「馬鹿め!何処を狙っている!わしはここだ」
525: 某犬犬 ◆HzfAAjcl8nz1 2019/04/02(火)16:32 ID:kiYAJn+a(1/9) AAS
Done. で落ちてたのでまとめて進捗する
526: 某犬犬 ◆HzfAAjcl8nz1 2019/04/02(火)16:33 ID:kiYAJn+a(2/9) AAS
敵戦車の弾幕攻撃を実装した
4つの弾が広がってから
PCにぶつかる様に収束する

「発射処理」
・速度 = 壁の幅 * 100 * 乱数(4..12) / 12 / 10
・加速度 = 速度 * -2 / 着弾までの予測フレーム数 - 1

乱数で拡散する速度を決めて
そこからPCの座標に向かって収束する様に加速度を求める

「描画処理」
・速度 += 加速度
・補正座標 += 速度
・現在のX or Z座標 += 補正座標

PCと敵の位置関係で軸に直角になる様に
計算中の描画用XかZ座標に補正座標を加える

・Y >= 0 なら Yの速度--
・Y < 0 なら Yの速度++

Y座標は原点に向けて加速するsinカーブ
要は R-TYPE II の拡散波動砲
527: 某犬犬 ◆HzfAAjcl8nz1 2019/04/02(火)16:34 ID:kiYAJn+a(3/9) AAS
FPSの敵弾xPCの当たり判定を作った

・DX = (PCのX - 弾のX) / (PCの半径 + 弾の半径)
・DZ = (PCのZ - 弾のZ) / (PCの半径 + 弾の半径)

でDXとDZが両方0だったらPCにダメージ
528: 某犬犬 ◆HzfAAjcl8nz1 2019/04/02(火)16:35 ID:kiYAJn+a(4/9) AAS
移動や攻撃などのキーが押されていなかったら
PCのHPを少しずつ回復する様にした
529: 某犬犬 ◆HzfAAjcl8nz1 2019/04/02(火)16:36 ID:kiYAJn+a(5/9) AAS
グレネードの煙幕で敵弾を防げる様にした
当たり判定は敵弾xPC等と大体一緒
530: 某犬犬 ◆HzfAAjcl8nz1 2019/04/02(火)16:44 ID:kiYAJn+a(6/9) AAS
自弾のパルス、バースト、グレネードと敵との当たり判定できた

パルスとバーストはオブジェクトのポインタの配列に
ソートされて入ってるので、手前から判定して行って
最初に射線上(画面中心)に居るものが敵だったら
そいつにダメージを入れる
531: 某犬犬 ◆HzfAAjcl8nz1 2019/04/02(火)16:45 ID:kiYAJn+a(7/9) AAS
戦車のHPが0になったら
その場にグレネードと同じ爆炎を置く様にした

グレネードは着弾予測地点で判定
ダメージは4フレームに別けて与える事で
誘爆する時に時間差が出る様にした
532: 某犬犬 ◆HzfAAjcl8nz1 2019/04/02(火)16:45 ID:kiYAJn+a(8/9) AAS
戦車の爆発がおかしな場所に生成されるバグを直した
相互リンクする部分があやふやなコードだった

ツクールだとコメント入れるだけでも面倒だけど
それでも目印くらい付けとくべきだった
533: 某犬犬 ◆HzfAAjcl8nz1 2019/04/02(火)16:46 ID:kiYAJn+a(9/9) AAS
近接のビーム・クリスと敵の当たり判定できた

使用中のオブジェクトへのポインタの配列から
描画座標と半径が取得できるので、それで判定する
壁の有無に関係なく範囲内の敵全てにダメージを入れる

2コマでモーションして3コマ目で戻るので
ダメージも半分ずつに分けて与える
534
(1): 某犬犬 ◆HzfAAjcl8nz1 2019/04/03(水)09:40 ID:MRhUeRMg(1/5) AAS
四捨五入ルーチン呼んでる所インライン展開したら
めっちゃ速くなったwもう別ゲー
1-
あと 468 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.012s