AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte UT2D - 2D-Shooter mit UTStyle
Thema durchsuchen
Ansicht
Themen-Optionen

UT2D - 2D-Shooter mit UTStyle

Ein Thema von olee · begonnen am 16. Feb 2008 · letzter Beitrag vom 23. Sep 2008
Antwort Antwort
Benutzerbild von olee
olee

Registriert seit: 16. Feb 2008
Ort: Boppard
540 Beiträge
 
Turbo Delphi für Win32
 
#1

Re: UT2D - 2D-Shooter mit UTStyle

  Alt 20. Feb 2008, 16:01
Uff das wird hart.


Ich habe nun vor, die ganze Steuerung des Spiels in Objekte zu gliedern.

D.h. dass ich fast den kompletten Code aus einzelnen Abschnitten in wenige
Objekte und Prozeduren zusammenfassen muss.

Hier mal ein Beispiel, wass alles "ausgelagert werden soll:
Delphi-Quellcode:

  TGameEngine = class;

  TGameMode = class
    Owner: TGameEngine;
  public
    constructor Create(AOwner : TGameEngine);
    procedure PreMove ; virtual;
    procedure AfterMove ; virtual;
    procedure AfterDraw ; virtual;
    procedure PlayerMove(APlayer: TPlayer ); virtual;
    procedure Bot (APlayer: TPlayer ); virtual;
    procedure LoadLevel (Options: TGameOptions ); virtual;
  end;

  TCTFGame = class (TGameMode)
  public
    procedure PreMove ; override;
    procedure AfterMove ; override;
    procedure AfterDraw ; override;
    procedure PlayerMove(APlayer: TPlayer ); override;
    procedure Bot (APlayer: TPlayer ); override;
// procedure LoadLevel (Options: TGameOptions ); override;
  end;

  TGameSettings = record
    GameStart : TTime;
    GameTime : Single;
    GameEnd : Single;
    RoundTime : Single;
    frindlyfire : Boolean;
    DoSpectate : Boolean;
    RespawnTime : Integer;
    TeamCount : Integer;
    GameMode : TGameMode;
    showWaypoints : Boolean;
    //================================
    CTFFlags : Array[0..3] of TCTFFlag;
    CTFFlagBases : Array[0..3] of TCTFFlagBase;
    PLStartsCount : Integer;
    PLStarts : Array [0..50] of TPlayerStartSpot;
  end;

  TGameEngine = class
    SEngine : TSpriteEngine;
    Input : TDXInput;
    Sounds : TDXWaveList;
    Images : TDXImageList;
    //================================
    Players : TList;
    ControllingPlayer : TPlayer;
    Ground : TImageSprite;
    BackGround : TBackGroundSprite;
    //================================
    MPos : TPoint;
    Enabled : Boolean;
    Settings : TGameSettings;
    constructor Create (SEngine: TSpriteEngine; DXInput: TDXInput; DXSounds: TDXWaveList; DXImages: TDXImageList);
    procedure GameTic;
    procedure DestroyGame;
    procedure ControllPlayer(Player: TPlayer);
    function GetPlayerStart(Team: Integer): TPoint;
    procedure DealDamage(XX,YY: Single; Damage: TDamage; PlayerID: Integer);
    function MissleHit(HitX,HitY: Single; Damage: TDamage): Boolean;
  end;
Wie man sieht wird dadurch sogar die Steuerung der Bots durch das Objekt TGameMode geregelt, was später die erstellung eines neuen Spielmodus sehr erleichtern soll und natürlich den gesamten Ccode übersichtlicher machen soll.

Was haltet ihr denn davon?


MFG
Björn Zeutzheim
Codename: Performancepumpe
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz