BitmapFontEngineUPDATE

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Benutzeravatar
darius676
Beiträge: 501
Registriert: 08.03.2010 22:12
Computerausstattung: Intel i5 16GB RAM nVidia 1050, Win11
Atari Jaguar, Surface Pro 5,Surface Laptop i5 7200, XBOX ONE X, XBOX Series X
Wohnort: AT
Kontaktdaten:

BitmapFontEngineUPDATE

Beitrag von darius676 »

Guten Tag. (download link immer in meinem letzten post)

Nachdem doch viele Diskussionen um dieses Thema kreis(t)en:
Anbei ein kleiner Beitrag zum Thema Bitmapfonts: (Projekt/Konzept)

Bitte beachten: dies ist ein Konzept, welches als Denkanstoss/Ideenlieferant gedacht ist, weder "komplett" noch "vollständig", jedoch funktionstüchtig und nicht als "Lehrbeispiel".

Ich hasse starre Konzepte, deshalb hab ich vor einiger Zeit mit meiner eigenen „GameEngine“ (LUCY/IN_GRID) begonnen.
Ziel war und ist es möglichst flexible Strukturen zu schaffen.
Als ich vor dem „Problem“ stand einen Grafikfont für meine Engine/Spiel zu verwenden
habe ich das beigefügte System entwickelt.
Ich entschuldige mich vorweg für die schlechte Dokumentation (wenn ich so im Fluss bin geht Doku mal unter). Weiters ist die PB Version schon a bisserl „angestaubt“ (4.0) sollte aber für das Konzept egal sein.
Source und Beispiel basieren auf Kernkomponenten der „IN_GRID“ Engine

Warum:
Vorteile:
Ihr könnt alle Arten von Grafiken als Font verwenden. Es wird kein „Creator“ benötigt, jedes
Grafikprogramm ist geeignet.


Grafiken alle in den Ordner „GFXFONT“ legen. „FONT“ Datei mit Editor beliebig erweitern.
Ausnahmen für nicht als Dateinamen geeignete Bezeichnungen einfach im code hinzufügen und ersetzungen festlegen z.B.: „.“ als „POINT“, „PUNKT“ oder was auch immer abspeichern und im Code entsprechend berücksichtigen.

Die Umwandlung der Grafiken in 3DSprites ermöglicht, das Skalieren/anpassen an die aktuelle
Bildschirmauflösung des Benutzers.
Einfach in der Ini Datei nach der Position:

…..
SOURCEWIDTH
1680
SOURCEHEIGHT
1050
…...

suchen und durch die Werte der Desktopauflösung des Entwickler Computers ersetzen, falls keine Skalierung auf dem Entwicklersystem gewünscht ist (bei mir sind es eben die 1680 x 1050) der Text wird daher an alle Auflösungen <> obiger angepasst

Kurzbeschreibung der Routinen:
__LOADGFXFONT() ;basisroutine für den "dynamischen font" --->"FONT_ENGINE.pbi"
ohne Parameter.

__ANALYSE_GFX_TEXT(_text$) ,beliebiger Text (String)
Steuerzeichen: | ende des Textes, \ nächste Zeile.
Achtung INMMER | angeben, ansonsten wird der Text nach unten weggescrollt, sobald \ verwended wird, | fixiert den Text


Gruß Walter


Der Code in vorliegender Form kann beliebig verändert und weitergegeben werden.
(Hinweis auf den Urheber/Idee erwünscht)
Zuletzt geändert von darius676 am 14.03.2012 21:55, insgesamt 4-mal geändert.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: BitmapFontEngine (Konzept)

Beitrag von STARGÅTE »

darius676 hat geschrieben:Vorteile:
Ihr könnt alle Arten von Grafiken als Font verwenden. Es wird kein „Creator“ benötigt, jedes
Grafikprogramm ist geeignet.
Das ist in meinen Augen nur dann ein Vorteil, wenn ich beim "Schreiben" garkein Text erhalten möchte, sonden eine aneinander Reihung von Bildern. Also genau dann, wenn Buchstaben in Wirklichkeit für Grafiken stehen:
"A" für Auto, "B" für Baum und "AB" dann ein Auto und eine Baum erzeugt.

Dein Konzept ist kein Vorteil, wenn es wirklich um echte Fonts geht (die im Unicode auch mal über 1000 Zeichen beinhalten können). Die Zeichen-Bildchen dann nicht in einem Container zu haben ist dann er hinderlich.
Aber ist ist dein Konzept, du wirst sicher deine Vorteile haben.

Ein Nachteil ist jedoch, dass du die Breite des Bilds als Zeichenbreite nutzen musst. So sind keine "Überlappungen" möglich.

Vorteil ist jedoch wirklich, dass Leute die per Hand jedes Zeichen "bauen", so ihre Font einfach modifizieren können.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: BitmapFontEngine (Konzept)

Beitrag von Derren »

Kann sich doch jeder selber um seinen Container kümmern.
Manch einer mag zip, ein anderer hat sich selber einen Container für sein Spiel gebaut.
Wie die Bildchen in den Speicher kommt, bzw woher sie kommen sit doch eigtl. nebensächlich.

Deine Exe lädt erstmal 5 Sekunden (ladender Mauszeiger), dann passiert gar nix. Rennt aber fleißig im Hintergrund weiter.
Den Code kann ich nicht probieren, da ich momentan keine Lust habe den auf 4.6 anzupassen.

