Lite-C/Workshop1 04 Text und Strings

Aus Scientia
Version vom 24. Dezember 2011, 14:07 Uhr von Espér (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Grundlagenkurs Schwierigkeitsgrad Stern.png
Autor Espér
Thematik Lite-C
Vorraussetzungen Programme:
3DGS Trial-Version

Free Edition

Fähigkeiten: keine

Andere Teile

Let´s do it. Panels habt ihr gelernt. Aber wie zeigt man nun größere texte, oder sogar Strings an?

Dazu kommen wir nun. TEXT & STRING Workshop.. GOOOOOOOOooooooo!!!!!!!


Vorbereitung

Schnappt euch wieder das Grundscript. Falls ihr es nichtmehr habt, schaut euch nochmal den Grundlagenkurs an, einen Link dazu findet ihr in der rechten Tutorialbox. Und schon gehts weiter...

TEXT

Das Anzeigen von texten mit dem "digits" Befehl mag zwar nett und gut sein. Doch ist die normale verwendung des Text Syntax doch besser.

Fangen wir also an.

Zuerst müssen wir mal das Textelement erstellen. Ich schreibe es mal in den Panelbereich des Scripts:

[...]
//==========================================================================================
////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                          
//                                                          Panels
//                                                                                          
////////////////////////////////////////////////////////////////////////////////////////////
TEXT* test_txt =	
{
  pos_x = 10;
  pos_y = 10;
  layer = 1;
  flags = SHOW;
} 
[...]

Gut..

Wie ihr seht unterscheidet sich das nicht allzu stark von der Panel Konstruktion. Merkt euch aber:

Texte können nicht zur Laufzeit erstellt werden...!


Der Text würde jetzt aber nix anzeigen, da er dafür einen String benötigt. Also schnell weiter zum nächsten Kapitelchen.



STRINGS

Strings sind unser Textspeicher. Er kann bis zu 10.000 Zeichen besitzen.

Und so, erstellt man einen:

//==========================================================================================
////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                          
//                                                 Definitionen und Includings
//                                                                                          
////////////////////////////////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>
 
var testvariable = 3;
 
STRING* test_string = "Ich bin ein Text!!!";
 
[...]

Supereinfach.. oder?

Das schöne daran, ihr könnt sie wie Variablen behandeln. Also sind Strings wie:

STRING* test_string;

Ebenfalls möglich.

Wollt ihr dareind ann auch noch einen text im nachhinein einbinden, müsst ihr wie folgt vorgehen:

//==========================================================================================
////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                          
//                                                         Funktionen
//                                                                                          
////////////////////////////////////////////////////////////////////////////////////////////
function test()
{
  beep();
  testvariable = 999;
  PANEL* testpanel2 = pan_create("",1)
 
  test_string = str_create("Ich bin ein Text!!!!");
 
}


Also dann, auf zum nächsten Kapitelchen, um Text und String zu verbinden.



STRINGS IN TEXTEN ANZEIGEN

Das ist wohl der einfachste Teil am Anzeigen eines Textes.

Hier unser Textcode mit eingebautem test_string:

[...]
//==========================================================================================
////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                          
//                                                          Panels
//                                                                                          
////////////////////////////////////////////////////////////////////////////////////////////
TEXT* test_txt =	
{
  pos_x = 10;
  pos_y = 10;
  layer = 1;
  string (test_string);
  flags = SHOW;
} 
[...]


So.. Geschafft. Der String wird nun als textobjekt angezeigt.


Doch.. Moment mal!

Was ist wenn wir eine andere Schriftart wollen?

Wie? Das wollt ihr auch wissen? Gut, dann lest brav weiter.



FONTS

Eine Schriftart zu erstellen, bedarf 2 Grundvorraussetzungen:

  • Eine auf dem Computer installierte Schriftart
  • Eine im Projektordner existierende Bitmap-Font

Fangen wir mal mit den normalen Schriftarten an.

//==========================================================================================
////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                          
//                                                 Definitionen und Includings
//                                                                                          
////////////////////////////////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>
 
var testvariable = 3;
 
FONT* arial_font = "";
 
STRING* test_string = "Ich bin ein Text!!!";
 
[...]

Der FONT* Syntax erstellt eine registrierte Schriftart. Jetzt müssen wir nurnoch unsere Parameter in die "" setzen.

Als erstes muss der in Windows registrierte Fontname rein. Im Fall von Arial.ttf würde nun "arial" dort stehen.

Wollt ihr nun noch mehr Parameter setzen, muss ein "#" rein. Also "arial#"..

Nun können nurnoch Schriftgröße und Stil-parameter folgen. Hier ein beispiel für die Schriftgröße: "arial#20"

Als letztes noch einer der folgenden Stile:

  • b = fett
  • i = kursiv
  • bi = fett + kursiv

Also: "arial#20b" => Arial, Schriftgröße 20 und Fett geschrieben.


Tragen wir es doch gleich mal ein:

//==========================================================================================
////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                          
//                                                 Definitionen und Includings
//                                                                                          
////////////////////////////////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>
 
var testvariable = 3;
 
FONT* arial_font = "arial#20b";
 
STRING* test_string = "Ich bin ein Text!!!";
 
[...]



Also dann, weiter zu den Bitmap-Fonts:

Bitmap Fonts sind etwas kompliziert. Eine Bitmap Font besteht aus einer Bilddatei. Auf dieser sind Buchstaben, Zahlen, Symbolde oder was ihr sonst Zeichnen wollt - auf gleichmäßig großen Quadraten gezeichnet.

Hier mal ein Beispiel für eine Bitmap-Font: >>Hier<<

Ihr werdet feststellen, dass jedes Zeichen in der Font-bitmap, gleich groß ist... zumindest vom Platz den es zur verfügung hat.

Allerdings könnt ihr diese Bitmap nicht mit A7 verwenden. grund:

A7 ist von der Anzahl der zeichen her begrenzt.

Unterstützt werden:

  • 11 Zeichen waagerecht, 1 Reihe
  • 32 Zeichen waagerecht, 4 Reihen
  • 32 Zeichen waagerecht, 8 Reihen

Jedes zeichen hat den selben Platz. Rechenbeispiel:

11 zeichen/1Reihe. Das erste Zeichen ist 55x55 groß

Dann ist die Bitmap insgesammt 605 Pixel lang, und 55 Pixel hoch. ( 11x55 = 605, 1x55 = 55 )


verstanden?


gut.

Ebenfalls wichtig: Der Hintergrund der Bitmap muss schwarz sein!!!!

Dies ist wichtig, damit wir diesen mit dem "TRANSLUCENT" flag unsichtbar machen können.

Also dann, erstellen wir die Font:

//==========================================================================================
////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                          
//                                                 Definitionen und Includings
//                                                                                          
////////////////////////////////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>
 
var testvariable = 3;
 
FONT* arial_font = "testbild.png";
 
STRING* test_string = "Ich bin ein Text!!!";
 
[...]

testbild.png ist eine test-bitmap-font, welche ich kurz zusammengewurschtelt habe ^^.


Natürlich lassen sich Schriftarten auch zur Laufzeit erstellen. Das funktioniert wie folgt:

Fontname = font_create("Parameter / Dateiname");



Sodenn, folglich ein Verbindungskapitel.



FONTS IN TEXTEN ANZEIGEN

Wie schon die Strings auch, werden wir nun die Schriftart in den Text einbinden:

[...]
//==========================================================================================
////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                          
//                                                          Panels
//                                                                                          
////////////////////////////////////////////////////////////////////////////////////////////
TEXT* test_txt_font =	
{
  pos_x = 10;
  pos_y = 10;
  layer = 1;
  font = arial_font;
  string (test_string);
  flags = SHOW;
} 
 
TEXT* test_txt_bitmap-font =	
{
  pos_x = 10;
  pos_y = 10;
  layer = 1;
  font = arial_font;
  string (test_string);
  flags = SHOW | TRANSLUCENT;
} 
[...]

Info: Der "TRANSLUCENT" flag, macht den schwarzen BG bei Bitmap-Fonts transparent.

Und fertig ist der Text, mit eigenem registrierten Font. Glückwunsch.