コード例 #1
0
void Charmander::fireAtEnemies()
{
    int enemyCount = 0;
	for( int i = 0; i < m_Level->getEnemies().size(); i++)
    {
        Enemy* enemy = m_Level->getEnemies().at(i);
        
        if(enemy != NULL && enemy->getIsActive() == true)
        {
            if(MathUtils::withinRange(enemy->getX(),getX(),450.0f) == true || MathUtils::withinRange(enemy->getY(),getY(),450.0f == true))
            {
                enemyCount++;
                Tile* targetTile = m_Level->getTileForPlayer(enemy);
                float centerX = targetTile->getX() + (targetTile->getWidth() / 2.0f);
                float centerY = targetTile->getY() + (targetTile->getHeight() / 2.0f);
                
                if(enemyCount == 1)
                {
                    if(enemy->getIsActive() == true && getIsActive() == true)
                    {
                        fireProjectile(centerX, centerY,"FireBall",500.0f,3);
                    }
                }
                else
                {
                    break;
                }
                
            }
        }
    }
}
コード例 #2
0
void COpcProcessVar::sendItemData(){
  try{
    if (getIsActive())
      m_pOpcItem->writeSync(updateValue());
  } catch (OPCException e){
    setIsActive(false);
  }
}
コード例 #3
0
ファイル: RemoteControl.cpp プロジェクト: koboldul/Football
void RemoteControl::startShooting(ObserverData* param)
{
    if (getIsActive())
    {
        _state.needsSync = false;
        CCNotificationCenter::sharedNotificationCenter()->postNotification(RESOLVE_SHOOT, param);
        CCLog("wtf is going on why no shoot");
        _state.hasShoot = false;
    }
}
コード例 #4
0
ファイル: CaseBase.cpp プロジェクト: Arsakes/ember
void CaseBase::evaluateChanges(ChangeContext& changeContext)
{
	//if we're true to the root, but not yet active, add ourself to the activation queue. If the opposite, i.e. we're no longer true to the root but active, we need to be deactivated.
	if (getIsTrueToRoot()) {
		if (!getIsActive()) {
			changeContext.addCaseToActivate(this);
		}
	} else {
		if (getIsActive()) {
			changeContext.addCaseToDeactivate(this);
		}
	}
	//recursively iterate over the child matches
	MatchBaseStore::iterator I = mMatches.begin();
	for ( ; I != mMatches.end(); ++I) {
		(*I)->evaluateChanges(changeContext);
	}

}
コード例 #5
0
ファイル: Ball.cpp プロジェクト: bouc0277/Assignment-2.1
void Ball::checkCollision(GameObject* aGameObject)
{
	//Make sure the ball is active, the gameObject isn't NULL and that it is also active
	if(getIsActive() == true && aGameObject != NULL && aGameObject->getIsActive() == true)
	{
		//Determine if the gameObject is a Paddle
		if(strcmp(aGameObject->getType(), GAME_PADDLE_TYPE) == 0)
		{
			handlePaddleCollision((Paddle*)aGameObject);
		}
	}
}
コード例 #6
0
ファイル: RemoteControl.cpp プロジェクト: koboldul/Football
void RemoteControl::transferData(ObserverData* param)
{
    if (!getIsActive())
    {
        if (sgl_ConnectionManager.getState() == STATE_JOINED || sgl_ConnectionManager.getState() == STATE_CREATED_JOINED)
        {
            NetworkData ndata;
			std::map<int,float>* data = new std::map<int,float>();

			data->insert(std::pair<int,float>(1, param->getSpeed().x * 0.7f));
			data->insert(std::pair<int,float>(2,  param->getSpeed().y * 0.7f));

			ndata.setData(data);
                        
            sgl_ConnectionManager.sendEvent(ndata, kShoot);
            
            _state.needsSync = true;
        }
    }
}
コード例 #7
0
ファイル: RemoteControl.cpp プロジェクト: koboldul/Football
void RemoteControl::update(CCPoint pos, b2Vec2 speed)
{
    if (!getIsActive() && _state.needsSync)
    {
        if (sgl_ConnectionManager.getState() == STATE_JOINED || sgl_ConnectionManager.getState() == STATE_CREATED_JOINED)
        {
            
            CCPoint relp = TerrainMap::getInstance().getRelativeCoordinatesFromPoint(pos);
			
			std::map<int,float>* data = new std::map<int,float>();

			data->insert(std::pair<int,float>(4, relp.x));
			data->insert(std::pair<int,float>(5, relp.y));
			data->insert(std::pair<int,float>(1, speed.x));
			data->insert(std::pair<int,float>(2, speed.x));

			_lastData->setData(data);
            
            sgl_ConnectionManager.sendEvent(*_lastData, kPositionSync);
        }
    }
}
コード例 #8
0
void AnimTimeSensor::frame(Time oTime, UInt32 uiFrame)
{
    Time startT = _sfStartTime  .getValue();
    Time stopT  = _sfStopTime   .getValue();
    Time currT  = _sfTime       .getValue();

    Time length = _sfCycleLength.getValue();
    Time deltaT = 0.0;

    setTime(oTime);

    if(getEnabled() == false)
    {
        if(getIsActive() == true)
        {
            setIsActive(false);
        }

        return;
    }

    if(startT < stopT)
    {
        if(oTime < startT)
        {
            if(getIsActive() == true)
            {
                SLOG << "ATS: start < stop, BEFORE startT, deactivating" << std::endl;

                setFraction(0.f  );
                setAnimTime(0.f  );
                setIsActive(false);
            }

            return;
        }
        else if(oTime > stopT)
        {
            if(getIsActive() == true)
            {
                SLOG << "ATS: start < stop, AFTER stopT";

                setFraction(1.f   );
                setAnimTime(length);

                // only deactivate the second time oTime > stopT
                // to propagate the final state
                if(currT > stopT)
                {
                    PLOG << ", deactivating";

                    setIsActive(false);
                }

                PLOG << std::endl;
            }

            return;
        }
        else
        {
            if(currT <= 0.0)
            {
                deltaT = oTime - startT;
            }
            else
            {
                deltaT = oTime - currT;
            }
        }
    }
    else
    {
        if(oTime < startT)
        {
            if(getIsActive() == true)
            {
                SLOG << "ATS: start >= stop, BEFORE startT, deactivating" << std::endl;

                setFraction(0.f  );
                setAnimTime(0.f  );
                setIsActive(false);
            }

            return;
        }
        else
        {
            if(currT <= 0.0)
            {
                deltaT = oTime - startT;
            }
            else
            {
                deltaT = oTime - currT;
            }
        }
    }

    // use deltaT to update

    Real32 oldAnimT = getAnimTime();
    Real32 newAnimT = getAnimTime();

    if(getForward() == true)
    {
        newAnimT += getTimeScale() * deltaT;
    }
    else
    {
        newAnimT -= getTimeScale() * deltaT;
    }

    if(getLoop() == true)
    {
        newAnimT = osgMod<Real64>(newAnimT, length);
        
        while(newAnimT < 0.f)
            newAnimT += length;

        setAnimTime(newAnimT         );
        setFraction(newAnimT / length);

        if(getIsActive() == false)
            setIsActive(true);
    }
    else
    {
        if(newAnimT < 0.f)
        {
            if(getIsActive() == true)
            {
                SLOG << "ATS: start >= stop, newAnimT < 0";

                setAnimTime(0.f);
                setFraction(0.f);

                // only deactivate the second time newAnimT < 0.f
                // to propagate the final state
                if(oldAnimT <= 0.f)
                {
                    PLOG << ", deactivating";

                    setIsActive(false);
                }

                PLOG << std::endl;
            }
        }
        else if(newAnimT > length)
        {
            if(getIsActive() == true)
            {
                SLOG << "ATS: start >= stop, newAnimT > length";

                setAnimTime(length);
                setFraction(1.f   );

                // only deactivate the second time newAnimT > length
                // to propagate the final state
                if(oldAnimT >= length)
                {
                    PLOG << ", deactivating";

                    setIsActive(false);
                }

                PLOG << std::endl;
            }
        }
        else
        {
            setAnimTime(newAnimT         );
            setFraction(newAnimT / length);

            if(getIsActive() == false)
                setIsActive(true);
        }
    }
}