Desweiteren sei gesagt, dass die "ini" DAtei gar keine ini Datei ist, sondern ini.crc heißt und sich im "core" ordner befindet, für alle die die Datei cshon verzeifelt gesucht haben :P
Signatur und so
Benutzeravatar
darius676
Beiträge: 501
Registriert: 08.03.2010 22:12
Computerausstattung: Intel i5 16GB RAM nVidia 1050, Win11
Atari Jaguar, Surface Pro 5,Surface Laptop i5 7200, XBOX ONE X, XBOX Series X
Wohnort: AT
Kontaktdaten:

Re: BitmapFontEngineUPDATE

Beitrag von darius676 »

Liebe PB Gemeinde!

14032012:
Fehler im Keyboardhanling behoben (wurde ausserhalb der Hauptschleife abgefragt), das kommt davon, wenn ich meine Engine zerpflücke....*g*
Starten und beenden sollten nun problemlos funktionieren.
Erweiterung des Fontsystems. Texte aus Dateien können nun importiert werden.
Sonderzeichen werden übersprungen, bzw. Zeichen für die es noch keine Datei gibt werden nicht angezeigt.
Fontgrösse kann definiert weden über Skalierungsfaktor <=1 oder >=1

Demo für simple Fontrotation integriert
Taste [R] halten um Zeichen zu drehen.

diese kleinen Änderungen sollen <stargate> "lügen strafen" >:) , dass bei diesem System keine Vorteile zu erkennen sind.

Danke fürs testen!

download: (zip Datei) ~300KB
https://skydrive.live.com/?cid=6F5D709B ... B241%21121
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: BitmapFontEngineUPDATE

Beitrag von Derren »

Geht immernoch nicht.
Vielleicht solltest du Fehlermeldungen in deine Demos einbauen?
So hab ich keinen Anhaltspunkt was nicht geht.
Anscheinend lädt es irgendwas, aber öffnet keinen Screen.
Signatur und so
Benutzeravatar
darius676
Beiträge: 501
Registriert: 08.03.2010 22:12
Computerausstattung: Intel i5 16GB RAM nVidia 1050, Win11
Atari Jaguar, Surface Pro 5,Surface Laptop i5 7200, XBOX ONE X, XBOX Series X
Wohnort: AT
Kontaktdaten:

Re: BitmapFontEngineUPDATE

Beitrag von darius676 »

:oops:

und Parasite2 funzt dasss bei dir?
(download ZIP Archive ~50MB)
https://skydrive.live.com/?cid=6F5D709B ... B241%21121
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: BitmapFontEngineUPDATE

Beitrag von Derren »

Nein. Gleiches Problem.
Signatur und so
Benutzeravatar
darius676
Beiträge: 501
Registriert: 08.03.2010 22:12
Computerausstattung: Intel i5 16GB RAM nVidia 1050, Win11
Atari Jaguar, Surface Pro 5,Surface Laptop i5 7200, XBOX ONE X, XBOX Series X
Wohnort: AT
Kontaktdaten:

Re: BitmapFontEngineUPDATE

Beitrag von darius676 »

System?

Hatte Gelegenheit "IN_GRID" auf unterschiedlichen Rechnern zu testen. WinXP bis Win7 (32/64)Bit, bis auf den "Hänger" nach dem Beenden konnte ich keinen Fehler feststellen. Parasite verfügt über Errorhandling und
gibt Fehlermeldungen aus (Speicherzugriffe usw.)
:coderselixir:
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: BitmapFontEngineUPDATE

Beitrag von Derren »

Windows 7 Home Premium 32 bit.

Vlt. liegt's an dem Subsystem? In deinem Code von der bitmapfont war DX9 eingetragen. Beim Versuch das zu kompilieren kam erstmal der Fehler, dass das Subsystem nicht gefunden wurde.
DxDiag hat geschrieben:------------------
System Information
------------------
Time of this report: 3/14/2012, 21:56:29
Machine name: HP
Operating System: Windows 7 Home Premium 32-bit (6.1, Build 7600) (7600.win7_gdr.111025-1503)
Language: German (Regional Setting: German)
System Manufacturer: Hewlett-Packard
System Model: Compaq 615
BIOS: Default System BIOS
Processor: AMD Athlon(tm)X2 DualCore QL-66 (2 CPUs), ~2.2GHz
Memory: 2048MB RAM
Available OS Memory: 1788MB RAM
Page File: 1562MB used, 2015MB available
Windows Dir: C:\windows
DirectX Version: DirectX 11
DX Setup Parameters: Not found
User DPI Setting: Using System DPI
System DPI Setting: 96 DPI (100 percent)
DWM DPI Scaling: Disabled
DxDiag Version: 6.01.7600.16385 32bit Unicode
Signatur und so
Benutzeravatar
darius676
Beiträge: 501
Registriert: 08.03.2010 22:12
Computerausstattung: Intel i5 16GB RAM nVidia 1050, Win11
Atari Jaguar, Surface Pro 5,Surface Laptop i5 7200, XBOX ONE X, XBOX Series X
Wohnort: AT
Kontaktdaten:

Re: BitmapFontEngineUPDATE

Beitrag von darius676 »

Ach..am besten wärs für Spielkonsolen zu entwickeln, dort funzt es dann auf jeder der Konsolen....
Hab das Ding heute durch 4 Rechner gelassen ohne Probleme. Parasite2 hat bei diesen auch funktioniert. schau ma mal *g*

wundern tut mich nur, dass eine der ersten Parasite versionen bei dir funktioniert hat...
blockiert ein virenscanner? oder ähnliches?


Edit: Neue Version mit ....IGP im Namen, diese Version versucht die Sprites in den Hauptspeicher zu laden. Vll. Hilfts????
https://skydrive.live.com/?cid=6f5d709b ... B241%21121
Antworten