示例#1
0
void Game::onTaskAnswered()
{
    bool oldFinished = isFinished();
    m_tasksAnswered++;
    if(m_currentTask->isCorrect())
        m_tasksAnsweredCorrectly++;
    emit tasksAnsweredChanged(m_tasksAnswered);


    // Adding points
    if (getMode()==Mode::DRAG) {
        setPoints(getPoints() + m_currentTask->getScore());
    }
    else {
        if(m_currentTask->isCorrect()){
            int receivedPoints = 50 * getMultiplier();
            setPoints(getPoints() + receivedPoints);
            setMultiplier(getMultiplier()+1);
        } else {
            setMultiplier(1);
        }
    }

    bool newFinished = isFinished();
    if(oldFinished != newFinished)emit finishedChanged(newFinished);
}
示例#2
0
void SilkyStrings::Reaction::playWrong(bool noisy){
  const std::string fibaFiles[6] =
  {
    "fiba1",
    "fiba2",
    "fiba3",
    "fiba4",
    "fiba5",
    "fiba6",
  };
  if (noisy)
  {
    try{
      sound->set_volume(sound->play("./resources/" + fibaFiles[std::rand() % 6] + ".ogg"), 70.0);
    }catch(...){}


    mean_value *= 1.1;
    multiplier_counter = 0;
    setMultiplier(1);
  }

  if (guitar_track.length()>0)
    sound->set_volume (guitar_track, 0.0);

}
示例#3
0
void SilkyStrings::Reaction::correctPick(double dt){
  dt = dt<0 ? -dt:dt;

  mean_value = 9*mean_value/10 + dt;

  if(mean_value < PERFECT_PICK_THRESHOLD){
    mean_value = 1;

    points += 5*multiplier*PICK_POINTS;
    try{
      //sound->set_volume (sound->play("./resources/perfect1.ogg"),0.9); 	
      sound->set_volume (sound->play("./resources/perfect1.ogg"), 90.0);
    }catch(...){}
    gv->set_popup_notification("Perfect!", 1);

  }else
    points += multiplier*PICK_POINTS;
  
  if(++multiplier_counter >= 10){
    multiplier_counter = 0;
    setMultiplier(multiplier + 1);
  }

  if (guitar_track.length()>0)
    //sound->set_volume (guitar_track, 1.0f);
    sound->set_volume (guitar_track, 100.0);
  
  showPoints();
}
示例#4
0
bool VpGrid::init()
{
    bool status = false;

    // Initialize this objects private data.
    setState(STATE_OFF);
    setStyle(STYLE_LINE);
    m_color.setRed(0);
    m_color.setGreen(0);
    m_color.setBlue(0);
    m_color.setAlpha(255);
    setXSpacing(VpGrid::getGridUnit());
    setYSpacing(VpGrid::getGridUnit());
    setMultiplier(1);
    setXAlignment(0);
    setYAlignment(0);
    setXResolution(1);
    setYResolution(1);
    setReferenceState(VpGrid::REFSTATE_OFF);
    setReferenceStyle(VpGrid::REFSTYLE_SQUARE);
    m_referenceColor.setRed(0);
    m_referenceColor.setGreen(0);
    m_referenceColor.setBlue(0);
    m_referenceColor.setAlpha(255);

    status = true;
    return status;
}
示例#5
0
void SimpleBuff::setMultiplier(int curr)
{
	if (curr < sizeof(BuffMultiplier) / sizeof(double))
	{
		*((double*)&mul + curr) = 1.0;
		setMultiplier(curr + 1);
	}
}
示例#6
0
MultiplierWidget::MultiplierWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MultiplierWidget)
{
    ui->setupUi(this);
    connect(ui->textMultiplier, SIGNAL(textEdited(QString)),
            this, SLOT(setCalculationsNumber()));
    connect(ui->textCalculations, SIGNAL(textEdited(QString)),
            this, SLOT(setMultiplier()));
}
/* Spezialtasten-Druck-Callback - wird ausgefuehrt, wenn Spezialtaste
* (F1 - F12, Links, Rechts, Oben, Unten, Bild-Auf, Bild-Ab, Pos1, Ende oder
* Einfuegen) gedrueckt wird */
void cbSpecial (int key, int x, int y)
{
    switch (key)
    {
        case GLUT_KEY_LEFT:
            setPixelDistance(getPixelDistance() - PIXEL_DISTANCE_DELTA);
            break;
        case GLUT_KEY_RIGHT:
            setPixelDistance(getPixelDistance() + PIXEL_DISTANCE_DELTA);
            break;
        case GLUT_KEY_UP:
            setMultiplier(getMultiplier() + MULTIPLIER_DELTA);
            break;
        case GLUT_KEY_DOWN:
            setMultiplier(getMultiplier() - MULTIPLIER_DELTA);
            break;
        case GLUT_KEY_F1:
            toggleWireframeMode();
            break;
    }
}