プログラム研究 備忘録

java,C#,Unity等の備忘録です。経済理論も少し。

2014-11-01から1ヶ月間の記事一覧

逆ポーランド記法について

逆ポーランド記法: 数式やプログラムを記述する方法(記法)の一種。演算子(オペレータ)を被演算子(オペランド)の後(右)に記述することから、後置記法 (Postfix Notation) とも言う。 javaのStackクラスを使う 縦長のビーカーがあるのをイメージし、…

parserについて勉強

ActionScriptにて、ぼちぼち理解はしたのですが ぼやーっとしてしまっているので、javaで作り直し中。 paserという単語自体を知らなかったので、非常に勉強になる。 paserができたら自ずとUnityに対する理解も深まりそう。

java xerces

xerces:ちなみにザーシズと読むらしいです。 XMLパース用ライブラリのひとつ。 XMLパーサー。 XMLのパース(解析)を行い、構造を組み替え、さらに文字列化やファイル等ストリームへの出力を行うことができる。 http://xerces.apache.org/ から、Source Dis…

parserとは

parser: プログラムのソースコードやXML文書など、一定の文法に従って記述された複雑な構造のテキスト文書を解析し、プログラムで扱えるようなデータ構造の集合体に変換するプログラムのこと。そのような処理のことを「構文解析」「パース」(parse)という。…

これはこれで楽ですなぁ。

javaとC#、しか触ったことがなく、しかもどちらもまだまだ勉強不足なのですが、 最近作っているものでActionScriptを触ってみようかなと思いまして、 試行錯誤しているのですが、、、 描画楽ですなぁ。使う場面が限られてしまったり、脆弱性があったりと、 …

一旦停止

やりたいことがありまして少々休止中です。 ちょっとメモ。 5 + 4 - 3 ;通常 5 4 3 - + ;逆ポーランド記法 5 + 4 * 3 + 2 / 6 ;通常 5 4 3 * 2 6 / + + ;逆ポーランド記法 (1 + 4) * (3 + 7) / 5 ;通常 1 4 + 3 7 + 5 * / ;逆ポーランド記法

オンライン対応

オンライン対応させようと思うと、思わぬエラーがたくさんでてくる。。。 不要なスクリプトの無効化をしないといけないみたいです。 今日はちょっと休憩。来週中にアップできればいいなぁ。

Unity GUIメモ

・Label テキストや画像表示、Rectクラスで位置と範囲を指定。 テキストとテクスチャを一緒に表示したい場合、GUIContentクラスにまとめて指定することで表示ができる。他のコントローラ関数も同様。 ・BOX Labelと同じくテキストや画像を表示。背景画像に表…

ゲームルール

・一定時間が経過すると終了 ・プレイヤーのHPが0になると終了 ・ボスを倒すとゲームクリア まずは一定時間 ゲームオーバーのフラグ、クリアを二つ用意。 Update関数内で残り時間を減算し、0以下になったらGameOver関数が呼ばれる。 public class GameRu…

敵のランダム出現

コルーチンを使い、最大出現数を設定。 2体発生させるオブジェクトを作成したとしたら、 そのオブジェクトを発生させたい場所に配置する。 マップ全体を把握して、配置させる方法もあるのかもしれませんが、 調べてみた所、これが簡単そうです。 public clas…

コルーチン

