nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

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

cocos2d-x で関数ポインターを使ってレイヤー間の連携をする

はじめに cocos2d-x でゲームを作るときに、タイマーの表示やスコアの表示など、きまりきった機能を別レイヤーにまとめて整理したいと考えました。 そこで、タイマー切れの処理やスコア更新処理など、レイヤーとレイヤーの間で連携をとるために、schedule_se…

MacBook Pro かってやったことメモ

KeyRemap4MacBook ダウンロード元 https://pqrs.org/macosx/keyremap4macbook/index.html.ja コマンドが遠いので、コントロールをコマンドにする Change Control_L Key (Left Control) Control_L to Command_L (except Terminal, Virtual Machine, RDC) エス…

TortoiseGitでチェリーピック

自分用メモ。TortoiseGitで別ブランチのコミットをチェリーピックする。 gitで管理しているフォルダを表示 右クリックで「Gitログを表示」 「ログメッセージ」ウィンドウの左上、ブランチ名の部分をクリックして、取り込みたいコミットのあるブランチを選択 …

cocos2d-x で Box2D を使う 〜 回転ジョイントで物体を空中にピン留めする

はじめに cocos2d-x と Box2D のテスト引き続き。 回転ジョイントを使って、物体を背景にくっつけて、空中にピン留めします。 やること これまで通りに物体を作成し、背景要素とジョイントします。 参考サイト http://www.iforce2d.net/b2dtut/joints-revolu…

cocos2d-x で Box2D を使う 〜 スワイプで物体を動かす

はじめに cocos2d-x と Box2D のテスト引き続き。 物体をスワイプすると、その方向に移動するようにします。 やること タッチ開始から終了の間の移動量を計算し、物体に力として与えます。 削除フラグが立ってたら物体を削除 GameScene.cpp private: CCPoint…

cocos2d-x で Box2D を使う 〜 衝突判定

はじめに cocos2d-x と Box2D のテスト引き続き。 物体同士が衝突したときに削除するような処理を追加します。 やること 衝突イベントのリスナークラスを作成し、衝突したら削除フラグをたてる。 物体の削除処理で、画面外に出たものだけでなく、削除フラグ…

C++ で list の要素を削除する手順のメモ

c++

参考サイト http://marupeke296.com/TIPS_No12_ListElementErase.html コード #include <list> // リストの作成 list<int> numbers; for (int i = 0; i < 10; i++) { numbers.push_back(i); } // リストのイテレーション list<int>::iterator it = numbers.begin(); while (i</int></int></list>…

cocos2d-x で Box2D を使う 〜 複数の物体を扱う

はじめに 前々回、前回から引き続いて、Box2Dで複数の物体を扱ってみます。 タップ時に物体をタップしたら上にはねるのはそのままですが、物体以外の箇所をタップしたら新しい物体が作成されるようにしました。 また、物体が画面外に出た場合、削除する処理…

cocos2d-x で Box2D を使う 〜 物体の移動と力を与える

はじめに 前回の続きで、物体の移動と、物体への力を与える処理を試してみます。 タッチの有効化 GameScene::init に追記してタッチの有効化をする GameScene.cpp // タッチ有効化 setTouchEnabled(true); setTouchMode(kCCTouchesOneByOne); タッチ時に物体…

Linuxのコマンドラインで手軽にバックアップファイルを作成するワンライナー

掲題の通りの小ネタ。 カレントディレクトリ以下のファイルを全て ".bak" という拡張子付きでコピーする。 $ perl -i.bak -lpe '' * perl のオプションは "perldoc perlrun" で。

cocos2d-x で Box2D を使う 〜 重力のある空間と地面と物体を作る

はじめに Box2D上に地面と物体をひとつ作成するサンプルです。 下記の参考書籍からBox2Dを使用したゲームのコードを抜粋し、ゲームロジックなどをのぞいて記載してみたいと思います。 参考書籍 cocos2d-x入門作者: 清水友晶出版社/メーカー: リックテレコム…

cocos2d-xでJSONを使う

cocos2d-xはあんまり関係ないですが、C++でJSONを扱うライブラリ picojson の使い方。 まとまった設定なんかを扱うのに使いやすそうです。 使用準備 https://raw.github.com/kazuho/picojson/master/picojson.h からファイルをコピーしてきて Classes の下に…

cocos2d-x で CCCallFuncND

