bool GalleryScroll::onSwipe(const cocos2d::Vec2 &delta) { auto vec = _primary->getTexturePosition(); if (!isnan(vec.y)) { if (vec.y == 0.0f && delta.y > 0.0f) { onOverscrollBottom(delta.y); } if (vec.y == 1.0f && delta.y < 0.0f) { onOverscrollTop(delta.y); } } if (_hasPinch || _progress == 0.0f) { if (!_hasPinch) { if (delta.x > 0.0f && (isnanf(vec.x) || vec.x == 0.0f)) { onMove(delta.x); } else if (delta.x < 0.0f && (isnanf(vec.x) || vec.x == 1.0f)) { onMove(delta.x); } } return _primary->onSwipe(delta); } else { onMove(delta.x); return _primary->onSwipe(Vec2(0.0f, delta.y)); } }
void Draggable::onEvent(Event* event) { //if (event->currentTarget.get() != _actor) // return; TouchEvent* te = safeCast<TouchEvent*>(event); switch (te->type) { case TouchEvent::TOUCH_DOWN: { startDrag(te->localPosition); } break; case TouchEvent::TOUCH_UP: { _pressed = false; _actor->_getStage()->removeEventListeners(this); if (getTimeMS() - _startTm < 2) { _actor->setPosition(_clientPos); } } break; case TouchEvent::MOVE: { onMove(te->localPosition); } break; } }
void SDLWindow::handleWindowEvent() { switch (m_sdlEvent.window.event) { case SDL_WINDOWEVENT_MOVED: onMove(m_sdlEvent.window.data1, m_sdlEvent.window.data2); break; case SDL_WINDOWEVENT_RESIZED: case SDL_WINDOWEVENT_SIZE_CHANGED: onResize(m_sdlEvent.window.data1, m_sdlEvent.window.data2); break; case SDL_WINDOWEVENT_MINIMIZED: onMinimize(); break; case SDL_WINDOWEVENT_MAXIMIZED: onMaximize(); break; case SDL_WINDOWEVENT_RESTORED: onRestore(); break; case SDL_WINDOWEVENT_SHOWN: onDisplay(); break; default: break; } }
void widget::xy(Point _xy) { if (!onMoving(_xy)) return; if (impl_->father_ && !impl_->father_->onChildMoving(this, _xy)) return; if (_xy == xy()) return; cross_platform_window::Handle handle = takisy::handleFromLPWIDGET(this); if (!handle) { repaint(); impl_->rect_ = impl_->rect_.move(_xy); repaint(); } else impl_->rect_ = impl_->rect_.move(_xy); onMove(); if (impl_->father_) impl_->father_->onChildMove(this); if (handle) { cross_platform_window window(handle); window.xy(_xy - window.client_offset()); } }
void MoveAnimation::update(sf::Time dt) { if (mIsActive) { mIsActive = onMove(dt); } }
nytl::Vec2i WinapiMouseContext::move(nytl::Vec2i pos) { auto delta = pos - position_; position_ = pos; onMove(*this, pos, delta); return delta; }
void Fireball::onLoop() { if (isDeadFlag) { onDistroy(); return; } onMove(speed, 0); }
void GUIObject::setPos(const GPoint& pt) { if (pt != m_pos) { GPoint ptOld = m_pos; m_pos = pt; onMove(ptOld, pt); } }
void BabyDragon::onLoop() { if (isDead()) { onDistroy(); return; } onMove(speed, 0); }
void GobangGame::onPacketReceived(InPacket &in, int from) { uint16 cmd; in >> cmd; switch (cmd) { case CMD_MOVE: onMove(in, from); break; } }
void HistoryDialog::update(sf::Time dt) { if (mTopIndex <= 0) { p_mArrowUp->setFocusable(false); } else { p_mArrowUp->setFocusable(true); } if (mBotIndex <= 0 || mBotIndex >= (int)mStrVec.size() - 1) { p_mArrowDown->setFocusable(false); } else { p_mArrowDown->setFocusable(true); } p_mArrowUp->update(mWin); p_mArrowDown->update(mWin); if (mIsDisplay) { onMove(dt, mDisplayPos); } else { onMove(dt, mBeginPos); } EntityNode::update(dt); }
AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDialog) { ui->setupUi(this); m_time = std::make_shared<QTime>(); m_timer = new QTimer(this); connect(m_timer, SIGNAL(timeout()), this, SLOT(onMove())); m_timer->start(50); m_time->start(); }
int OverlayPickerTool::processMouseEvent(rviz::ViewportMouseEvent& event) { if (event.left() && event.leftDown()) { if (!is_moving_) { onClicked(event); } } else if (event.left() && is_moving_) { onMove(event); } else if (is_moving_ && !(event.left() && event.leftDown())) { onRelease(event); } return 0; }
void Hero::onUpdate(float dt) { onMove(); // 检查有没有英雄要“吃” if (m_pQueue && m_pQueue->getHead() == this) { BaseEntity* entity = EM.findHeroNotInQueue(this, GI.RangeToPickupHero); if (entity != NULL) { m_pQueue->appendCharacter((Character*)(entity)); } } }
bool StageLayer::handleEventMouse(EventMouse *e) { auto btn = e->getMouseButton(); auto idx = (int)btn; switch(e->getMouseCode()) { // FIX: no need to start with press ok case MouseCode::SCROLL: case MouseCode::PRESS: { auto const &pos = e->getCursorPos(); if(!inView(pos.x, pos.y)) return false; auto worldPos = screenToWorld(pos); e->setCursorWorld(worldPos.x, worldPos.y); return dispatchEvent(e); } case MouseCode::RELEASE: { auto l = static_cast<EventMouseListener*>(mouseSlots_[idx].get()); auto ok = l && l->isRunning(); if(ok && l->onRelease) { auto worldPos = screenToWorld(e->getCursorPos()); e->setCursorWorld(worldPos); l->onRelease(e); } mouseSlots_[idx] = nullptr; return ok; } case MouseCode::MOVE: { auto l = static_cast<EventMouseListener*>(mouseSlots_[idx].get()); auto ok = l && l->isRunning(); if(ok && l->onMove) { auto worldPos = screenToWorld(e->getCursorPos()); e->setCursorWorld(worldPos); l->onMove(e); } return ok; } } return false; }
void Player::onLoop() { if (fire) { Fireball* fireball = new Fireball(); fireball->onLoad(SPRITE_FIREBALL); fireball->onCreate((getDimensions()->x + 100), (getDimensions()->y + 10)); fire = false; } //test directional movement and move int speed = 0; if (moveUp) speed = -this->speed; if (moveDown) speed = this->speed; onMove(0, speed); }
void CEntity::onLoop( float dt ) { //We're not Moving if(moveLeft == false && moveRight == false && speed.y == 0) stopMove(); if(moveLeft) { accel.x += -ACC_WALK; }else if(moveRight) { accel.x += ACC_WALK; } if(flags & ENTITY_FLAG_GRAVITY) { accel.y += GRAVITY; } speed.x += accel.x * dt; speed.y += accel.y * dt; if(speed.x > maxSpeed.x) speed.x = maxSpeed.x; if(speed.x < -maxSpeed.x) speed.x = -maxSpeed.x; if(speed.y > maxSpeed.y) speed.y = maxSpeed.y; if(speed.y < -maxSpeed.y) speed.y = -maxSpeed.y; onAnimate(); sf::Vector2f dv = speed*dt; //std::cout << "move:" << dv.x << " " << dv.y << " || accel: " << accel.x << " " << accel.y << std::endl; onMove(dv); //Update Sprite mEntitySprite.setPosition(pos); //Update Bound bound.top = pos.y + (size.y * mEntitySprite.getScale().y)/2 - bound.height/2; bound.left = pos.x + (size.x * mEntitySprite.getScale().x)/2 - bound.width/2; //Reset force accel.x=0; accel.y=0; }
Presenter::Presenter(IView *view) { this->view = view; this->game = new GameController(); QObject* qview = dynamic_cast<QObject*>(view); connect(qview, SIGNAL(onNewGame()), this->game, SLOT(onNewGame())); connect(qview, SIGNAL(onPause()), this->game, SLOT(onPause())); connect(qview, SIGNAL(onRotate()), this->game, SLOT(onRotate())); connect(qview, SIGNAL(onToLeft()), this->game, SLOT(onMoveLeft())); connect(qview, SIGNAL(onToRight()), this->game, SLOT(onMoveRight())); connect(qview, SIGNAL(onSpeedup()), this->game, SLOT(onSpeedup())); connect(qview, SIGNAL(onEndGame()), this->game, SLOT(onEnd())); connect(game, SIGNAL(onStateChanged()), this, SLOT(StateChange())); connect(game, SIGNAL(onGameEnd()), this, SLOT(EndGame())); // instead of speedup connect(qview, SIGNAL(onMakeMove()), this->game, SLOT(onMove())); }
Sunshine::Sunshine(QWidget *parent) : QWidget(parent), ui(new Ui::Sunshine) { ui->setupUi(this); setWindowFlags(Qt::Tool|Qt::FramelessWindowHint); QRect rect = QApplication::desktop()->availableGeometry(); m_point.setX(rect.width() - width()); m_point.setY(rect.height() - height()); move(m_point.x(), m_point.y()); m_pStayTimer = new QTimer(this); m_pCloseTimer = new QTimer(this); m_nDesktopHeight=rect.height(); m_dTransparent=1.0; m_pShowTimer = new QTimer(this); connect(m_pShowTimer, SIGNAL(timeout()), this, SLOT(onMove())); connect(m_pStayTimer, SIGNAL(timeout()), this, SLOT(onStay())); connect(m_pCloseTimer, SIGNAL(timeout()), this, SLOT(onClose())); m_pShowTimer->start(1); }
bool CameraRotationHandler::onTouchEvent(const G3MEventContext *eventContext, const TouchEvent* touchEvent, CameraContext *cameraContext) { // three finger needed if (touchEvent->getTouchCount()!=3) return false; switch (touchEvent->getType()) { case Down: onDown(eventContext, *touchEvent, cameraContext); break; case Move: onMove(eventContext, *touchEvent, cameraContext); break; case Up: onUp(eventContext, *touchEvent, cameraContext); default: break; } return true; }
void jsTouchPoll_t :: onTouch( unsigned x, unsigned y ) { debugPrint( "raw: %d/%d\n", x, y ); // translate( x, y ); debugPrint( "cooked: %d/%d\n", x, y ); prevX_ = x ; // set here so code has access to it prevY_ = y ; if( 0 != curBox_ ) { onMove( x, y ); } // already touching, move or release else { gettimeofday(&touchTime_, 0); std::vector<box_t *> boxes = getZMap().getBoxes( x, y ); if( 0 < boxes.size() ) { curBox_ = boxes[0]; curBox_->onTouch_( *boxes[0], x, y ); } else { if( JSVAL_VOID != onTouchCode_ ) { executeCode( JSVAL_TO_OBJECT( onTouchObject_ ), onTouchCode_, "onTouch" ); } else { // printf( "no touch handler %u/%u\n", x, y ); // dumpZMaps(); } } // no boxes... look for global handler } wasDown_ = true ; }
void Monster::onUpdate(float dt) { if (m_bIsFrozen) { //if (m_pFrozenEft && m_pFrozenEft->retainCount() > 1 && !m_pFrozenEft->isKilled() ) //{ // m_pFrozenEft->setPosition(getPosition()); //} return; } bool moveSuccess = onMove(); // 假如快与其他怪撞车了 Monster* other = (Monster*)EM.findEntityInRange(this, 20.f, ET_Monster); if (other) { // 如果怪自己撞到死的话,是不会掉落装备的 other->setDropItemAfterDeath(false); other->kill(); } }
void SDL2Window::tick() { SDL_Event event; while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_WINDOWEVENT: { switch(event.window.event) { case SDL_WINDOWEVENT_SHOWN: onShow(true); break; case SDL_WINDOWEVENT_HIDDEN: onShow(false); break; case SDL_WINDOWEVENT_EXPOSED: onPaint(); break; case SDL_WINDOWEVENT_MINIMIZED: onMinimize(); break; case SDL_WINDOWEVENT_MAXIMIZED: onMaximize(); break; case SDL_WINDOWEVENT_RESTORED: onRestore(); break; case SDL_WINDOWEVENT_FOCUS_GAINED: onFocus(true); break; case SDL_WINDOWEVENT_FOCUS_LOST: onFocus(false); break; case SDL_WINDOWEVENT_MOVED: { onMove(event.window.data1, event.window.data2); break; } case SDL_WINDOWEVENT_SIZE_CHANGED: { Vec2i newSize(event.window.data1, event.window.data2); if(newSize != m_size && !m_fullscreen) { m_renderer->beforeResize(false); updateSize(); } else { // SDL regrettably sends resize events when a fullscreen window // is minimized - we'll have none of that! } break; } case SDL_WINDOWEVENT_CLOSE: { // The user has requested to close a single window // TODO we only support one main window for now break; } } break; } #if ARX_PLATFORM == ARX_PLATFORM_WIN32 case SDL_KEYDOWN: { // SDL2 is still eating our ALT+F4 under windows... // See bug report here: https://bugzilla.libsdl.org/show_bug.cgi?id=1555 if(event.key.keysym.sym == SDLK_F4 && (event.key.keysym.mod & KMOD_ALT) != KMOD_NONE) { SDL_Event quitevent; quitevent.type = SDL_QUIT; SDL_PushEvent(&quitevent); } break; } #endif case SDL_QUIT: { // The user has requested to close the whole program // TODO onDestroy() fits SDL_WINDOWEVENT_CLOSE better, but SDL captures Ctrl+C // evenst and *only* sends the SDL_QUIT event for them while normal close // generates *both* SDL_WINDOWEVENT_CLOSE and SDL_QUIT onDestroy(); return; // abort event loop! } } if(m_input) { m_input->onEvent(event); } } if(!m_renderer->isInitialized()) { updateSize(); m_renderer->afterResize(); m_renderer->SetViewport(Rect(m_size.x, m_size.y)); } }
void SDL2Window::tick() { SDL_Event event; while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_WINDOWEVENT: { switch(event.window.event) { case SDL_WINDOWEVENT_SHOWN: onShow(true); break; case SDL_WINDOWEVENT_HIDDEN: onShow(false); break; case SDL_WINDOWEVENT_EXPOSED: onPaint(); break; case SDL_WINDOWEVENT_MINIMIZED: onMinimize(); break; case SDL_WINDOWEVENT_MAXIMIZED: onMaximize(); break; case SDL_WINDOWEVENT_RESTORED: onRestore(); break; case SDL_WINDOWEVENT_FOCUS_GAINED: onFocus(true); break; case SDL_WINDOWEVENT_FOCUS_LOST: onFocus(false); break; case SDL_WINDOWEVENT_MOVED: { onMove(event.window.data1, event.window.data2); break; } case SDL_WINDOWEVENT_SIZE_CHANGED: { Vec2i newSize(event.window.data1, event.window.data2); if(newSize != m_size && !m_fullscreen) { m_renderer->beforeResize(false); updateSize(); } else { // SDL regrettably sends resize events when a fullscreen window // is minimized - we'll have none of that! } break; } case SDL_WINDOWEVENT_CLOSE: { // The user has requested to close a single window // TODO we only support one main window for now break; } } break; } case SDL_QUIT: { // The user has requested to close the whole program // TODO onDestroy() fits SDL_WINDOWEVENT_CLOSE better, but SDL captures Ctrl+C // evenst and *only* sends the SDL_QUIT event for them while normal close // generates *both* SDL_WINDOWEVENT_CLOSE and SDL_QUIT onDestroy(); return; // abort event loop! } } if(m_input) { m_input->onEvent(event); } } if(!m_renderer->isInitialized()) { updateSize(); m_renderer->afterResize(); m_renderer->SetViewport(Rect(m_size.x, m_size.y)); } }
void Mouse::onClick(int button, int state, int x, int y) { buttonStates[button] = state; onMove(x, y); }
LRESULT Gripper::runProc(UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: { create(); break; } case WM_MOUSEMOVE: case WM_NCMOUSEMOVE: { onMove(); return TRUE; } case WM_LBUTTONUP: case WM_NCLBUTTONUP: { /* end hooking */ if (hookMouse) { ::UnhookWindowsHookEx(hookMouse); ::UnhookWindowsHookEx(hookKeyboard); hookMouse = NULL; hookKeyboard = NULL; } onButtonUp(); ::DestroyWindow(_hSelf); return TRUE; } case DMM_CANCEL_MOVE: { POINT pt = {0,0}; POINT ptBuf = {0,0}; ::GetCursorPos(&pt); getMousePoints(&pt, &ptBuf); /* erase last drawn rectangle */ drawRectangle(NULL); /* end hooking */ ::UnhookWindowsHookEx(hookMouse); ::UnhookWindowsHookEx(hookKeyboard); ::DestroyWindow(_hSelf); return FALSE; } case WM_DESTROY: { mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); ::SetWindowPos(_hParent, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE); _pCont->focusClient(); delete this; break; } default: break; } return ::DefWindowProc(_hSelf, message, wParam, lParam); }