・コルーチン 関数の途中で中断、再開できる仕組み。 yieldというキーワードで、中断させることができ、再開するときは yieldの後から実行される。 ・関数の戻り値はIEnumerator型である必要がある。 void update(){ "表示①" //3秒待つ "表示②" //1フレーム…

アイテム生成③

・敵を倒した時に、敵がアイテムを落とすようにする。 // 複数のアイテムを入れれるように配列 public GameObject[] dropItemPrefab; ・アイテムを生成する関数 void dropItem() { if (dropItemPrefab.Length == 0) { return; } GameObject dropItem = dropI…

アイテム生成②

・プレイヤーでのアイテム管理 攻撃強化アイテムは取得してから5秒間効果が続きますが、 回復アイテムは取った時に効果を発揮します。 public void GetItem(DropItem.ItemKind itemKind) { switch (itemKind) { case DropItem.ItemKind.Attack: powerBoostTi…

アイテム生成①

・モデルデータとテクスチャデータを用意 ・モデルにテクスチャを貼り付ける ・作りたいアイテムのプレハブを用意する ・アイテムを区別するために、種類を追加。 public class DropItem : MonoBehaviour { public enum ItemKind { Attack, Heal, }; public …

現在の見解

私はまだプログラムの勉強を始めて3ヶ月ですが、 まだ1から自分で書くことができません。 こうしたい場合、どうすればいいのだろう、このクラスにあるものを持ってくる場合 どうすればいいのだろう。とジレンマと戦いながら試行錯誤を繰り返しています。 も…

AI関連 Colliderに入ったプレイヤーを攻撃対象にする。

Sphere Colliderを追加したオブジェクトへスクリプトを追加します。 public class SearchArea : MonoBehaviour { EnemyCtrl enemyCtrl; void Start() { // EnemyCtrlをキャッシュする enemyCtrl = transform.root.GetComponent<EnemyCtrl>(); } void OnTriggerStay( Col</enemyctrl>…

AI関連 攻撃対象を設定する

敵を管理しているスクリプトに関数を用意します。 // 攻撃対象を設定する public void SetAttackTarget(Transform target) { attackTarget = target; } ・攻撃処理 攻撃対象を追跡するアルゴリズムです。攻撃するには攻撃が当たる位置まで移動しなければなり…

AI関連 索敵範囲コライダ

ゲームオブジェクトを作成し、physicsから「SphereCollider」を選択。 @は好きなオブジェクトと親子関係にし、 Radiusで範囲を設定する。 もちろん大きければ大きいほど敵が、追ってきます。

AIスクリプト メモ②

・移動先の設定 Random.insideUnitCircle関数は、半径1の円の中の点をランダムに返します。 その値に任意の値を掛けることで、任意にランダムな位置を簡単に取得できます。 Vector2 randomValue = Random.insideUnitCircle * walkRange; basePositionにrand…

例えば・・・・

独り言なのですが、 例えば、敵オブジェクトがいて、そのオブジェクトにはもちろん、 攻撃判定が存在する訳です。 それが手であったり尻尾であったりです。 プライヤーにももちろんあります。盾で攻撃を防ぐのであれば、 盾が当たった場合は敵の攻撃が当たっ…

AIスクリプト メモ①

敵のAIを実装。 ・待機時間を決める float waitBaseTime = 2.0f; ・残り待機時間を用意 float waitTime; ・移動範囲を決める float walkRange = 5.0f; ・初期位置を保存する Vector3 basePosition; Start関数で初期位置を保存しておき、残り待機時間にwaiteB…

オンラインゲーム鋭意作成中

オンラインゲームを作成中です。 アクション性の高いものを作ろうとしているのですが、 同期させたときにしっかりと動くのかとても不安。。 とりあえず形だけでもできたら、テスト公開します。 そこから運営するレベルに至れるかどうか・・・・。 春までに完…

攻撃判定 AttackArea

AttackArea using UnityEngine;using System.Collections;public class AttackArea : MonoBehaviour { CharacterStatus status; void Start() { status = transform.root.GetComponent<CharacterStatus>(); } public class AttackInfo { public int attackPower; // この攻撃</characterstatus>…

カメラを追従させる メモ2

・カメラをターゲットに向ける//LookAt関数 ・カメラを回転させる 水平回転角度 horaizon 上下回転角度 vertical カメラと注視点間の距離 distance この3つの値が必要になる Vector3 relativePos = Quaternion.Euler (verticalAngle,horizontalAngle,0) * ne…

カメラを追従させる

カメラの位置=追従対象の位置 + ずらし幅 追従する対象の位置 : lookTarget.position//追従対象 追従対象の位置からの補正 : offset//補正値 追従する位置 = lookTarget.position + offset 追従する位置 = lookPosition//注視点 Update関数内で追従処理で行…