cocos2d-x で任意の関数を任意のデータを引数として実行する CCCallFuncND を実行するサンプル。 軽くググってもサンプルが出てこなかったのでメモ。 呼び出し側 CCCallFuncND* f = CCCallFuncND::create(this, callfuncND_selector(GameScene::HelloND), (v…

cocos2d-x のアクションのテスト〜弾を飛ばす

cocos2d-x のアクションのテスト。 シューティングなどの弾を飛ばす。 ラベルオブジェクトを作って、移動させ、移動完了時に削除する。基本のシーンの作成は下記URLを参照。 http://nirasan.hatenablog.com/entry/2013/09/23/124822 void GameScene::bombTes…

Parse の Cloud Code を試す

はじめに cocos2d-x で Parse を試した流れで、Parse のアプリケーションホスティング的なサービスの Cloud Code を試してみた。 参考サイト https://parse.com/docs/cloud_code_guide ツールのインストール curl -s https://www.parse.com/downloads/cloud_…

cocos2d-x から Parse を使う

はじめに cocos2d-x から Parse の REST API 経由でユーザー登録とログインをしてみるテスト。 参考書籍 Cocos2d‐x開発のレシピ―iOS/Android対応作者: 松浦晃洋,齊藤建二,古木映治出版社/メーカー: 秀和システム発売日: 2013/06メディア: 単行本この商品を含…

cocos2d-xでなぞって消すパズル

cocos2d-x修行第三弾。ポコパンが面白いので、据え置きパズルで同じ色のブロックをなぞって消すゲームの実装です。 ブロックは六角形のものを想定して、"上"・"下"・"右上"・"右下"・"左上"・"左下"の六方向に辺が接しているブロックを選択できます。できた…

cocos2d-xで図形の描画

空のシーンの作成 "PROJECT_NAME" の "Classes" を右クリックして "New File" で "C and C++" の "C++ Class" を選択して "GameScene" クラスを作成 GameScene.h を以下の通りに #ifndef __GameScene__ #define __GameScene__ #include "cocos2d.h" USING_NS…

cocos2d-xでサメガメ

cocos2d-x修行第二弾。据え置きパズルで同じ色のブロックを消すSameGameの実装です。できたコードはこちら。 https://github.com/nirasan/SameGame-cocos2dxテトリスではブロックを置くフィールドの座標を左上起点にしたところ、cocos2d-xの画面の座標が左下…

cocos2d-x と Xcode でテストがエラーになるときの対応

「Undefined symbols for architecture i386」とか「linker command failed with exit code 1」とかでテストがエラーになるときは、元プロジェクトのビルドを先にしてから、テストプロジェクトの実行をすると良いようです。具体的には、このエラーが発生した…

cocos2d-xでテトリス

はじめに 「cocos2d-x 入門」を一通り写経してみたので、練習のためにcocos2d-xでテトリスを作ってみました。 参考サイト http://www13.plala.or.jp/kymats/study/game_other/SPACE_TETRIS/st1.html 完成したソースコード https://github.com/nirasan/tetris…

Cocos2d-x + Xcode でユニットテストをする

はじめに http://wonderpla.net/blog/engineer/Cocos2d-x_TDD/ このサイトで Cocos2d-x で TDD を試す手順をわかりやすく解説していてためになった。 例示しているコードも実際的で参考になったが、自分には高度すぎたので、簡単なコードで試してみた。 プロ…

巡回セールスマン問題をPerlで(5)

はじめに 前回で終わるつもりでしたが、CPANに既に解法があれば楽だと思って調べてみました。 まとめ 「Traveling Salesman」で検索したところ Algorithm::TravelingSalesman::BitonicTour というモジュールを見つけたので試してみました。 結果だけ先にいう…

巡回セールスマン問題をPerlで(4)

はじめに 前回に引き続き、巡回セールスマン問題の解法をPythonからPerlに移植します。 今回は、greed1関数内で既存ライブラリ(List::PriorityQueue, Graph::UnionFind)を使っていた部分を、元サイトのロジックどおりに実装し直して、draw_path関数の移植を…

巡回セールスマン問題をPerlで(3)

はじめに 前回に引き続き、巡回セールスマン問題の解法をPythonからPerlに移植します。 今回は、2-opt法とor-opt法の対応です。 参考サイト http://www.geocities.jp/m_hiroi/light/pyalgo64.html 「2-opt 法のプログラム」と「or-opt 法のプログラム」をPer…

巡回セールスマン問題をPerlで(2)

はじめに 前回の巡回セールスマン問題をPerlで - nirasan's tech blogで、巡回セールスマン問題の解法をPythonからPerlに移植しましたが、Tkまわりは省略しました。 今回はTkのインストールとTkまわりのコードを移植を行います。 参考サイト http://www.geoc…

巡回セールスマン問題をPerlで

はじめに 巡回セールスマン問題の解法をPythonで解説しているサイトがあったので、Perlに移植してみたメモ。 参考サイト http://www.geocities.jp/m_hiroi/light/pyalgo62.html 「TSP を「欲張り法」で解く」をPerlで Tkまわりは省略 割とそのまま移植できた…

Cocos2dxの自分用まとめ

タッチイベントの有効化 初期化 /* CCScene::init で実行 */ // タッチの有効化 setTouchEnabled(true); // シングルタップの場合 setTouchMode(kCCTouchesOneByOne); // マルチタップの場合 setTouchMode(kCCTouchesAllAtOnce); シングルタップ時に呼び出さ…

「cocos2d-x入門」をEclipseで試したらはまったこと

はじめに リックテレコム出版「cocos2d-x入門」(http://www.amazon.co.jp/cocos2d-x%E5%85%A5%E9%96%80-%E6%B8%85%E6%B0%B4-%E5%8F%8B%E6%99%B6/dp/4897979226)は主に、MacでXCodeを使ったcocos2d-xの入門をまとめた本です。 自分はすぐに使える環境がLinu…

UbuntuにCocos2d-xをインストールしてAndroidアプリ開発環境の作成

環境 Ubuntu: 11.10 Eclipse: 4.2.1 Android SDK: 20.0.1 Android NDK: r9 Cocos2dx: 2.1rc0-x-2.1.3 はじめに EclipseとAndroid SDKはインストール済みだったので省略。 Android NDKのインストール AndroidでC/C++を扱うツールのインストール。 ダウンロー…