kidoOooOoooOOom

ゲーム開発やってます

2014-01-01から1年間の記事一覧

[JS] スネークケースのstring/object keys を キャメルケースに変換

最近はガリガリ開発していてそっちでアウトプットしているので、ブログには書く頻度が減ってしまった。 今日書いたコードは糞だけど汎用性あるのでこっちにメモ /** * Convert snake case string or object keys to camel case. */ convertSnakeToCamel: fun…

Nodeのcryptoモジュールで AES algorithmの暗号・復号

例えば秘密鍵が 123456789key で、Hello worldという文字列を暗号・復号すると下記のようになる。 var crypto = require('crypto'); var secretKey = '123456789key'; var text = 'Hello world'; var hash = crypto.createHash('md5'); hash.update(secretKe…

markdownでchecklist

Rebuild.fm を聞いていたら、pull req のコメントに markdown で checklistを書いて進捗具合を可視化するという方法がいいようなので、今後やっていきたい。 markdownでchecklist書く場合は以下のような感じ。 - [ ] チェック項目 - [ ] 未完了タスク - [x] …

gitでやり直し系の操作

Git

こちらを見て勉強。 http://d.hatena.ne.jp/idesaku/20091106/1257507849 前回のコミットをちょっとだけ修正したい場合。 git-commit --amendを使う。ミスコミットをしてしまった後に修正をして、上記コマンドを実行すればおk。 もっと前のコミット操作など…

reponse返却イベントで処理

Nodeでリクエストが来たタイミングと、レスポンスを返すタイミングでログを出したいような場合、下記のようなmiddlewareを登録すればおk。 exports.accessLogger = function(req, res, next) { var logResponse = function() { res.removeListener('finish',…

upstartで起動・終了周りのtips

upstartのscirptを書いていて、プロセスをkill -TERMで終了させた場合は勝手にstartしないようにしたかったので、normal exit を使用した。 start on started sshd stop on shutdown kill timeout 30 normal exit 0 TERM respawn respawn limit 2 5 script .…

shellで条件式書く時のオプション

dとfを間違えていてハマったのでmemo。オプション: 使用例: オプションの意味 -z: test -z string : string の文字列長が 0 ならば真となる。 -n: test -n string : string の文字列長が 0 より大ならば真となる。 -d: test -d file : file がディレクトリな…

LinuxでプロセスのSIGTERMを待ち受ける

まず、プロセスをチェックするコマンドとしては ps や pstree を使っている。 ps auwx | grep hogehoge pstree -lpプロセスID = 9999 のプロセスを 正常に終了させたい場合は、kill -TERM を送る kill -TERM 99999999 が正常に終了するのを待ち受ける。 PID=…

kill のコマンドオプション

よく忘れるのでmemo。 # 一覧表示 kill -lよく使うやつ 1 HUP 終了後再起動 9 KILL プロセスの強制終了 15 TERM 正常な終了動作を行わせて安全に終了 http://www.k-tanaka.net/unix/kill.php はじめてUNIXで仕事をする人が読む本作者: 木本雅彦,松山直道,稲…

git-flow 使い始めた

プロジェクトで git-flow使い始めたので、備忘録としてmemo。 まず、cloneしたプロジェクト毎に git flow init が必要。 sourceTreeが git-flow 対応しているので、ボタン押すだけでもおk。 普通の機能開発の場合は、featureとしてstartし、pushしてOKな状態…

[git]違うブランチにコミットしたものをそのまま持ってくる

Aブランチにコミットした内容をBブランチにそのまま持っていきたい場合、cherry-pickコマンドでいける。 git cherry-pick コミット番号こちら、参考にさせて頂きました。 http://www.backlog.jp/git-guide/stepup/stepup7_4.html

underscore.js の flatten

下記のような複数の配列の中から、特定の値が1個でも含まれているかどうかを確認する処理のため、underscore.jsのflattenを使って一旦1次元の配列にまとめてからチェックするようなのを書いた。 var arrayTest = {}; arrayTest[1] = {}; arrayTest[1][100]…

Nodejs + mocha + node-inspectorでテストコードをデバッグ

mochaでテストを実行した時にデバッガはさみこみたいので調べてみた。 まずは、node-inspectorをインストール npm install node-inspectornode-inspectorもしくはインストールしたmodule内のinspector.jsを実行してNode Inspectorを起動。 起動すると、デフ…

JSでデフォルト値設定

例えばnullやundefiendかもしれない aaa.hoge に対してデフォルト値=1を用意したい場合、3項演算子を使って書いちゃったりするけれど aaa.hoge ? aaa.hoge : 1;OR演算子で書いた方がスッキリするよと指摘もらったのでそっちを使う。 aaa.hoge || 1;

Sublime Text で覚えたショートカットキー

こちらの記事を見て、自分も使いそうなショートカットキーをmemo http://webimemo.com/web/7366 cmd + ctrl + G: 選択した文字列と同じものをすべて選択 ctrl + shift + K: 今いる行を削除 ctrl + cmd + ⬆: 今いる行を上に移動 ctrl + cmd + ⬇: 今いる行を下…

最近やってたアプリ

TDを無性にやりたくなったので、AppStoreでたまたま見かけたOMG TDというアプリをプレイ。 https://itunes.apple.com/us/app/omg-td!/id713526930?mt=8 既存のTDの要素にプラスして、場所が固定化されない英雄キャラを自由に動かして戦況を操作するのが新鮮…

Dark Souls2 クリア

1週目クリア。ちょうど良いボリューム、難易度だった。 一番の鬼門は3体の衛兵のボスで、それ以降はそこまで理不尽と思うようなボスは無かった。 アプデ前のアマナの祭壇は相当ストレス溜まるステージだったが・・・。 オンラインプレイで人と緩い繋がりを…

一時停止して演出を流す

ゲーム進行は一時停止させたままカットイン演出などを入れたい場合、Time.timeScaleを0fにして世界を止めて、動かせたいものだけiTweenのignoretimescaleオプションを使って動かせる。 (制御系のクラス) if (pauseFlag) { Time.timeScale = 0f; return; } el…

最近入れたSublime Textのプラグイン

JS

このページを参考にして、いくつか入れてみました。 http://qiita.com/maccotsan/items/f320036e19f8d3b798c1 AdvancedNewFile https://github.com/skuroda/Sublime-AdvancedNewFile cmd + alt + n でファイル新規作成をすぐ実行。 BoundKeys https://github…

任意の攻撃ポイントに対してシールド成功かどうかをチェックする

盾のオブジェクトに攻撃発生座標を渡して、ガードが成功したかどうかを判定したいような場合、下記のようにPhysics.CheckSphereを使った。 public bool IsGuardSuccess(Vector3 attackPoint) { if (Physics.CheckSphere(attackPoint, shieldRange)){ Instant…

LEFT JOINとINNER JOINの挙動

SQL

今更ながら初めてSQLのJOINを使ったのでmemo。 INNER JOIN INNER JOIN (内部結合)はそれぞれのテーブルの指定した列の値が一致するデータだけを取得する。基本の構文は次の通り。 SELECT テーブル名.カラム名, ... FROM テーブル名1 INNER JOIN テーブル名2 …

[Unity] カメラ揺らす

敵の攻撃を受けた時の効果としてカメラを揺らす場合のスクリプトを作成した。こんな感じ。 public class ShakeCamera : MonoBehaviour { public float shake_decay = 0.002f; public float coef_shake_intensity = 0.3f; private Vector3 originPosition; pr…

[Unity] 便利リンク

こちらの基本シートページは便利! http://campus-note.com/2013/09/unity-code-sample/

[Unity] GUIのButtonを使う

デバッグ用にButtonを押して現在の状態を変えたかったので、下記のようにスクリプトを追加。 void OnGUI() { if (GUI.Button(new Rect(0, 0, 100, 50), "GUN Mode")) { currentWeapon = WeaponType.GUN; } if (GUI.Button(new Rect(105, 0, 100, 50), "MAGIC…

[Unity] C# Script内でAnimationを切り替え再生

自分でアニメーションを作るリソースは今のところないが、Asset Storeにあるものを使っていると普通にAnimationが実装されているのが多いので、スクリプト内で切り替える方法。 超簡単で、animation.Play("die"); と書くだけ。

こっち見んな を作る

敵キャラクターなどにCameraの方向を向かせる単純なスクリプト // Update is called once per frame void Update () { var newRotation = Quaternion.LookRotation(Camera.main.transform.position - transform.position).eulerAngles; newRotation.x = 0; n…

[Node.js] package.jsonのdevDependenciesについて

npm installで、product環境とそれ以外の環境でinstallするライブラリを制御したい時は、devDependenciesを使うと良い。 例えば、dev環境ではstylus入れるけれどproduct環境では不要の場合は下記のように書く。 "dependencies": { "coffee-script": ">= 1.1.…

配列の判定(ダックタイピングとtoStringによる方法)

配列の判定方法にはいくつか方法はあるが、ダックタイピングによる判定が下記のような sort()の存在テストを行うこと。 function isArray(value) { return typeof value.sort === "function"; }また、他の判定としてtoString()を用いた方法がある。これは、…

関数の判定方法

関数の判定を行うには、instanceOfではなく、typeofを使うことが推奨されている方法。 function myFunc() {} console.log(typeof myFunc === "function");

即時関数呼び出しのお作法

下記のように即時実行関数を書く場合、変数への無名関数の代入と非常に似ているので可読性が悪い var value = function() { // hoge }();なので、即時関数呼び出しが発生することを明確にするために、次の例のように関数を括弧でくくるのが推奨される。 var …