GameScene::GameScene() { //create game actor _game = new Game; _game->init(); _game->attachTo(_view); //Game Actor would have own Clock. //clock is internal time of each Actor //by default own clock has only Stage //clock could be paused and all children of this Actor would be paused to _game->setClock(new Clock); //create menu button spActor btn = initActor(new MyButton, arg_resAnim = res::ui.getResAnim("menu"), arg_anchor = Vector2(0.5f, 0.5f), arg_attachTo = _view); //align it to top right btn->setX(_view->getWidth() - btn->getWidth()/2); btn->setY(btn->getHeight()/2); //handle click to menu btn->addEventListener(TouchEvent::CLICK, CLOSURE(this, &GameScene::onEvent)); //subscribe to Hidden Event from GameMenu GameMenu::instance->addEventListener(GameScene::HiddenEvent::EVENT, CLOSURE(this, &GameScene::onEvent)); }
void DebugActor::onAdded2Stage() { _dragging = false; _stage->addEventListener(TouchEvent::MOVE, CLOSURE(this, &DebugActor::onDAEvent)); _stage->addEventListener(TouchEvent::TOUCH_DOWN, CLOSURE(this, &DebugActor::onDAEvent)); _stage->addEventListener(TouchEvent::TOUCH_UP, CLOSURE(this, &DebugActor::onDAEvent)); }
MyButton::MyButton() { //pressed button should be RED addEventListener(TouchEvent::TOUCH_DOWN, CLOSURE(this, &MyButton::onEvent)); addEventListener(TouchEvent::TOUCH_UP, CLOSURE(this, &MyButton::onEvent)); addEventListener(TouchEvent::CLICK, CLOSURE(this, &MyButton::onEvent)); }
void DebugActor::showTouchedActor(bool show) { _getStage()->removeEventListener(TouchEvent::TOUCH_DOWN, CLOSURE(this, &DebugActor::onEvent)); _showTouchedActor = show; if (show) _getStage()->addEventListener(TouchEvent::TOUCH_DOWN, CLOSURE(this, &DebugActor::onEvent)); spActor btn = getChild("finger"); }
MyButton::MyButton() { setTouchChildrenEnabled(false); //pressed button should be RED addEventListener(TouchEvent::TOUCH_DOWN, CLOSURE(this, &MyButton::onEvent)); addEventListener(TouchEvent::TOUCH_UP, CLOSURE(this, &MyButton::onEvent)); addEventListener(TouchEvent::CLICK, CLOSURE(this, &MyButton::onEvent)); }
void Draggable::init(Actor* actor) { destroy(); _singleDrag = false; _actor = actor; _dragClient = actor; actor->addEventListener(TouchEvent::TOUCH_DOWN, CLOSURE(this, &Draggable::onEvent)); actor->addEventListener(TouchEvent::TOUCH_UP, CLOSURE(this, &Draggable::onEvent)); }
void DebugActor::showTouchedActor(bool show) { getRoot()->removeEventListener(TouchEvent::TOUCH_DOWN, CLOSURE(this, &DebugActor::onEvent)); _showTouchedActor = show; if (show) getRoot()->addEventListener(TouchEvent::TOUCH_DOWN, CLOSURE(this, &DebugActor::onEvent)); spActor btn = getChild("finger"); btn->removeTweens(true); if (show) btn->addTween(Actor::TweenAlpha(0), 300, 999999, true); }
void WebImage::load(const std::string& url) { _image->setResAnim(0); _http = HttpRequestTask::create(); if (!_http) return; _http->setUrl(url); _http->run(); addRef();//protect actor for delete _http->addEventListener(AsyncTask::COMPLETE, CLOSURE(this, &WebImage::loaded)); _http->addEventListener(AsyncTask::ERROR, CLOSURE(this, &WebImage::error)); }
SlidingActor::SlidingActor(): _sliding(false), _rad(_defaultTouchThreshold), _maxSpeed(250), _downTime(0), _lastTime(0), _current(0), _lastIterTime(0) { _clip = new ClipRectActor; _clip->addEventListener(TouchEvent::TOUCH_DOWN, CLOSURE(this, &SlidingActor::_newEvent)); _clip->addEventListener(TouchEvent::TOUCH_UP, CLOSURE(this, &SlidingActor::_newEvent)); _clip->addEventListener(TouchEvent::MOVE, CLOSURE(this, &SlidingActor::_newEvent)); addChild(_clip); }
value* e2fd(value* in) { value a; CLOSURE ("e2fd"); a = caml_callback(*closure, *in); return fcl_wrap(a); }
value* fd2e(value* in) { value a; CLOSURE ("fd2e"); a = caml_callback(*closure, *in); return fcl_wrap(a); }
value* arith_mul(value* val1, value* val2) { value a; CLOSURE("arith_mul"); a = caml_callback2(*closure, *val1, *val2); return fcl_wrap(a); }
spTween Jewel::swap(const Vector2& pos) { _swaping = true; spTween tween = _view->addTween(Actor::TweenPosition(pos), 500); tween->addDoneCallback(CLOSURE(this, &Jewel::swapped)); return tween; }
value* sorting_sort(value* in) { value a; CLOSURE ("Sorting.sort"); a = caml_callback(*closure, *in); return fcl_wrap(a); }
value* interval_ismember(value* in, int inf, int sup) { value a; CLOSURE ("Interval.is_member"); a = caml_callback3(*closure, *in, Val_int(inf), Val_int(sup)); return fcl_wrap(a); }
value* val_interval(int i, int j) { value v; CLOSURE("Fd.interval"); v = caml_callback2(*closure, Val_int(i), Val_int(j)); return fcl_wrap(v); }
value* cstr_and(value* in1, value* in2) { value a; CLOSURE ("Cstr.and"); a = caml_callback2(*closure, *in1, *in2); return fcl_wrap(a); }
int cstr_post(value* in) { value v; CLOSURE ("Cstr.post"); v = caml_callback_exn(*closure, *in); return Is_exception_result(v); }
value* cstr_ge(value* in1, value* in2) { value a; CLOSURE ("ge"); a = caml_callback2(*closure, *in1, *in2); return fcl_wrap(a); }
value* arith_abs(value* val1) { value a; CLOSURE("arith_abs"); a = caml_callback(*closure, *val1); return fcl_wrap(a); }
value* i2e(int in) { value a; CLOSURE ("i2e"); a = caml_callback(*closure, Val_int(in)); return fcl_wrap(a); }
void Flow::phaseBegin(spScene current, spScene next, bool back) { _back = back; _current = current; _next = next; _transition = true; if (next && !_back) next->entering(); if (!_back || !current->_dialog) next->preShowing(); if ((next->_dialog && _back) || !next->_dialog) current->preHiding(); if (!back) current->sceneShown(next); _trans = next->runTransition(this, current, back); getStage()->addChild(_touchBlocker); _wasTouchBlocked = false; _wasBackBlocked = false; getStage()->addEventListener(TouchEvent::CLICK, CLOSURE(this, &Flow::blockedTouch)); }
void MovieSprite::doRender(const RenderState& rs) { convert(); if (!_ready) return; _shader->setShaderUniformsCallback(CLOSURE(this, &MovieSprite::setUniforms)); #if OXYGINE_RENDERER > 2 STDRenderer* renderer = STDRenderer::instance; renderer->setUberShaderProgram(_shader); Sprite::doRender(rs); renderer->setUberShaderProgram(&STDRenderer::uberShader); #else STDRenderer* renderer = safeCast<STDRenderer*>(rs.renderer); renderer->setUberShaderProgram(_shader); Sprite::doRender(rs); renderer->setUberShaderProgram(&Renderer::uberShader); #endif _shader->setShaderUniformsCallback(UberShaderProgram::ShaderUniformsCallback()); //Sprite::doRender(rs); }
DebugActor::DebugActor():_frames(0), _startTime(0), _corner(0), _showTexel2PixelErrors(false), _showTouchedActor(false) { DebugActor::initialize(); setName(getDefaultName()); _startTime = getTimeMS(); setPriority(1000); float scale = 1.0f; if (getRoot()) scale = 1.0f/getRoot()->getScaleX(); setScale(scale); setInputEnabled(false); TextStyle st; st.font = resSystem->getResFont("system")->getFont(); st.vAlign = TextStyle::VALIGN_TOP; //st.color = Color(rand()%255, rand()%255, rand()%255, 255); st.color = Color(Color::Black, 255); st.multiline = true; setWidth(230); setHeight(45); _bg = new ColorRectSprite; _bg->setColor(Color(Color::White, 64)); _bg->setSize(getSize()); _bg->setInputEnabled(false); addChild(_bg); float x = getWidth(); addButton(x, "tree", "tree"); addButton(x, "finger", "finger"); #ifdef OXYGINE_DEBUG_T2P addButton(x, "t2p", "t2p"); #endif #ifdef OXYGINE_DEBUG_TRACE_LEAKS addButton(x, "images", "images"); #endif _text = new TextActor; addChild(_text); _text->setInputEnabled(false); _text->setStyle(st); _text->setWidth(getWidth()); _text->setText("debug text"); getRoot()->addEventListener(TouchEvent::MOVE, CLOSURE(this, &DebugActor::onDAEvent)); instance = this; }
value* fdarray_max(value* in1) { value a; CLOSURE("FdArray.max"); a = caml_callback_exn(*closure, *in1); if Is_exception_result(a) return 0; return fcl_wrap(a); }
value* fdarray_get(value* in1, value* in2) { value a; CLOSURE("FdArray.get"); a = caml_callback2_exn(*closure, *in1, *in2); if Is_exception_result(a) return 0; return fcl_wrap(a); }
void ResStarlingAtlas::_load(LoadResourcesContext* load_context) { if (!load_context->isNeedProceed(_texture)) return; load_texture(_imagePath, _texture, true, true, load_context); _texture->reg(CLOSURE(this, &ResStarlingAtlas::_restore), 0); }
void Scene::hide() { spTween tween = _view->addTween(Actor::TweenAlpha(0), 300); //detach when done tween->setDetachActor(true); //and call Scene::hidden tween->addDoneCallback(CLOSURE(this, &Scene::hidden)); }
Button::Button():_state(stateNormal), _resAnim(0), _row(0), _btnPressed(0), _btnOvered(0) { EventCallback ncb = CLOSURE(this, &Button::_mouseEvent); addEventListener(TouchEvent::TOUCH_DOWN, ncb); addEventListener(TouchEvent::OVER, ncb); addEventListener(TouchEvent::OUT, ncb); addEventListener(TouchEvent::CLICK, ncb); }
Joystick::Joystick():_pressed(false), _dir(0,0) { setResAnim(res::ui.getResAnim("joystick")); setAlpha(128); //handle touch events addEventListener(TouchEvent::TOUCH_DOWN, CLOSURE(this, &Joystick::onEvent)); addEventListener(TouchEvent::TOUCH_UP, CLOSURE(this, &Joystick::onEvent)); addEventListener(TouchEvent::MOVE, CLOSURE(this, &Joystick::onEvent)); _finger = new Sprite; _finger->setResAnim(res::ui.getResAnim("finger")); _finger->attachTo(this); _finger->setVisible(false); _finger->setAnchor(Vector2(0.5f, 0.5f)); _finger->setTouchEnabled(false); }