Oppure

Loading
27/02/20 15:03
Thejuster
Per la versione Beta sono disponibili ancora funzioni povere ma in via di sviluppo.

Basta trascinare il componente Engine nel Form.
Di seguito all'initialize o al form load è necessario instanziare alcune funzionalità basilari.


//Initializing Engine
            engine1.OnGameDraw += new GDIEngine.Engine.GameDraw(engine1_OnGameDraw);

            //Create a Default 2D Camera
            Camera2D viewport = new Camera2D(0f, 0f);

            //Assign default Camera Viewport
            engine1.Camera = viewport;

            //Assign Clear Color ( Default is Black )
            engine1.ClearColor = Color.CornflowerBlue; 

            //Assign Graphics Setting
            engine1.DeviceQualityRendering = Engine.QualitySetting.Antialasing | Engine.QualitySetting.HighQuality;

            //Instantiate Content Manager for managed Resource and More.
            AssetManager ContentManager = new AssetManager();

            engine1.ContentManager = ContentManager;

            //Load Texture FromFile into Manager
            engine1.ContentManager.LoadFromFile<Texture2D>("example.png");




Esempio del Draw


        //Temp variable
        Vector2 vec = new Vector2(100, 100);
        float WorldX = 0f;
        float WorldY = 50f;

        /// <summary>
        /// Game Update Cycle
        /// </summary>
        void engine1_OnGameDraw()
        {

            engine1.DrawString("Text Position = " + vec.X + " : " + vec.Y, new Vector2(10, 10), Color.Yellow, 12);

            engine1.DrawString("Hello World", vec);
            engine1.Camera.X = WorldX;
            engine1.Camera.Y = WorldY;

            engine1.DrawTexture(engine1.ContentManager.TextureList[0], new Vector2(10, 10));

        }



Le texture vengono tenute in memoria sottoforma di Bytes Array.
Di conseguenza è possibile serializzare un Atlas che gestisce gran parte delle texture
e recuperare la sequenza di bytes in modo da risparmiare memoria.

Semplice ScreenShoot Hello World Style XNA.

Il Metodo OnGameDraw è già in Loop quindi non serve avviare nessun Timer o Refresh.
Basta semplicemente scrivere il codice di draw nel void.
Ultima modifica effettuata da Thejuster 27/02/20 15:25
mire.forumfree.it/ - Mire Engine
C# UI Designer
03/03/20 8:27
Thejuster
Nel nuovo aggiornamento Beta 1.1
E' disponibile il nuovo metodo TiledTexture

Ovvero,
Si può caricare una Texture divisa in più frame.

Specificando al Loader il numero di Frame sia in Larghezza che in lughezza le texture vengono suddivise in frame automaticamente

Esempio:


engine1.ContentManager.LoadFromFile<TiledTexture>(@"Data\TiledSprite\TileSheet.png");


//al GameUpdate
engine1.DrawTexture(engine1.ContentManager.TiledTextureList[0],frame,new Vector2(x,y));





* Aggiunto lo zoom
* Metodi DrawTexture inerenti al TiledTexture

Nel zip è presente anche un progetto di prova
che mostra una mezza mappa di pacman caricata ed ampliata mediate il TiledTexture.

Ovviamente per mappe grandi è sconsigliato questo metodo.
Conviene disegnare l'itera mappa di gioco su una singola Texture ed in seguito gestire le varie collisioni e movimenti
mire.forumfree.it/ - Mire Engine
C# UI Designer