Draw Startpunkt verschieben.

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: Draw Startpunkt verschieben.

BeitragMo, Nov 03, 2014 3:17
Antworten mit Zitat
Benutzer-Profile anzeigen
hi, ist es möglich den draw punkt also den start punkt von x,y zu versetzen?

zum bsp.
drawline (10,10,20,20)

wäre ja eine wirkliche linie startpunkt x,y = 10 endpunkt x,y = 20

nun würde es aber echt genial sein das man z.b. sagen könnte starte x=100 und y= 200 dann wäre der neue startpunkt von drawline 110,210,120,220

ich bräuchte so eine funktion zum erstellen eines canvas ingame (eigenes canvas)
habe vor in meiner gui nach dem ich ein "eigenes gui - canvas" erstellt habe z.b. via function StartCanvas(Can:TGuiCanvas) 'Setzt den startpunkt x,y auf die neue achse
drawline 10,10,20,20
StopCanvas(Can:TGuiCanvas) 'setzt es wieder zurück

gewisse dinge zeichnen zu lassen ohne nun alle draw befehle zu "emulieren"
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017
 

Tritium

BeitragMo, Nov 03, 2014 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieh Dir mal die Befehle SetOrigin, SetHandle und SetRotation (BRL.Max2D) an, die sollten da weiterhelfen.

Mathias-Kwiatkowski

BeitragMo, Nov 03, 2014 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
ja danke setorgin wars...

nun bin ich wieder an dem punkt der schwirigkeit... lasse den inhalt "malen" und dann werden die guielemente gemalt. problem ist das der inhalt dann unter dem fenster ist (logischerweise) lasse ich den inhalt über das gui fenster malen... dann ist der inhalt egal welches fenster gemalt wird dominant.. kann man das irgendwie händeln?
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Silver_Knee

BeitragMo, Nov 03, 2014 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Du malst den Fensterhintergrund in der gleichen Schleife wie den Aufdruck.

z.B.
Code: [AUSKLAPPEN]
For window=eachin windows
window.DrawBackground()
window.DrawForeground()
Next


oder

BlitzMax: [AUSKLAPPEN]
Type TWindow
Method Draw() Final
DrawBackground()
DrawForeground()
End Method

Method DrawBackground() Final
...
End Method

Method DrawForeground() Abstract ' wird vom jeweiligen Fenstertyp implementiert

End Type

For window=EachIn windows
window.Draw()
Next

BladeRunner

Moderator

BeitragMo, Nov 03, 2014 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür musst Du dir eine Z-Order erstellen - sprich, es muss anhand einer Variablen festgelegt sein in welcher Reihenfolge was gemalt wird. Wenn Du also in ein bestimmtes Gui-Element zeichnen willst, wird alles was dieser Order entspricht geziechnet, dann das Fenster mit der nächst höheren Order und so weiter.
Wenn Du vermeiden willst dass über den Rand bestimmter Bereiche gezeichnet wird kannst Du dir noch SetViewPort ansehen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group