Einzelnen Beitrag anzeigen

OSIcreate

Registriert seit: 25. Mär 2008
16 Beiträge
 
#7

Re: Jump and Run Game [Andora 2D Engine]

  Alt 1. Apr 2008, 14:25
Zum Beispiel hab ich hier n Fehler beim erzeugen eines Testbildes praktisch ein Hintergrundstein im Spiel

TSteinII is ne eigen Klasse die ich mir gemacht hab

Delphi-Quellcode:
  //------- Spielfeld ------
  imgHintergrund := dat.getHinteg(dat.getlevel(0).gethintergrund);
  //feld.createlevel(dat,0,adSpriteEngine);

  test := TSteinII.Create(adSpriteEngine);
  test.initialize(0,0,-150,2,0);
  test.Image := dat.getSteine(2);


  //yoda := TFigure.create(dat.getFigureimg,0,panSpielfeld);
  //yoda.imgAnzeige.Left := 30;
  //yoda.imgAnzeige.top := 300;
beim Create des TSteinII

Delphi-Quellcode:
unit USteinII;

interface

uses
  AdDraws, AdClasses, AdTypes, AdSprites;

type

  TSteinII = class(TBackgroundSprite)
  private
    X : integer;
    Y : integer;
    wert : integer;
    spezial : integer;
  protected
    procedure DoMove(TimeGap: double);override;
  public
    XSpeed:integer;
    constructor Create(AParent: TSprite);override;
    procedure initialize(posx,posy,speed,wert,speziale : integer);
    procedure SetLine;
  end;

implementation

//------------------------------------------------------------------------------
// On Create
//------------------------------------------------------------------------------
constructor TSteinII.Create(AParent: TSprite);
begin
  inherited;
  X := 0;
  Y := 0;
end;
//______________________________________________________________________________

//------------------------------------------------------------------------------
// Initialize
//------------------------------------------------------------------------------
procedure TSteinII.initialize(posx,posy,speed,wert,speziale : integer);
begin
  self.wert := wert;
  self.XSpeed := speed;
  self.X := posx;
  self.Y := posy;
  self.spezial := speziale;
end;
//______________________________________________________________________________



//------------------------------------------------------------------------------
// Do Move
//------------------------------------------------------------------------------
procedure TSteinII.DoMove(TimeGap: double);
begin
  inherited;

  {//Der Teil aus der Renderprozedur, der sich um die Bewegungen kümmert
  X := X + XSpeed*TimeGap;
  if ((X > Engine.SurfaceRect.Right) and (XSpeed > 0)) or
    ((X < -96) and (XSpeed < 0)) then
  begin
    SetLine;
  end; }

end;
//______________________________________________________________________________


//------------------------------------------------------------------------------
// SetLine
//------------------------------------------------------------------------------
procedure TSteinII.SetLine;
begin
  {//Bewegt die Figur in eine neue Ebene
  XSpeed := -XSpeed;
  if XSpeed > 0 then
  begin
    AnimStart := 0;
    AnimStop := 7;
    X := -96;
  end
  else
  begin
    AnimStart := 8;
    AnimStop := 15;
    X := Engine.SurfaceRect.Right+96;
  end;
  Y := Random(Engine.SurfaceRect.Right-96);  }

end;
//______________________________________________________________________________


end.


Fehler Folgender in der Unit AdSprites bei AParent.Add(self)

Delphi-Quellcode:

procedure TSprite.SetParent(AParent: TSprite);
begin
  if AParent <> nil then
  begin
    FParent := AParent;
    FEngine := FParent.Engine;
    if FParent <> nil then
    begin
      FParent.FList.Remove(Self);
    end;
    AParent.Add(Self);
  end
  else
  begin
    FParent := nil;
    FEngine := nil;
  end;
end;
wo liegt hier der Fehler ich krieg ne Zugriffsverletzung
  Mit Zitat antworten Zitat