コード例 #1
0
ファイル: Puce.cpp プロジェクト: metalcolic/Game-01
void Puce::update(Map* map)
{


    recupererVecteur();

    if(_etat == SAUT)
    {
        _saut -= _vitesseChute;
        _vy = (_vy - _saut ) *_montre.getElapsedTime().asMilliseconds();
    }
    else
     {
         _vy = (_vy + _gravite) *_montre.getElapsedTime().asMilliseconds();
         _saut = 1.25f;
     }

    _vx *= _montre.getElapsedTime().asMilliseconds();



    deplace(map, &_image, _vx , _vy);


    _montre.restart();



}
コード例 #2
0
void ManagerArbre::modifyStableUnstable(const Arbre & node)
{
    Arbre nodeBdd(node.id());
    get(nodeBdd);
    int max = fonctionAgrega<int>(bdd::Agrega::Max,Arbre::Num,Arbre::Parent,node.parent());
    if(node.num() < 0 || node.num() > max)
        ManagerSqlArbre::modify(Arbre(nodeBdd.feuille(),max+1,node.parent(),node.id()));
    else
    {
        if(deplace(node))
            ManagerSqlArbre::modify(node);
    }

    if(nodeBdd.parent() != 0 && nodeBdd.parent() != node.parent())
    {
        if(exists(Arbre::Parent,nodeBdd.parent()))
        {
            ListPtr<Arbre> nodes(getList(Arbre::Parent,nodeBdd.parent(),Arbre::Num,nodeBdd.num(),Arbre::Num,bdd::Condition::Egal,bdd::Condition::Sup));
            for(ListPtr<Arbre>::iterator i = nodes.begin(); i != nodes.end(); ++i)
            {
                (*i).setNum((*i).num() - 1);
                ManagerSqlArbre::modify((*i));
            }
        }
        else
        {
            Arbre parent(nodeBdd.parent());
            get(parent);
            parent.setFeuille(true);
            ManagerSqlArbre::modify(parent);
        }
    }
}
コード例 #3
0
void ManagerArbre::modifyUnstable(const Arbre & node)
{
    Arbre nodeBdd(node.id());
    get(nodeBdd);
    int max = fonctionAgrega<int>(bdd::Agrega::Max,Arbre::Num,Arbre::Parent,node.parent());
    if(node.num() < 0 || node.num() > max)
        ManagerSqlArbre::modify(Arbre(nodeBdd.feuille(),max+1,node.parent(),node.id()));
    else
    {
        if(deplace(node))
            ManagerSqlArbre::modify(node);
    }

    if(node.parent() != nodeBdd.parent())
    {
        if(!exists(Arbre::Parent,nodeBdd.parent()))
        {
            Arbre nodeBddParent(nodeBdd.parent());
            get(nodeBddParent);
            nodeBddParent.setFeuille(true);
            ManagerSqlArbre::modify(nodeBddParent);
        }

        Arbre nodeParent(node.parent());
        get(nodeParent);
        if(nodeParent.feuille())
        {
            nodeParent.setFeuille(false);
            ManagerSqlArbre::modify(nodeParent);
        }
    }
}
コード例 #4
0
ファイル: fourmi.c プロジェクト: almacha/fourmi
/* effectue un tour */
static void tour(void) {
  int i, j;
  kase *k = NULL;

  /* on remet a 0 les flags "fait" */
  for (i=0; i<20; i++) {
    for (j=0; j<20; j++) {
      kor(i,j)->fait = 0;
    }
  }

  /* on traite maintenant chaque case */
  for (i=0; i<20; i++) {
    for (j=0; j<20; j++) {
      k = kor(i,j);

      /* on diminue la pheromone de sucre */
      if (k->ph_sucre >= 5) {
	k->ph_sucre -= 5;
      } else if (k->ph_sucre) {
	k->ph_sucre = 0;
      }

      /* on ne fait rien si la case est deja traitee */
      if (kor(i,j)->fait) {
	continue;
      }

      /* on essaye chaque regle de 1 a 6
       * (priorite la + haute a la + faible)
       */
      if (!charge(i,j)) {
	if (!depose(i,j)) {
	  if (!achemine(i,j)) {
	    if (!remonte(i,j)) {
	      if (!retourve(i,j)) {
		deplace(i,j);
	      }
	    }
	  }
	}
      }

      /* fin de traitement de cette case */
    }
  }
}
コード例 #5
0
void ManagerArbre::addUnstable(Arbre &node)
{
    if(node.feuille())
    {
        if(node.parent())
        {
            Arbre parent(node.parent());
            get(parent);
            if(parent.feuille())
            {
                if(node.num())
                    throw std::invalid_argument("Le premier descendnat doit avoir un numéro nul.");
                else
                    ManagerSqlArbre::add(node);
                parent.setFeuille(false);
                ManagerSqlArbre::modify(parent);
            }
            else
            {
                int max = fonctionAgrega<int>(bdd::Agrega::Max,Arbre::Num,Arbre::Parent,node.parent());
                if(node.num() < 0 || node.num() > max)
                {
                    node.setNum(max+1);
                    ManagerSqlArbre::add(node);
                }
                else
                {
                    deplace(node);
                    ManagerSqlArbre::add(node);
                }
            }
        }
        else
        {
            if(node.num())
                throw std::invalid_argument("Une racine doit avoir un numéro nul.");
            else
                ManagerSqlArbre::add(node);
        }
    }
    else
        throw std::invalid_argument("Le nouveau noeud ajouté doit être une feuille.");
}
コード例 #6
0
ファイル: ennemi.cpp プロジェクト: libcg/TowerDefense
void Ennemi::logique()
{
    deplace();
}