忍者ブログ

GAM-22のメモ

[作成記録]Battle Armor

2025.01 ← 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 →

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

AIが微妙

一応、ターゲットに接近しながら、仲間に近づき過ぎないという、動きは再現できました。
但し、向きが定まらず、ピクピクしたり動きがキモイ時もあるので、引き続き調整します。
PR

AIの考察と、現状

もう、1週間くらい更新していませんが、本当に進展が何もありません。
何か、書かないといけないと思ったので、戦車のAIをどうするか、思考中ですが、書きます。

方法1
  1. マップ上にポイントを作る。
  2. 戦車をポイントに沿って動かせる。
  3. 敵に接近したら攻撃。
方法2
  1. Aチームのリーダーは、Bチームのリーダーに接近。
  2. Bチームのリーダーは、Aチームのリーダーに接近。
  3. Aチームの雑魚は、Aチームのリーダーに接近。
  4. Bチームの雑魚は、Bチームのリーダーに接近。
  5. 敵に接近したら攻撃。
現在、方法2が簡単で、以外と良さそうだと思っています。
問題は、障害物に当たったら、避ける処理が上手くできるかな?
ぐらいですかね。
んっ、待てよ、リーダー死んだらどうなるんだ?

現状
  1. マップエディタが作りたいけど、面倒。
  2. 設定は外部ファイルから読み込みたいけど、面倒。

弾丸 - 0.10.0

バージョンの、β版の使い方を間違っている気がするので、バージョンの付け方を変更することにしました。
最近では、日付をバージョンするのが増えてるので、それも良いと思いましたが、次のようにしました。
とりあえず、
001.β100.10.0
という具合です。
元々、βはテストという意味でつけていたので、0010に繰り下げて、βを取りました。
0.10.0の3つ目の数字はバグ修正に使います。
-----
さて、ゲームの進み具合ですが、弾丸が出るようにしました。
戦車は判定はしていませんが、障害物には、判定をしています。
弾丸を描くとき、単色のオレンジ画像を弾の形にアルファブレンドコピーをしています。
まあ、光ってるのが上手く表現できたと思いますが、地面の色の関係で認識しにくいです。
最初は、拳銃の四角い弾丸みたいな感じでしたが、迷った末にこうなりました。

↓の画像は、爆風の様子です。(弾丸が一個見えます。) そして、爆風もアルファブレンドコピーしてみました。 輪郭を見ると、後の画像の方が、背景に馴染んでると思います。
輪郭が黒い方が良いとも考えらるし、処理が軽いですが、アルファブレンドを使うことにしました。

しかし、今回は処理速度が遅くなってしまって、ボツになるかとさえ思いました。
そこで、画面サイズを1/2にする事を考えています。
メリットは結構あって、1/2ということは、面積は1/4になるので、画像の容量も1/4、メモリも、hdcとかの領域は1/4、描画処理速度も1/4(?)になって良い事だらけです。
しかし、実寸大でも↓の大きさなので、目が痛くなるかもしれません。
しかも、乱数で、戦車とかを適当に配置したので、障害物や仲間に踏まれて酷いことに...

カーソルキー : 移動
space : 魂の移動
shift : 大砲
ctrl : 画面のサイズ切り替え
tank_0.10.0.zip
Ver.0.10.0.hsp
ちなみに、↑は画面の大きさを小さくしても、gzoomを使って縮小コピーしているだけなので、処理速度は変わりません。(むしろ重い)
そういえば、grotateでアルファブレンド使えないので、レーザービームとか面倒そう...

物体 - 001.β9!

このブログは読者のことは全く考えていません。
メモみたいなものなので、私以外には意味が無いです。
-----
一応、どんな多角形にも対応できるような感じになったのですが、同時に、 予言どうり、昨日、判定の処理が物凄く重くなり、CPU使用率100%になりました。
そこで、どうやって解決したか書きます。
-----
まず、↓の写真を見てください。 昨日は、イメージとしては、こんな感じで判定しました。
しかし、この手順の前に、 のように円を使って簡単に判定します。
矩形でもいいじゃんと、思うかもしれませんが、回転する事を考慮すると円が最適です。
要するに、まず処理の軽くて密度の低い判定をし、当たってたらさらに重くて密度の高い判定をします。
条件によりますが、1/3くらいに軽くなりました。
-----
また、戦車の横の十角形(☆)ですが、どうやって形の情報を変数にいれているかと言うと、頂点の座標を中心からの角度と距離で記憶しています。
こうすると、回転しても対応できます。
また、形の情報はゲーム共通にして、戦車でも物体でも使えるようにしました。(解かりにくい?)
-----
そういえば、バージョンにβをつけているけど、ベータ版の使い方を間違ってました。
今回は、解読不能なレベルに雑なソースも公開します。
カーソルキー : 移動
space : 魂の移動
shift : 大砲
tank_001b9.zip
ソース
※弾は出ません。

困った

オブジェクト(障害物)と戦車の判定で、理論上、どんな多角形にも対応した判定にしたら、物凄く重くなってしまいました。
カテゴリー
カウンター
最新記事
最新コメント
Twitter
人気記事
Amazon お買い得情報
Amazon お買い得情報
プロフィール
自画像
HN :
GAM-22
性別:
男性
職業:
大学1年生
HSP暦:
6年
好きなもの :
ゲーム, アニメ, マヨネーズ
嫌いなもの :
運動, 注射, ホラー映画, 英語
好きなバンド :
Muse, Radiohead
その他 :
文章能力が欠如している
バナー
Copyright © GAM-22のメモ All Rights Reserved
Powered by ニンジャブログ Designed by ピンキー・ローン・ピッグ 忍者ブログ / [PR]