コード例 #1
0
ファイル: iEyeDotWindow.cpp プロジェクト: MushNoRoom/iEye
    void iEyeDotWindow::moveDot(SceneMovement hMove ,SceneMovement vMove)
    {
        qreal horizontal_move(0);
        qreal vertical_move(0);
        QPointF oldpos = m_dot->scenePos();
        if (hMove == iEye::MoveLeft)
        {
            horizontal_move = -10;
        }
        else if (hMove == iEye::MoveRight)
        {
            horizontal_move = 10;
        }

        if (vMove == iEye::MoveUp)
        {
            vertical_move = -10;
        }
        else if (vMove == iEye::MoveDown)
        {
            vertical_move = 10;
        }
        QPointF newpos = oldpos + QPointF(horizontal_move, vertical_move);
        if (m_viewScene->sceneRect().contains(newpos))
        {

            m_dot->setPos(newpos);
        }
        else
        {
            return; // Do nothing if outside of the scene
        }


    }
コード例 #2
0
ファイル: minion_boss.cpp プロジェクト: alecmchiu/HeroQuest
minion_boss::minion_boss(QPixmap pixmap, int movement, char c):QGraphicsPixmapItem(pixmap)
{
    direction = 4;
    effect = new QSoundEffect();
    effect->setSource(QUrl("qrc:/audio/win.wav"));
    effect->setLoopCount(1);
    effect->setVolume(0.25f);

    slime_number = 0;
    vulnerable = false;

    if(movement == 0 || movement == 1){
        vertical = true;
        horizontal = false;
        if(c == 'r'){
            fire_direction = 3;
        }
        else {
            fire_direction = 2;
        }
    }
    else if (movement == 2 || movement == 3){
        vertical = false;
        horizontal = true;
        if(c == 'd'){
            fire_direction = 1;
        }
        else {
            fire_direction = 0;
        }
    }

    QTimer* move_timer = new QTimer();
    if (horizontal){
        connect(move_timer,SIGNAL(timeout()),this,SLOT(horizontal_move()));
    }
    else {
        connect(move_timer,SIGNAL(timeout()),this,SLOT(vertical_move()));
    }
    move_timer->start(50);

    QTimer* direction_change = new QTimer();
    connect(direction_change,SIGNAL(timeout()),this,SLOT(random_motion_change()));
    direction_change->start(2000);

    QTimer* minion_timer = new QTimer();
    connect(minion_timer,SIGNAL(timeout()),this,SLOT(spawn_slime()));
    minion_timer->start(5000);
}