//-------------------------------------------------------------------------
void pmWarpPiRendererVideoPlayer::updateOSC(ofxOscMessage* m)
{
    ofLog(OF_LOG_NOTICE) << "VideoPlayer-OSC" << endl;
    
    
    string address = m->getAddress();
    
    // get the id
    string addressWithoutSlash = address.substr(1,address.size()-1);
    
    if(true)// It will be for me it they send it (address=="/all")||(id==addressWithoutSlash))
    {
        /// THIS MESSAGE IF FOR YOU !!
        
        /// COMMAND
        string command = m->getArgAsString(0);
        
        
        /// Change Volume
        if(command == "volume"){
            audioVolume = m->getArgAsFloat(1);
        }
        else if(command == "loop"){
            this->setPlayerLoop(m->getArgAsBool(1));
            cout<< "Set loop State: " << m->getArgAsBool(1) << endl;
            ofLog(OF_LOG_NOTICE) << "Set Loop State: " << loop;
        }
        
        /// PLAY
        else if(command == "playVideo")
        {
            if (isPlayerPaused() && !isFading){
                float fade = m->getArgAsFloat(1);
                //videoPlayer.play();
                if(!activePlayer){
                    activePlayer = true;
                    ofNotifyEvent(swapEvent, fade, this);
                }
                
                setPlayerPaused(false);
                Tweenzor::add((float *)&screenOpacity.get(), 0.0, maxScreenOpacity, 0.0, fade, EASE_IN_OUT_EXPO);
                Tweenzor::addCompleteListener(Tweenzor::getTween((float*)&screenOpacity.get()), this, &pmWarpPiRendererVideoPlayer::onComplete);
                isFading = true;
            }
        }
        /// STOP
        else if(command == "stopVideo")
        {
            if(!isPlayerPaused() && !isFading){
                Tweenzor::add((float *)&screenOpacity.get(), screenOpacity, 0.0, 0.0, m->getArgAsFloat(1),EASE_IN_OUT_EXPO);
                Tweenzor::addCompleteListener( Tweenzor::getTween((float*)&screenOpacity.get()), this, &pmWarpPiRendererVideoPlayer::onComplete);
                isFading = true;
            }
        }
        /// PAUSE
        else if(command == "pauseVideo")
        {
            if(isPlayerPaused()) setPlayerPaused(false);
            else setPlayerPaused(true);
        }
        /// RESTART
        else if(command == "restartVideo")
        {
            if(!isFading){
                restartMovie();
                Tweenzor::add((float *)&screenOpacity.get(), 0.0, maxScreenOpacity, 0.0, m->getArgAsFloat(1),EASE_IN_OUT_EXPO);
                Tweenzor::addCompleteListener( Tweenzor::getTween((float*)&screenOpacity.get()), this, &pmWarpPiRendererVideoPlayer::onComplete);
                isFading = true;
            }
        }
        /// LOAD MOVIE
        else if(command == "loadVideo")
        {
            if (!isFading){
                auto new_videoFileName = "./videos/" +  m->getArgAsString(1);
                ofFile videoCheck(new_videoFileName);
                if(videoCheck.exists()){
                    cout<<"Loading Video: " << new_videoFileName << endl;
                    fadeTime = m->getArgAsFloat(2);
                    videoFileName = new_videoFileName;
                    
                    if(!activePlayer){
                        activePlayer = true;
                        ofNotifyEvent(swapEvent, fadeTime, this);
                        loadMovie();
                        Tweenzor::add((float *)&screenOpacity.get(), 0.0, maxScreenOpacity, 0.0, fadeTime, EASE_IN_OUT_EXPO);
                        Tweenzor::addCompleteListener( Tweenzor::getTween((float*)&screenOpacity.get()), this, &pmWarpPiRendererVideoPlayer::onComplete);
                    }
                    else{
                        Tweenzor::add((float *)&screenOpacity.get(), maxScreenOpacity, 0.0, 0.0, fadeTime, EASE_IN_OUT_EXPO);
                        Tweenzor::addCompleteListener( Tweenzor::getTween((float*)&screenOpacity.get()), this, &pmWarpPiRendererVideoPlayer::onFadeOutComplete);
                        isFading = true;
                    }
                    
                    ofLog(OF_LOG_NOTICE) << "VideoPlayer-LoadVideo: " << videoFileName << " - fadeTime: " << fadeTime;
                }
                else{
                    ofLog(OF_LOG_ERROR) << "VideoPlayer - No VideoFile";
                    cout<< "No Videofile: " << new_videoFileName << endl;
                }
            }
        }
    }
    pmWarpPiRendererDrawable::updateOSC(m);
}
Ejemplo n.º 2
0
void APlayerOvi::Tick(float DeltaSeconds){
  //get own deltaTime
  DeltaSeconds = TimeManager::Instance()->GetDeltaTime(DeltaSeconds);
  Super::Tick(DeltaSeconds);

  //initilize raycast query param
  //Initialize TraceParam
  if (!m_isValid) {
    //Get ATowardsTheLightGameMode
    if (!m_gameMode)
      m_gameMode = Cast<ATowardsTheLightGameMode>(UGameplayStatics::GetGameMode(this));

    m_gameMode->FindActualPlayer();

    static FName FireTraceIdent = FName(TEXT("Platform"));
    FCollisionQueryParams TraceParams(FireTraceIdent, true, this);
    TraceParams.bTraceAsyncScene = true;
    TraceParams.bFindInitialOverlaps = false;
    TraceParams.bTraceComplex = true;

    TArray<AActor *> ignorados;
    for (TActorIterator<ATappable > ActorItr(GetWorld()); ActorItr; ++ActorItr) {
      if (ActorItr->ActorHasTag("Tappable"))
        ignorados.Add(*ActorItr);
    }

    for (TActorIterator<ACheckPoint > checkItr(GetWorld()); checkItr; ++checkItr)
      ignorados.Add(*checkItr);

    for (TActorIterator<ATutorial > tutItr(GetWorld()); tutItr; ++tutItr)
      ignorados.Add(*tutItr);
    
    if (ignorados.Num() > 0)
      TraceParams.AddIgnoredActors(ignorados);

    m_TraceParams = TraceParams;
    m_isValid = true;
  }

  //pause animations if is game paused
  Mesh->bPauseAnims = isPlayerPaused();

  //first tick initialize viewport properties, dont work at begin play
  if (m_limitViewPort0 == 0 && m_limitViewPort1 == 0) {
    m_limitViewPort0 = GEngine->GameViewport->Viewport->GetSizeXY().X * 0.45;
    m_limitViewPort1 = GEngine->GameViewport->Viewport->GetSizeXY().X * 0.55;
  }

  //update elapsed time if push button animation is running
  if (m_isPushingButton) {
    m_elapsedButton += DeltaSeconds;
    if (m_elapsedButton >= 1.0f) {
      m_elapsedButton = 0.0f;
      m_isPushingButton = false;
    }
  }

  if (m_isPickingPortal) {
    m_elapsedPortal += DeltaSeconds;
    float t = 1.0f - (m_elapsedPortal / 1.2f);
    Mesh->SetRelativeScale3D(FVector(t, t, t));
    if (m_elapsedPortal >= 0.6f) {
      m_elapsedPortal = 0.0f;
      m_isPickingPortal = false;
      Mesh->SetRelativeScale3D(FVector(1, 1, 1));
    }
  }

  if (m_isPickingAltar) {
    m_elapsedAltar += DeltaSeconds;
    if (m_elapsedAltar >= 0.7f) {
      m_elapsedAltar = 0.0f;
      m_isPickingAltar = false;
    }
  }

  //get last position for this frame.
  m_lastPosition = GetActorLocation();
  float value = 0.0f;
  if (isInputEnabled())
    value = UpdateState();
  else{
    value = 0;
    m_doJump = false;
  }

  DoMovement(DeltaSeconds, value);
  if (!m_isPickingPortal) {
    DoJump(DeltaSeconds);
    CalculateGravity(DeltaSeconds);
  }
  CheckCollision();
  CalculateOrientation();
}