[過去ログ] 一人で完成まで頑張るの寂しいからかまって [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
495: 某犬犬 ◆HzfAAjcl8nz1 2019/03/17(日)06:09 ID:YCfg/Oct(2/2) AAS
平方根のアルゴリズムは↓を参考にした
外部リンク[html]:cpplover.blogspot.com
引数に0以下を渡すとフリーズするので
適当に1を返す様にした
正確で無くても良いから、そのまま続行して欲しいので
496(1): 某犬犬 ◆HzfAAjcl8nz1 2019/03/19(火)08:27 ID:RqzYy22/(1) AAS
グレネードの爆発を実装した
キーを押したら、照準を前後に往復させて
放したら、そこを目標地点として
座標を「照準→グレネード→爆炎」の順に
伝えて行って、そこで爆炎をアニメさせる
これで白兵戦でのPCの攻撃は大体終わった
当たり判定は敵が出来てからにする
497: 某犬犬 ◆HzfAAjcl8nz1 2019/03/20(水)04:09 ID:q69fB3i7(1/3) AAS
>>496
目標地点の座標をリレー形式で
バトンを手渡して行くイメージ
498: 某犬犬 ◆HzfAAjcl8nz1 2019/03/20(水)09:26 ID:q69fB3i7(2/3) AAS
壁のイテレータとか細かい最適化をした
今はまだ壁の数自体が少ないので
あまり目に見えた効果は無かったけど
ソースの可読性も上がる修整だったので
良しとする
コード読み直して、敵の描画処理の
見当をつけた
499: 某犬犬 ◆HzfAAjcl8nz1 2019/03/20(水)15:53 ID:q69fB3i7(3/3) AAS
FPSの敵の移動パターン4つネタ出しした
500: 某犬犬 ◆HzfAAjcl8nz1 2019/03/21(木)11:21 ID:+0gLwVuf(1/2) AAS
FPSの敵の画像をレンダリングした
取り敢えず1種類だけ作って動かして見て
問題無ければ残り3種類 + ボスも作る
敵を壁の手前や奥に描画できる様に
敵と壁を1枚の画像にまとめた
ファイル・サイズが大きく成り過ぎたので
縦横半分に縮小した
501: 某犬犬 ◆HzfAAjcl8nz1 2019/03/21(木)15:59 ID:+0gLwVuf(2/2) AAS
>>120
地表面の地面と海/川は、アフターバーナーっぽい
角の面取りを止めて正方形にした
地平線がギャラクシーフォースの様に面一になった
デバッグ用に草原以外のマップも
ランダムに選ばれるフラグを用意した
502: 某犬犬 ◆HzfAAjcl8nz1 2019/03/22(金)09:41 ID:NeZvWN39(1/2) AAS
FPSの敵戦車を取り敢えず描画できる様にした
初期化時にマップを左上から右下まで
1キャラずつ見て行って
その地形に応じて、壁や敵を生成して行き
管理用の配列にリンクする
管理配列をソートした後
順番に対応するピクチャ番号で描画する
こうすると、奥にいる戦車が手前の壁に
隠れて見える様になる
503: 某犬犬 ◆HzfAAjcl8nz1 2019/03/22(金)11:13 ID:NeZvWN39(2/2) AAS
1には悪いけど、このスレも半分消化したな
まだまだ続くでー
504: 某犬犬 ◆HzfAAjcl8nz1 2019/03/23(土)03:09 ID:Q/m1CvIm(1/4) AAS
敵戦車が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 の自機狙い弾と同じ
自機狙いは残像拳と一緒で
当たる頃には、もうそこに居ない
「馬鹿め!何処を狙っている!わしはここだ」
上下前次1-新書関写板覧索設栞歴
あと 478 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.025s