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 } }
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); }