投稿

cocos2d-x v3系で UI Nodesを試す Button編

普段、MenuやMenuItemを駆使しボタンを実装していたのだが、Buttonクラスも用意されていたようだ。 なぜ今まで気づかなかったのか... ``` auto button = ui::Button::create(); button->loadTextures( "images/btn/btn_off.png", "images/btn/btn_on.png", "images/btn/btn_disabled.png"); button->setPosition(Point(0, 0)); button->setAnchorPoint(Vec2::ZERO); button->setTouchEnabled(true); button->addTouchEventListener([this](Ref* pSender, cocos2d::ui::Widget::TouchEventType type) { switch (type) { case ui::Widget::TouchEventType::BEGAN: break; case ui::Widget::TouchEventType::MOVED: break; case ui::Widget::TouchEventType::CANCELED: break; case ui::Widget::TouchEventType::ENDED: break; default: break; } }); this->addChild(button); ``` 画面左下にボタンが現れていることだろう。 (ラムダで書くとスッキリする 以上、Gist的な投稿でした。

cocos2d-x v3系で UI Nodesを試す TableView編

qiitaに投稿した : http://qiita.com/isaoeka/items/bc92d348d375a3c6325e 全く同じ内容をココにも残す。 --- cocos2d-x v3系のTableViewを試したので、メモ。 今回は表示する内容をVectorで持つことにしました。 下記にお試しコードを記載 ```HelloWorldScene.h #include "cocos2d.h" #include "extensions/cocos-ext.h" USING_NS_CC; USING_NS_CC_EXT; class HelloWorld : public Layer, public TableViewDataSource, public TableViewDelegate { private: std::vector _contents; public: static cocos2d::Scene* createScene(); virtual bool init(); // TableView Delegate virtual Size cellSizeForTable(TableView* table); virtual TableViewCell* tableCellAtIndex(TableView* table, ssize_t idx); virtual ssize_t numberOfCellsInTableView(TableView* table); virtual void tableCellTouched(TableView* table, TableViewCell* cell); CREATE_FUNC(HelloWorld); }; ``` 本来であれば、headerファイルでUSING_NS_xxx;を指定するのは辞めたほうがいいですね。 ```HelloWorldScene.cpp bool HelloWorld::init() { if (!Layer::init()) { ...

cocos2d-xのblinkが思っていたのと違う

cocos2d-x標準のblinkが1,0の点滅を行うチカチカした点滅であったので、 フェードで点滅を行うような実装をしてみる cocos2d-x 3系で実装を試す。 #### 初期化 ``` mSprite = Sprite::create("hoge.png"); mSprite->setPosition(Vec2(100,100)); this->addChild(mSprite, 4); this->schedule(schedule_selector(HelloWorld::tapToStartSchedule)); ``` #### スケジュールの実装 ``` void HelloWorld::blinkSchedule(float frame) { static float x = 255; x += 0.08; //数値はよしなに int middle = 128; mSprite->setOpacity( sin(x) * middle + middle ); // 0~255 if(x >= FLT_MAX) x=0; } ``` blinkScheduleの実装が気になるが、ひとまず思い描いた動きをさせることができた。

cocos2d-x 3.3 WebViewを触ってみる。

cocos2d-x 3.3 (beta0)からWebViewが使えるようになったとのことで、なんの工夫もなくやってみた。 ``` bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto webView = cocos2d::experimental::ui::WebView::create(); webView->setPosition(visibleSize/2); webView->setContentSize(visibleSize); webView->loadURL("http://www.google.com"); webView->setScalesPageToFit(true); this->addChild(webView, 1); return true; } ``` ひとまずこれで表示される。 ``` setOnShouldStartLoading ``` のようなcallbackもちゃんと用意されているようなので、後で書く。

【node.js】npmでforeverのインストールに失敗してしまう。。。

AWSの無料枠内でnode.jsを弄って遊んでいたのですが、foreverのinstallに失敗して小一時間悩んだのでメモ。 ちなみに失敗時のエラーはこんな感じ ``` npm ERR! Error: SSL Error: SELF_SIGNED_CERT_IN_CHAIN npm ERR! at ClientRequest. (/usr/lib/node_modules/npm/node_modules/request/main.js:252:28) npm ERR! at ClientRequest.emit (events.js:67:17) npm ERR! at HTTPParser.onIncoming (http.js:1261:11) npm ERR! at HTTPParser.onHeadersComplete (http.js:102:31) npm ERR! at CleartextStream.ondata (http.js:1150:24) npm ERR! at CleartextStream._push (tls.js:375:27) npm ERR! at SecurePair.cycle (tls.js:734:20) npm ERR! at EncryptedStream.write (tls.js:130:13) ..... ..... ..... ``` 僕の場合、以下の手順で解決しました。 ``` npm config set registry="http://registry.npmjs.org/" ``` これは、proxy環境下でnpm install しようと思った時に良くハマる所みたです。 やっていることは、registryをhttpsからhttpに変更しているだけですね。 #### 参考 http://stackoverflow.com/questions/9626990/receiving-error-error-ssl-error-self-signed-cert-in-chain-while-using-npm