タグ

Cocos2dとC++に関するs_ryuukiのブックマーク (23)

  • Cocos2d-xにおけるOS依存機能利用のための実装 - will and way

    この記事はqiita advent calendar cocos2d-x 2015の22日目の記事です。 qiita.com C++完結はできない Cocos2d-xでは主にクロスプラットフォームな開発を期待して選ぶ方が多いと思います。 しかし、プラットフォーム依存な所、例えば文字の入力、課金、OS情報やユーザー情報へのアクセスをする場合にはそのプラットフォームで提供されているSDKを書く必要が出てきます。 また、Cocos2d-xで書くよりもOS依存のSDKの力を借りてネイティブで書いたほうがパフォーマンス向上に苦労しないケース(スクロールビューやGridView, CollectionViewなど)も少なくない上に、ユーザーにとっても使い慣れたUIを提供することができるというメリットもあります。 iOSの場合はObjective-CがC++への互換があるため、Objective-C++

    Cocos2d-xにおけるOS依存機能利用のための実装 - will and way
  • [C++] Cocos2D-xでゲームを作る前の準備 - Qiita

    色々あって、チーム内で簡単なゲームを作りあって競おう、という話になりました。 プラットフォームやツールなどは自由なのですが、元々C++に興味があったのと、Cocos2D-xはやってみたかったので、思い切って挑戦することにしました。 とはいえ、そもそもC++を書いたことがほぼ皆無なので、色々調べるところからスタートです。 なので、C++というよりは、Cocos2D-xを触っていく仮定で出てきた疑問やメモなどがメインになります。 ちなみに今回作ったゲームは一番下にリンクがあるので、ぜひ遊んでみてください(๑'⌓'๑) 柔軟な配列を利用する C言語などでは通常、配列は固定長です。 しかし、最近の言語では柔軟に配列長を変えることが可能になっています。 C++ではstd::vectorやstd::list、std::mapなどの コンテナ と呼ばれる機能を使って実現するようです。 具体的な使い方は以

    [C++] Cocos2D-xでゲームを作る前の準備 - Qiita
  • 【レポート】第5回cocos2d-x勉強会に参加をしてきました。 | albatrus.com

    オンライン対戦型のゲーム「BrainWars」を作成されている高場さんと工藤さんのお話です。 「BrainWars」を作成しているトランスリミット社は今年の1月に出来た新しい会社です。 子供から大人、また世界で遊べるゲームを作成しているとのこと。第一作目が「BrainWars」。 ソーシャルメディアでの広く拡散されている。 AppBankでも取り上げられた。 技術的な話 – リアルタイム対戦 「BrainWars」の最大の特徴は、オンラインで対戦ができること。 その際に「Socket.IO」という技術を利用している。 これを利用すればあらゆるデバイスで双方向の通信が可能になる。 cocos2dxは3.0を利用している。 アルファバージョンだったので、エラーがたくさん出て大変困ったそうです。 サーバーでは「Node.js」「Ruby on Rails」を利用している。 通信では「Socket

    【レポート】第5回cocos2d-x勉強会に参加をしてきました。 | albatrus.com
  • C++11でjson扱うならdropbox/json11がよさそう - きょこみのーと

    Cocos2d-x3.0で使ってみました。その導入と実装例になります。 単純にCocos2d-xに組み込まれてるspine/json.hが自分的に使いにくかったので。。。 別に速度がウンタラカンタラとかそういう話ではないので、その辺のツッコミはご勘弁ください。。。OTL dropboxのgithub 以下のgithubになります。見るとわかると思いますがcppとhppしか無いので組み込みやすいです。 test.cppもあるので単純な使い方はそれみたら大体わかります。 https://github.com/dropbox/json11 Cocos2d-xへの組み込み手順 普通にダウンロードしてコピペでもいいと思います。 自分は、Classesディレクトリ以下に適当にmodulesってディレクトリ作成してgit clone submoduleにしました。 ちなみにgit cloneした場合は、

    C++11でjson扱うならdropbox/json11がよさそう - きょこみのーと
  • spine/Json.hを使うべきでない4つの理由 - Blog :: Meatware

    Cocos2d-x で JSON フォーマットを扱うためのライブラリを探すと、大抵最初に見つかるのは spine/Json.h です。 Cocos2d-x に組み込まれているため、何かのライブラリを追加で入れる必要はありません。 使っている人も多いため、ちょっと検索すれば使い方も分かります。 そんな便利な spine/Json.h。 しかし、spine/Json.h は決して使うべきではありません。 その理由は、以下の4つです。 リンクリストかつ線形探索なのでクソ遅い 型の間違いを無視する インターフェースが変わりやすい キーの大文字小文字を無視する この4つについて詳細に説明します。 なお、ここではコミットID 625b9501f320a08e6d3aff2ee2ad4e04c6872cc0 時点の spine/Json.h、spine/Json.cpp について書いています。 リンクリ

  • 【レポート】gumiStudy cocos2d-Xmas Specialに行ってきました。 | albatrus.com

    昨日、東京の半蔵門で行われました「gumiStudy cocos2d-Xmas Special」に参加をしてきました。 難しい話が多かったですが、色々な話が聞けました。今回は、忘れないうちにブログにまとめて行こうと思います。 gumiStudy cocos2d-Xmas Special gumi代表取締役 國光さん 開会の挨拶もかねて、gumiの國光さんのお話です。 「国内だけでちまちまするのではなく、世界を目指していきましょう」 ゲーム市場について コンシューマ機は年々市場規模が下がってきている。 Webブラウザーゲームは、頭打ちに。 その一方、ネイティブアプリ市場は急上昇で拡大している。(日のネイティブ市場は2014年で、約5500億円) 現在の市場が1兆円。 これが、2016年には、5兆円の規模になる。 その内訳で、中国韓国・日で54%を占める。 つまり、「アジアを制するものが

    【レポート】gumiStudy cocos2d-Xmas Specialに行ってきました。 | albatrus.com
  • LWF | GREE Engineering

    サンフランシスコからこんにちは。エンジニアの坂 一樹(@splhack)です。 このエントリは GREE Advent Calendar 2013 9日目の記事です。という書き出しで始まると思った人が大半だと思うのですが、残念ながらこの記事はAdvent Calendarの記事ではありません。こんなにAdvent Calendarの記事が並ぶなか、Advent Calendarの記事ではない記事が一緒に並ぶというのは、なかなか斬新な企画ではないでしょうか。これがシリコンバレー流です。言ってみたかっただけで、当ではありませんが。 そもそもこれを書いている場所がシリコンバレーかというと、あれっ、サンフランシスコってシリコンバレーなんでしたっけ、という疑問が浮かんでしまうわけです。シリコンバレーって、アメリカ合衆国カリフォルニア州北部のサンフランシスコ・ベイエリアの南部に位置しているサンタク

    LWF | GREE Engineering
  • cocos2d-x 3.0 + C++11で始めるゲーム開発超入門

    cocos2d-xの簡単な紹介と、cocos2d-x 3.0のalpha版でどのように変わったかを紹介します。

    cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
  • [Cocos2d-x] CCLayerGradient クラスを使用してグラデーションを描画する | Sun Limited Mt.

    CCLayerColor クラスを使用するとレイヤの背景に色を付けることができますが、CCLayerGradient クラスを使用するとレイヤにグラデーション付けることができます。 CCLayerGradient::create メソッドの引数にグラデーションの開始色、終了色、グラデーションの方向を指定します。最後のグラデーションの方向はアンカーポイントの指定と同じように、左下が (0, 0) 、右上が (1, 1) になります。 ccColor4B yellow = ccc4(255, 255, 0, 255); ccColor4B black = ccc4(0, 0, 0, 255); CCLayerGradient* layer = CCLayerGradient::create(yellow, black, ccp(1.0f, 1.0f)); this->addChild(laye

  • iOS/Androidとの相互API呼び出しを行う際のコツ

    実際のゲーム開発では拡張する必要がある 前編の記事「Cocos2dxでiOS/Androidの2Dゲーム開発を始めるには」では、「Cocos2dx」とは何かや、「なぜiOSでもAndroidでも動くの??」のところで、どのようにクロスプラットフォームを実現しているのか見てきました。また、Cocos2dxAndroid/iOSアプリを開発する手順を具体的に解説しました。 必要最低限の部分だけをプラットフォーム依存の言語で記述し、C++で記述されたCocos2dxのコア部分とプラットフォームとのインターフェイスを取っているのでしたね。 さて、実際のゲーム開発では、デフォルトで提供されている機能以外にもプラットフォーム側には備わっているけれど、現状Cocos2dxから利用できないような機能を使用する必要があるかもしれません。 筆者の場合は、それぞれのプラットフォーム上で動作し、静止画を投稿する

    iOS/Androidとの相互API呼び出しを行う際のコツ
  • [Cocos2d-x] CCDrawNode クラスを使用して線、図形を描画する | Sun Limited Mt.

    2013.5.25 追記 CCDrawNode を Android で使用する場合、「色が正しく表示されない」「透過ができない」という問題があります。これを解消するには CCDrawNode::render メソッドの下記行の GL_FALSE を GL_TRUE に修正してください。 glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_FALSE, sizeof(ccV2F_C4B_T2F), (GLvoid *)offsetof(ccV2F_C4B_T2F, colors)); 参考 URL CCDrawnode not respecting alpha? CCDrawNode クラスを使用して線や図形を描画する方法です。レイヤに追加した CCDrawNode のインスタンスに draw 系のメソッド

  • Cocos2d-xでシングルトンによる画面間データ連携 - Qiita

    やっとできたので共有しておきます♪ 参考記事 Cocos2d-xでシングルトンによる画面間データ連携 http://xcode555.sblo.jp/article/62645292.html (この時点では.cppが貼り間違いでした…) Singleton in cocos2d-x Android http://stackoverflow.com/questions/9434436/singleton-in-cocos2d-x-android // // GameManager.h // SingletonTEST // // Created by prototechno on 2013/02/20. // // #ifndef __SingletonTEST__GameManager__ #define __SingletonTEST__GameManager__ typedef en

    Cocos2d-xでシングルトンによる画面間データ連携 - Qiita
  • [cocos2d-x] プログレスバーに使える CCProgressTimer クラス | Sun Limited Mt.

    ダウンロードなどの進捗表示に使用できる CCProgressTimer クラスの使い方です。 CCProgressTimer に指定した CCSprite が CCProgressTimer のパーセンテージにより表示され方が変化していきます。表示方法は時計回りに表示されていくのと、画像の真ん中から表示されていく2種類あります。 下の画像は時計回りに Icon-72.png が表示されていく例です。 cocos2d-x の v1.0 のころは反時計回りや上からや下からなど6種類ほどあったのですが、v2.0 になってから2種類になりました。(多分 cocos2d-iphone に合わせたのでしょう) 実装例です。当然ですが CCProgressTimer クラスのパーセンテージを変えて行かないと何も起こりません。 関連する投稿 関連する投稿はありません。 This entry was pos

  • [Cocos2d-x] テキスト入力できる CCEditText クラス | Sun Limited Mt.

    Cocos2dx ver2 から追加された CCEditText を試してみました。CCEditText クラスは文字をキーボードから入力可能にするクラスです。ゲームで名前の入力などに使用できそうです。また、キーボードが表示されることにより入力フォームが隠れてしまう場合も自動的に画面をスクロールさせてくれます。 入力エリアの画像は 9-patch 画像を指定します。contentSize によって画像が自動的にストレッチされます。また、テキストのフォントサイズも contentSize によって自動的に決まります。プレースホルダの指定やリターンキーのタイプの指定も可能です。 テキスト入力エリアのコードは下記のようになります。 CCEditBox* editBox; CCSize editBoxSize = CCSizeMake(200, 50); editBox = CCEditBox::

  • [Cocos2d-x] CCSprite にマスクをかけられる CCMask クラス | Sun Limited Mt.

    Cocos2d-x の CCSprite にマスクをかけられる CCMask クラスを作ってみました。 cocos2dx のフォーラムに v1.0 用の CCMask クラスはあったのですが、v2.0 では動作しなかったので、下記サイトなどを参考に v2.0 用を作成しました。 How To Mask a Sprite with Cocos2D 2.0 How To Create Cool Effects with Custom Shaders in OpenGL ES 2.0 and Cocos2D 2.X cocos2d-x フォーラムの CCMask http://www.cocos2d-x.org/boards/6/topics/11023 サンプルプロジェクトGitHub にアップしています。 https://github.com/syuhari/CCMask 使い方は簡単で

  • Cocos2d-x で効果音の同時再生数を上げる | Sun Limited Mt.

    Cocos2d-x を使用して効果音を同時に再生した場合に Android では5音が上限となります。 この上限をあげる方法です。 Cocos2dx の修正 Cocos2dxSimpleAudioEngine は Android の効果音再生に SoundPool を使用しています。SoundPool はひとつのインスタンスで複数の音を再生するのですが、インスンス生成時に最大数を決めて生成します。今回はこのインスンス生成時の最大数を変更します。 下記行が SoundPool の同時再生数になるので、この値を修正する。デフォルトでは 5 になっています。 android/src/org/cocos2dx/lib/Cocos2dxSound.java private static final int MAX_SIMULTANEOUS_STREAMS_DEFAULT = 5; ただやみくも

  • SWF を変換して Cocos2d-x で表示できる Super Animation Converter | Sun Limited Mt.

    Flash の swf ファイルを Cocos2d や Unity で表示するというのは、先日 GREE さんからオープンソースとして公開された LWF が有名ですが、Cocos2d-x では使用できませんでした。ところが去年末に Super Animation Converter というツールが公開されました。 cocos2d-x のフォーラムでのスレッド http://www.cocos2d-x.org/boards/6/topics/19621?r=19711 GitHub https://github.com/raymondlu/super-animation-samples GitHub から落としてくると、中にサンプルプロジェクト(Cocos2d-x と Cocos2d-iPhone)とコンバータ、マニュアル(PDF) などが入っています。PDF にざっと目を通せば使い方はすぐ

  • Cocos2d xをさらにさわってみよう!

    Cocos2d xをさらにさわってみよう! ・これだけ覚えていればC++は怖くない ・クロスプラットフォーム開発環境構築

    Cocos2d xをさらにさわってみよう!
  • Cocos2d xのススメ

    20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築についてTomoaki Shimizu

    Cocos2d xのススメ
  • [Cocos2d-x] CCFileUtils::getWriteablePath を使用するときの注意点 | Sun Limited Mt.

    ファイルを保存するときに保存する場所のパスを求めるのに CCFileUtils::getWriteablePath を使用することはよくあると思います。iOS, Android など OS に応じて適切なパスを返してくれるので重宝します。 ただ、iOS では気をつけないとリジェクトされる可能性があります。 iCloud がリリースされてからアップルのガイドラインが変更されて、ユーザが作成したコンテンツ(UGC)でないものをアプリの Documents 以下に保存しているとリジェクトされてしまいます。これは iCloud のバックアップ対象が Documents も含まれているため、バックアップ容量を減らすための処置のようです。ダウンロードしたファイルやキャッシュなどを Documents 以下に保存していると引っかかります。SQLite のファイルもダメです。 このようなファイルは Lib