Einzelnen Beitrag anzeigen

Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
265 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Gegner auf Spielfeld richtig positionieren

  Alt 12. Okt 2010, 14:55
Gut habs geändert. Flackert nicht mehr
Doch leider bleibt das Bild stehen wenn ich mit der Maus über die Paintbox gehe. Wodran könnte das liegen?

BTMT

HAB DIE LÖSUNG!
Ok nur noch ein Problem, wenn er von unten nach oben und dann nach rechts muss, biegt er wieder zu früh ab^^

Delphi-Quellcode:

procedure TFormMain.moveEnemies(value: TGameStatus);
var k: integer;
  fieldX, fieldY,PosX, PosY: Integer;
begin
  for k := 0 to High(EnemyManager.enemys[FPlayerLevel]) do
  begin
    if EnemyManager.enemys[FPlayerLevel][k].isRunning then
    begin
        fieldX := (EnemyManager.enemys[FPlayerLevel][k].PosX -7) div 32;
        fieldY := (EnemyManager.enemys[FPlayerLevel][k].PosY -7) div 32;
      case map.Playground[fieldX][fieldY].nextField of
        nfDown: EnemyManager.moveEnemy(EnemyManager.enemys[FPlayerLevel][k],nfDown);
        nfRight: EnemyManager.moveEnemy(EnemyManager.enemys[FPlayerLevel][k],nfRight);
        nfStay:
        begin
          EnemyManager.enemys[FPlayerLevel][k].isRunning := false;
          Dec(FPlayerLives);
          initLabels;
          if FPlayerLives = 0 then
          begin
            SetGameStatus(gsGAMEOVER);
            exit;
          end;
        end;
        else
        begin
          fieldX := (EnemyManager.enemys[FPlayerLevel][k].PosX +23) div 32;
          fieldY := (EnemyManager.enemys[FPlayerLevel][k].PosY +23) div 32;
          case map.Playground[fieldX][fieldY].nextField of
            nfLeft: EnemyManager.moveEnemy(EnemyManager.enemys[FPlayerLevel][k],nfLeft);
            nfUp: EnemyManager.moveEnemy(EnemyManager.enemys[FPlayerLevel][k],nfUp);
          end;
        end;

      end;
    end;
  end;
end;

Geändert von pustekuchen (12. Okt 2010 um 16:02 Uhr)
  Mit Zitat antworten Zitat