Ok erledigt || Bild von rechts nach links wandern lassen



  • Hey leute, ich versuche grade ein kleines 2D game zuerstellen läuft ansich auch alles ganz gut versuche nur aktuell noch das sich die extra monster hin und her bewegen können das hab ich so versucht:

    bool mmove = true;  //bewegrichtung
    int movevar = 50;   // noch zulaufende entfernung
    
    int drawmob(BITMAP *where, int x)
    {
      int move = 0;
      if ( (mmove) & (movevar >= 0) )
      {
               movevar -= 5;
               move += 5; 
      } 
      else if( (!mmove) & (movevar >= 0) )
      {
               movevar += 5;
               move -= 5; 
      } 
      else 
      {
           movevar = 50;
           if (mmove) mmove = false;  //richtungswechsel
           else mmove = true;
      }
    
      BITMAP *Mob;
      Mob = load_bitmap("Mob.bmp", NULL);
      draw_sprite(where, Mob, 300 + x + move, 335);   
    }
    

    allerdings läuft das monster so wies aussieht nur einmal nach links und bleibt stehen jemand ne idee? oder evtl ne andere lösungsidee?

    mfg friedrich

    Edit: ok danke habs jetzt so gelöst:

    int movevar = 0;
    bool movetype = true;
    
    int drawmob(BITMAP *where, int x)
    {
      if (movetype) 
      {
                    movevar++;
                    if (movevar >= 20) movetype = false;
      }
      else 
      {
                    movevar--;
                    if (movevar <= 0) movetype = true;
    }  
      BITMAP *Mob;
      Mob = load_bitmap("Mob.bmp", NULL);
      draw_sprite(where, Mob, 300 + x + movevar * 2, 335);   
    }
    

  • Mod

    1. & ist kein logisches und. Nimm && oder and
      2. In Zeile 14 soll wohl auch -= statt += stehen


  • danke aufjedenfall schonmal für die antwort
    zu 1. danke sofort geändert^^
    zu 2. ne ist schon richtig so wenn die noch zu laufende strecke sinkt soll
    die gelaufene strecke steigen

    insgesamt klappts leider dennoch noch nicht


  • Mod

    friedrich schrieb:

    zu 2. ne ist schon richtig so wenn die noch zu laufende strecke sinkt soll
    die gelaufene strecke steigen

    Ja, wenn du auf einmal die Abfrage an movevar umdrehst (dein 2. Quelltext), dann ist das natürlich nicht richtig. Aber im ersten Quelltext war dies der Fehler, da du dort auf größer 0 geprüft hast.



  • ahh ok jetzt seh ichs auch in der 2. if abfrage hättes <= sein müssen ok hätt ich mirs umschreiben sparen können^^


Anmelden zum Antworten