void ScreenGrabberChooserRectItem::mouseMoveHandle(int x, int y, QGraphicsSceneMouseEvent* event) { if (this->state != HandleResizing) return; QPointF delta = event->scenePos() - event->lastScenePos(); delta.rx() *= qreal(std::abs(x)); delta.ry() *= qreal(std::abs(y)); // We increase if the multiplier and the delta have the same sign bool increaseX = ((x < 0) == (delta.x() < 0)); bool increaseY = ((y < 0) == (delta.y() < 0)); if ((delta.x() < 0 && increaseX) || (delta.x() >= 0 && !increaseX)) { moveBy(delta.x(), 0); delta.rx() *= -1; } if ((delta.y() < 0 && increaseY) || (delta.y() >= 0 && !increaseY)) { moveBy(0, delta.y()); delta.ry() *= -1; } // this->rectWidth += delta.x(); this->rectHeight += delta.y(); this->mainRect->setRect (0, 0, this->rectWidth, this->rectHeight); updateHandlePositions(); emit regionChosen(chosenRect()); }
void Number::highlight() { if (highlighted_ == false) moveBy(2, 2); else moveBy(-2, -2); highlighted_ = !highlighted_; update(); }
void SoundArgumentMonster::move(int x, int y){ //I am not using player awareness for this item so to get rid of warnings: x = x; y = y; //Travel a fixed distance, and then turn if it is time. //I will use 100 as this fixed distance for now. if (moveCounter % 100 == 0){ switch(myDir){ case LEFT: myDir = UP; break; case UP: myDir = RIGHT; break; case RIGHT: myDir = DOWN; break; case DOWN: myDir = LEFT; break; default: ; } } //Now move. int travelLength = 1; if (moveClockwise){ ; //Do nothing } else{ travelLength *= -1; } switch(myDir){ case LEFT: moveBy(-1*travelLength, 0); break; case UP: moveBy(0, travelLength); break; case RIGHT: moveBy(travelLength, 0); break; case DOWN: moveBy(0, -1*travelLength); break; default: ; } moveCounter++; }
void ULWhiteItem::keyPressEvent(QKeyEvent * event) { if(event->modifiers().testFlag(Qt::ControlModifier)) { switch(event->key()) { case Qt::Key_Left: moveBy(-0.1,0.0); break; case Qt::Key_Right: moveBy(0.1,0.0); break; case Qt::Key_Up: moveBy(0.0,-0.1); break; case Qt::Key_Down : moveBy(0.0,0.1); break; default : break; } } else { switch(event->key()) { case Qt::Key_Left: moveBy(-1.0,0.0); break; case Qt::Key_Right: moveBy(1.0,0.0); break; case Qt::Key_Up: moveBy(0.0,-1.0); break; case Qt::Key_Down : moveBy(0.0,1.0); break; default : break; } } }
void ShapeMoveStrategy::handleMouseMove(const QPointF &point, Qt::KeyboardModifiers modifiers) { if(m_selectedShapes.isEmpty()) return; QPointF diff = point - m_start; if(modifiers & (Qt::AltModifier | Qt::ControlModifier)) { // keep x or y position unchanged if(qAbs(diff.x()) < qAbs(diff.y())) diff.setX(0); else diff.setY(0); } else { QPointF positionToSnap = point + m_initialOffset; m_canvas->updateCanvas( m_canvas->snapGuide()->boundingRect() ); QPointF snappedPosition = m_canvas->snapGuide()->snap( positionToSnap, modifiers ); m_canvas->updateCanvas( m_canvas->snapGuide()->boundingRect() ); diff = snappedPosition - m_initialOffset - m_start; } m_diff = diff; moveBy( diff ); }
bool hitTestFlow(const RenderBlockFlow& flow, const Layout& layout, const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction hitTestAction) { if (hitTestAction != HitTestForeground) return false; if (!layout.runCount()) return false; RenderStyle& style = flow.style(); if (style.visibility() != VISIBLE || style.pointerEvents() == PE_NONE) return false; RenderObject& renderer = *flow.firstChild(); LayoutRect rangeRect = locationInContainer.boundingBox(); rangeRect.moveBy(-accumulatedOffset); auto resolver = lineResolver(flow, layout); auto range = resolver.rangeForRect(rangeRect); for (auto it = range.begin(), end = range.end(); it != end; ++it) { auto lineRect = *it; lineRect.moveBy(accumulatedOffset); if (!locationInContainer.intersects(lineRect)) continue; renderer.updateHitTestResult(result, locationInContainer.point() - toLayoutSize(accumulatedOffset)); if (!result.addNodeToRectBasedTestResult(renderer.node(), request, locationInContainer, lineRect)) return true; } return false; }
bool Clover::move(){ count++; if(count==15){ x+=velocityX; y+=velocityY; if(x<0 || y<0 || (x+50)>700 || (y+50) > 475){ return false; } // //x+=velocityX; //y+=velocityY; count=0; moveBy(velocityX, velocityY); count2++; if( count2==15){ velocityX*=-1; velocityY*=-1; } if (count2==25) { velocityX*=-1; velocityY*=-1; count2=0; } } //setPos(x,y); return true; }
void LabelCanvas::move_outside(QRect r, double angle) { QPoint center(r.center()); QRect lbl_r(0, 0, width(), height()); // place it centered on r lbl_r.moveCenter(center); // goes outside r, moving by 5 points double cx = center.x(); double cy = center.y(); double d_x = 5 * cos(angle * 3.1415927 / 180); double d_y = 5 * sin(angle * 3.1415927 / 180); do { cx += d_x; cy += d_y; QPoint p((int) cx, (int) cy); lbl_r.moveCenter(p); } while (lbl_r.intersects(r)); moveBy(lbl_r.x(), lbl_r.y()); }
const Rect & CIntObject::center(const Point &p, bool propagate /*= true*/) { moveBy(Point(p.x - pos.w/2 - pos.x, p.y - pos.h/2 - pos.y), propagate); return pos; }
void PointRight::move() { x -= 10; if(x==20) deleteMe=true; moveBy(-10, 0); }
virtual void keyPressEvent(QKeyEvent *event){ if(!hasFocus()){ event->ignore(); return; } int delta_y = 0; switch(event->key()){ case Qt::Key_Up: delta_y = -1; break; case Qt::Key_Down: delta_y = 1; break; case Qt::Key_Delete:{ if(DeleteAction) DeleteAction->trigger(); return; } default: break; } if(delta_y == 0){ event->ignore(); return; } if(event->modifiers() & Qt::ShiftModifier) delta_y *= 5; event->accept(); moveBy(0, delta_y); }
/*Déplacement en temps normal*/ void personnage::move(){ if(!alive){ image = img_mort[0]; } else if(!isfighting){ moveBy(speed*deplacement_x,speed*deplacement_y); if(deplacement_x>0){ direction = 1; } else if(deplacement_x<0){ direction = 3; } else if(deplacement_y<0){ direction = 0; } else if(deplacement_y>0){ direction = 2; } if(deplacement_y||deplacement_x){ changement_deplacement(); } } }
void Button::mouseReleaseEvent(QGraphicsSceneMouseEvent* event) { moveBy(0, -1); mPressedEffect->setOffset(0, 2); if (boundingRect().contains(event->pos())) emit buttonPressed(); }
void Properties::mouseMoveEvent( QGraphicsSceneMouseEvent* mouseEvent ) { if( Qt::LeftButton == mouseEvent->buttons() ) { if( _haveToResize ) { // make sure we don't resize in minus (switch the coordinate systems) if( ( mouseEvent->scenePos().x() > mapToScene(_target->getGeometry().topLeft()).x() ) && ( mouseEvent->scenePos().y() > mapToScene(_target->getGeometry().topLeft()).y() ) ) { qreal w = mouseEvent->pos().x() - mouseEvent->lastPos().x(); qreal h = mouseEvent->pos().y() - mouseEvent->lastPos().y(); _target->resize( w, h ); setTarget( _target ); } } else { moveBy( mouseEvent->scenePos().x()-mouseEvent->lastScenePos().x(), mouseEvent->scenePos().y()-mouseEvent->lastScenePos().y() ); _target->moveBy( mouseEvent->scenePos().x()-mouseEvent->lastScenePos().x(), mouseEvent->scenePos().y()-mouseEvent->lastScenePos().y() ); } } QGraphicsRectItem::mouseMoveEvent( mouseEvent ); }
void MapHero::keyPressEvent(QKeyEvent *event){ double cSize; switch( event->key() ) { case Qt::Key_Right: moveBy(9, 0); heroImage = 3; if ( (cSize = collidingItems().size()) > 0){ std::cout << cSize; moveBy(-9, 0); heroImage = 1; } break; case Qt::Key_Left: moveBy(-9, 0); heroImage = 1; if ( (collidingItems().size() > 0)){ moveBy(9, 0); heroImage = 3; } break; case Qt::Key_Up: moveBy(0, -9); heroImage = 2; if ( (collidingItems().size() > 0)){ moveBy(0, 9); heroImage = 0; } break; case Qt::Key_Down: moveBy(0, 9); heroImage = 0; if ( (collidingItems().size() > 0)){ moveBy(0, -9); heroImage = 2; } break; case Qt::Key_P: pause->setModal(true); pause->exec(); break; case Qt::Key_B: std::cout<<"b"; //battle->setModal(true); battle->setModal(true); battle->startBattle('e',2,0,0,'h',2,1,1,'c',1,2,2); //battle->setGeometry(0,0,300,400); battle->exec(); break; case Qt::Key_L: enemon->hide(); break; default: break; } update(); }
void GuiPart::slotMoveBy( double dx, double dy ) { if ( dx==0 && dy==0 ) return; moveBy( dx, dy ); posChanged(); }
void GGraphicsDeviceSequenceItem::PositionBelow( GGraphicsDeviceSequenceItem* pDeviceGraph ) { QRectF previousDeviceRect = pDeviceGraph->sceneBoundingRect(); QRectF thatDeviceRect = sceneBoundingRect(); double botOther = previousDeviceRect.bottom(); double topThis = thatDeviceRect.top(); if(botOther != topThis) moveBy(0, botOther - topThis); }
void food::advance(int phase) { qDebug() << "advance called"; if( 1 == phase) { moveBy(5 * currentDirection,0); } }
// move the hand out of collision, move it back until no collision is detected bool GraspitDBPlanner::moveHandOutOfCollision() { CollisionReport colReport; int numCols; double offset = -10.0; std::vector<Body *> justPalm; justPalm.push_back(mHand->getPalm()); //go back only while PALM is in collision do { numCols = mHand->getWorld()->getCollisionReport(&colReport, &justPalm); if (numCols) { moveBy(vec3(0.0, 0.0, offset)); } } while (numCols); //open fingers that are in collision numCols = mHand->getWorld()->getCollisionReport(&colReport); for (int c = 0; c < mHand->getNumChains(); c++) { if (!mHand->snapChainToContacts(c, colReport)) { //std::cout <<"failed to get a chain our of collision" << std::endl; //failed to get a chain out of collision, do not return //return false; } } //go back only while anything is in collision int safeGuard = 0; while (++safeGuard < 1000) { numCols = mHand->getWorld()->getCollisionReport(&colReport); if (numCols) { moveBy(vec3(0.0, 0.0, offset)); } else { break; } } //always approach to contact no matter how far double step = 10.0; for (int i = 0; i < 10; i ++) { if (mHand->approachToContact(step)) { break; } } return true; }
void Shape::resize ( qreal deltaW, qreal deltaH ) { QRectF newRect = rect(); newRect.setWidth ( newRect.width() + deltaW ); newRect.setHeight( newRect.height() + deltaH ); setGeometry( newRect ); moveBy( deltaW/2, deltaH/2 ); }
void UBFreeHandle::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { QPointF p = mapToParent(event->pos()); QPointF diff = p - pos(); moveBy(diff.x(), diff.y()); mEditableObject->updateHandle(this); }
void CQIllustratorShape:: moveTo(const CPoint2D &pos) { const CBBox2D &bbox = getFlatBBox(); CPoint2D d = pos - bbox.getLL(); moveBy(d); }
void BoxGroup::keyPressEvent(QKeyEvent *event) { switch (event->key()) { case Qt::Key_Down : moveBy(0, 20); if (isColliding()) { moveBy(0, -20); // 将小方块从方块组中移除到场景中 clearBoxGroup(); // 需要显示新的方块 emit needNewBox(); } break; case Qt::Key_Left : moveBy(-20, 0); if (isColliding()) moveBy(20, 0); break; case Qt::Key_Right : moveBy(20, 0); if (isColliding()) moveBy(-20, 0); break; case Qt::Key_Up : rotate(90); if(isColliding()) rotate(-90); break; // 空格键实现坠落 case Qt::Key_Space : moveBy(0, 20); while (!isColliding()) { moveBy(0, 20); } moveBy(0, -20); clearBoxGroup(); emit needNewBox(); break; } }
void Carre::advance(int step) { if (!step) return; if(_dy < 5) _dy += 0.1; if(_dx) { if(_dx > 0 && _dx+0.2 < 2) _dx += 0.2; else if (_dx < 0 && _dx-0.2 > -2) _dx -= 0.2; } if(scene()->sceneRect().contains(boundingRect().translated(_dx,0).translated(pos()))) moveBy(_dx,0); if(scene()->sceneRect().contains(boundingRect().translated(0,_dy).translated(pos()))) moveBy(0,_dy); }
void Ball::move() { QPointF v = QPointF(-(speed_.x() * (10.0 / Frames) + acc_.reading()->x() * (1.0 / Frames) * (10.0 / Frames) / 2), speed_.y() * (10.0 / Frames) + acc_.reading()->y() * (1.0 / Frames) * (10.0 / Frames) / 2); if (collidingItems().size() == 0) { moveBy(v.x(), v.y()); updateSpeed(); } else { emit collision(); } }
void LinkedStructure::update() { // Performs an update to the position of the // linked structure. Performs a tip move by the // step that has been specified if(isTargetResolved()) return; float x = (mTargetPosition(0) - mPosition(0) > 1) ? mStep : -mStep; float y = (mTargetPosition(1) + mPosition(1) > 1) ? mStep : -mStep; moveBy(x, y); }
/*! This function is called by QGraphicsScene::advance(). It is called twice for each item at each animation step, first with \a phase = 0, and then with \a phase = 1. In phase 0, each item moves itself. In phase 1, each item that is responsible for handling collisions detects its collisions and handles them. Note: Each subclass of this base class must implement advance() and call this function when \a phase == 0. \internal */ void KSprite::advance(int phase) { if (phase == 0) { if (dying()) markDead(); if ((vx_ != 0.0) || (vy_ != 0.0)) { moveBy(vx_,vy_); wrap(); } } }
void ClickBoxSize1::keyPressEvent(QKeyEvent *event) { switch ( event->key() ) { case Qt::Key_Right: { moveBy(2,0); break; } case Qt::Key_Left: { moveBy(-2,0); break; } case Qt::Key_Up: { moveBy(0,-2); break; } case Qt::Key_Down: { moveBy(0,2); break; } } update(); }
CodeDocument::Position CodeDocument::findWordBreakBefore (const Position& position) const noexcept { auto p = position; const int maxDistance = 256; int i = 0; bool stoppedAtLineStart = false; while (i < maxDistance) { auto c = p.movedBy (-1).getCharacter(); if (c == '\r' || c == '\n') { stoppedAtLineStart = true; if (i > 0) break; } if (! CharacterFunctions::isWhitespace (c)) break; p.moveBy (-1); ++i; } if (i < maxDistance && ! stoppedAtLineStart) { auto type = getCharacterType (p.movedBy (-1).getCharacter()); while (i < maxDistance && type == getCharacterType (p.movedBy (-1).getCharacter())) { p.moveBy (-1); ++i; } } return p; }
void SpriteObject::age() { if( mLifeSpan > 0 ) { mLifeSpan--; } mCycle++; moveBy(vx, vy); if( mCycle > mSeq->delay( frame() ) ) { setFrame((frame()+1)%frameCount()); mCycle = 0; } }