 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mr.Qb.4.5
Anmeldungsdatum: 10.11.2004 Beiträge: 110 Wohnort: in Bayern
|
Verfasst am: 11.01.2005, 15:59 Titel: Farben in Screen 12 mischen und Fonts erstellen? |
|
|
hallo,
wie kann ich mir farben im screen 12 selber "zusammenmischen", wie es im screen 13 mit Veränderung von Werten im Videospeicher geht? und wie kann ich mir fonts wie die windowsfonts selberprogrammieren, so dass sie auch beliebig vergrößerbar sind?
danke im voraus
MFG
Mr.Qb.4.5 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 11.01.2005, 16:11 Titel: |
|
|
Hallo.
In der Monster-FAQ findest du mehrfach ein OUT-Programm zum Palettenändern erklärt. Damit funktioniert das in Screen 12 einwandfrei.
In Screen 12 sollte sogar der QB Befehl PALETTE funktionieren. Er ist etwas langsamer als OUT. Auch dazu findest du echt einiges in der MonFAQ. (Sie steht leider nicht mehr im Header, aber du findest sie auf www.qbasic.de)
AK und ich arbeiten derzeit beide an Fontroutinen (TTF=>QB) dazu. Wir sind aber beide nicht fertig. Ich glaube aber, dass du mit der UGL (auf qbasic.de im Downloadbereich unter Libs) TTF Fonts verwenden kannst. Ansonten musst du auf unsere Fontlibs warten.
An sich kannst du die Buchstaben aber auch wie kleine Grafiken behandeln. Auf neueren Rechnern (ab Pentium I 200MHz) merkt man normal keine Geschwindigkeitseinbußen. Ich mache das so in meinem Jump'n'Run Game, das ich mal für QB-City gemacht hab, organisiert. Du findest es auf meiner Seite im Downloadbereich.
Wenn es dir reicht, die DOS Box Schrift gegen eine coolere auszutauschen und ein pixelgenaues Setzen nicht wichtig ist, kannst du auch das Programm DOSFONT von www.iconsoft.de verwenden.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 11.01.2005, 21:04 Titel: |
|
|
Klar geht Pallette auch in Screen 12!
Aber ich habe mir vor kurzem abgewohnt, den Befehl zu verwenden.
Nicht wegen der Geschwindigkeit (ich hab noch nicht ausprobiert, wie groß der Unterrschied ist. Aber da er Werte vom Typ LONG verwendet, während mit der INP/OUT - Methode einfache INTEGER gehen, is es doch plausibel, oder?), sondern vor allem, weil so auch Farbwerte wieder eingelesen werden können.
Und noch was:
Im SCREEN 9 (640 x 350, 16 Farben, je nach Video-Speicher 1 bis 2 Seiten, also ideal für Animationen!) kann man mit PALLETTE nur 16 aus 64 VORDEFINIERTEN Farben auswählen. Mit OUT kann man echte 18 Bit-Farben setzen.
Anwendung:
Farbeintrag setzen:
Code: |
OUT &H3C8, farbe%
OUT &H3C9, rot%
OUT &H3C9, gruen%
OUT &H3C9, blau%
|
Ich denke, der Code oben ist selbsterklärend.
farbe% ist die Farbnummer, die zwischen 0 und 255 liegen muss.
Wenn man einen Wert außerhalb dieses Bereichs angibt, wird die Eingabe einfach ignoriert - glaube ich. Ich hab jedenfalls keinen Effekt erkannt.
rot%, gruen% und blau% sind die einzelnen Farbwerte, die zwischen 0 und 63 liegen sollten. Soweit ich weiß, werden werte, die außerhalb liegen automatisch auf 63 gesetzt.
Auch hier bin ich mir aber nicht ganz sicher.
Farbeintrag einlesen:
Code: |
OUT &H3C7, farbe%
INP &H3C9, rot%
INP &H3C9, gruen%
INP &H3C9, blau%
[/quote]
Auch hier gelten wieder die selben Regeln.
Die OUT-Zeile gibt an, welche Zeile eingelesen werden soll, und dann kommen nacheinander die drei RGB-Werte.
Easy Move *g*
_____________________________________________________
Mit dem Problem der Fonts hab ich mich auch schon beschäftigt.
In den letzten Sommerferien hab ich mir dazu ein paar Schrift-Routinen inclusive Font-Editor geschrieben. Wenn du willst, kann ich dir das Paket schicken.
Nur kurz zum Prinzip (das von so ziemlich jedem verwendet wird, der seine eigenen Fonts erstellt...):
nacheinander werden alle 255 ASCII-Characters auf dem Bildschirm ausgegeben, und mit POINT eingelesen.
Ist der zurückgegebene Wert ungleich 0, wird eine 1 in eine Datei geschrieben, ansonsten eine 0.
so bekommt man ein wunderbares Abbild aller Zeichen.
Diese werden dann in ein Arrey geladen, und können auf dem Bildschirm mit PSET ausgegeben werden.
So ist Pixelgenaue positionierung und transparenter Hintergrund möglich. Eine weitere Routine ermöglichet eine vergrößerung der Schrift um einen beliebigen Faktor, auch nichtganzzahlige Faktoren sind möglich! Bis zum Faktor 3 sieht das auch ganz gut aus, aber spätestens ab 3.5 ist es ziemlich Eckig. Für Überschriften reichts aber allemal!
Und dann ist da schließlich noch eine SUB, die Bunte Schrift ausgeben kann!
_____________________________________________________
War das jetzt Werbung?
....
Bitte fasst den zweiten Teil dieses Posts als Anregung auf, eigene Routinen zu entwickeln!
Have a nice day!
Ciao![/quote] |
Zuletzt bearbeitet von Dusky_Joe am 11.01.2005, 22:01, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 11.01.2005, 21:09 Titel: |
|
|
Farben setzen: Befehl PALETTE, Format
PALETTE farbe%, CLNG(r% + 256 * g%) + 65536& * CLNG(b%)
(r%, g% und b% zwischen 0 und 63). Farben auslesen: Compiler nötig, da CALL INTERRUPT auf
INT 10h, AX=1015h
Wie das konkret geht, ist in der SUB-Prozedur LiesPalette() von BMP_LIB.BAS unter
http://www.dreael.ch/Deutsch/Download/WindowsBitmapBibliothek.html
gezeigt. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|