Du bist nicht angemeldet.

Eine Antwort schreiben

Schreibe deinen Beitrag und versende ihn
Beitragsoptionen
Bist Du ein Mensch oder ein Roboter ?

Verifizierung, dass diese Aktion durch eine reale Person vorgenommen wird und nicht von einem Programm.

Zurück

Themen-Übersicht (Neuester Beitrag zuerst)

Ronny
28.04.2014 21:40

GetSpriteFromRegistry("gfx_rahmen")

kontra

GetSpriteFromRegistry("gfx_gui_rahmen").DrawArea(50,270, 100,40)

Ich denke, fuer "gfx_rahmen" hast du in der XML nichts stehen wie
ninepatch="true"


bye
Ron

sushiTV
28.04.2014 18:20

witzig ....

ich habe ein Field erstellt in TScreen:

Field rahmen:TSprite = GetSpriteFromRegistry("gfx_rahmen")

und dann in Render:

rahmen.DrawArea(50, 150, 100, 200)

ich glaube so hattest du es ja auch gesagt und es wäre auch "kürzer" von dem Quelltext her .... nur so funzt es nicht tongue

GetSpriteFromRegistry("gfx_gui_rahmen").DrawArea(50,270, 100,40)

funktioniert aber! (also das ninepatch funzt dann auch)

*g*
~s~

Ronny
20.04.2014 13:43

MEINE Bilder = Dateien die nicht im PNG-Format sind. Die Dateien vom Bildbearbeitungsprogramm haben dann also "Layer" damit ich bequemer kopieren/verschieben usw kann.

Der "Marker" ist ein Nicht-Alpha-0-Bereich links,oben,unten,rechts.


bye
Ron

sushiTV
20.04.2014 11:25
Ronny schrieb:

Im Code wird uebrigens nur geschaut, ob "alpha = 0 " oder nicht. Kannst also gern dein "Pink" (Magenta, R=255,G=255,B=0) nutzen. Meine Bilder haben die Marker eh als Layer, da duerfte ein "einfaerben" nicht so schlimm sein..

du bist manchmal auch echt lustig smile
ich dachte ja das nach schwarz geschaut wird ... zu was dann der trenner?
das verstehe ich dann jetzt so nicht wirklich tongue

da ich ja eh die koordiniaten angebe, welche das zu ladende image innerhalb eines png sein soll, ist doch gar kein trenner nötig?

naja ...
rest checke ich dann mal später ...

~s~

Ronny
19.04.2014 13:41

@Rahmen ... Keine Ahnung wieso da schwarz genommen worden ist, da ich aber das Prinzip von "Android" uebernahm, dachte ich, dass es ja nur fair waere die gleiche Farbe zu nutzen.

Im Code wird uebrigens nur geschaut, ob "alpha = 0 " oder nicht. Kannst also gern dein "Pink" (Magenta, R=255,G=255,B=0) nutzen. Meine Bilder haben die Marker eh als Layer, da duerfte ein "einfaerben" nicht so schlimm sein..


Kurz: gab und gibt keinen "Grund", ausser das so zu uebernehmen, wie es bei den Android-Dev-Docs drin war biggrin.


@TSprite

Hier mal eine Render-Methode von deiner rebdemo,die die Sprites aehnlich der GUIBoxen zeichnet (nur halt links davon).

Method Render:Int()
	GetSpriteFromRegistry("gfx_background").Draw(0, 0)

	SetAlpha 0.6
	GetSpriteFromRegistry("gfx_gui_rahmen").DrawArea(50,270, 100,40)
	GetSpriteFromRegistry("gfx_gui_rahmen").DrawArea(50,312, 100,100)
	GetSpriteFromRegistry("gfx_gui_rahmen").DrawArea(50,414, 100,40)
	SetAlpha 1.0

	GUIManager.Draw(Self.name)
	willkommenstext()
	LogoDraw()
EndMethod

bye
Ron

sushiTV
19.04.2014 12:09

Frage nebenher,

warum ist der "Trenner" denn Schwarz? früher hat man doch für tranzparentbereiche, als das noch nicht so integriert war in grafiken, gelößt mit so einer fießen pinken farbe .... also einer die sowieso nie auftauchen sollte = TRANSPARENZ ... warum ist der Trenner dann nicht auch in so einer farbe .... ?

das war mir als ich mir das anschaute etwas völlig unlogisch .... weil gerade buttons oder rahmen etc. die man zeichnet haben aussen vielleicht gerade schwarz als rahmen und dann kommt als trenner eine schwarze linie ?

gruß ~s~

sushiTV
19.04.2014 12:02

hey Ron,

um auszuschließen das ich da etwas völlig falsch gemacht habe, würde ich dich bitten das du das TSprite so wie du sagtest (GetSpriteFromRegistry) benutzt als meinen gedachten "rahmen" also einfach als bild auf den Screen aber ebend mit ninepatch ...

das ninePatch=True  war angegeben

denn ich weiss nicht wo da nun der fehler liegen könnte, wenn du sagst, das dies so geht.

gruß ~s~

@indevIDE .... ich benutze diese ja, finde vorallem toll das man ja die TYPES etc. in einer bmx dann auch "einklappen" kann ... wenn ich mehrere davon habe mache ich die, die mich für den moment nicht interessieren einfach zu und der rest bleibt stehen ... das find ich ne gute sache gw_smiley_zwinkern

gruß ~s~

Ronny
19.04.2014 09:20

Hast du in der xml die "gfx_rahmen" mit ninePatch="TRUE" angegeben?

Wenn nicht, dann EINMALIG im Code:
rahmen.EnableNinePatch() 'das sucht dann die Markierung bei dieser Sprite und schaltet bei Erfolg den ninePatchModus frei.


PS: Hab das Posting uebersehen.
PPS: UNZ hat 'ne neue indevIDE hochgeladen - falls Du das nutzt.


bye
Ron

sushiTV
17.04.2014 16:08

Field rahmen:TSprite = GetSpriteFromRegistry("gfx_rahmen")
rahmen.DrawArea(x,y,w,h)

ergibt bei mir aber definitiv nicht das selbe ergebnis wie mit dem panel-missbrauch. die umrandung ist völlig verzerrt, also das "NinePatch" scheint da nicht so zu funzen.

~s~

Ronny
17.04.2014 15:26

Ich hatte angedacht, dass das Framework automatisch nach ninePatch sucht -- aber das ist bloed (Schriften - oder Grafiken die durch Zufall diese Markierungen besitzen) - lass also das ninePatch="true" in der xml - ist besser so biggrin.

Stringbehandlung.

Fuer das Formatieren von Text brauchst Du eine Hilfsfunktion. Momentan gibt es dafuer noch keinen Code in Dig. Du kannst dir den aber aus "basefunctions.bmx" bei TVTower "leihen" (dort in "TFunctions" - gibt es Sachen fuer eine "Formatierung" von Text).

Ansonsten:

string(float) macht einen "text" aus der Zahl. Wenn Du dich nur fuer X Stellen nach dem "Punkt/Komma" interessierst, suchst Du die Stelle des Punktes/Kommas und erstellst einen neuen String der nur bis Stelle+2 geht (dann ist das ohne Rundung).

Faule nehmen dann natuerlich eher die Hilfsfunktionen die ich oben referenziert habe.


bye
Ron

sushiTV
17.04.2014 15:17

Demnach kann ich auf jedes Sprite den "NinePatch" anwenden und das macht das framework dann selber?

Ladebildschirm wird wohl ersteinmal nicht so wichtig sein, dann eher wohl etwas zur Stringbehandlung und/oder das ganze mit dem VirtualGraphics (Scalierung) tongue

was die Stringbehandlung angeht, ich hatte jetzt bemerkt das er mit String(Float) den Float zwar umwandelt, das dann aber sogar 3 stellen nach dem komma *g*. Aber ich denke das ich sowieso Zahlenwerte mit Tausenderpunkte darstellen möchte, das ist einfach übersichtlicher. Also es ist noch sehr viel zu tun smile

~s~

Ronny
17.04.2014 15:10

Die TGUIBackgroundbox... die wuerde ich an deiner Stelle nicht benutzen. Die sind eher fuer GUIObjekte gedacht, die einen eigenen Hintergrund brauchen ("Windows", "Panels" usw.).

Fuer dich reicht ja vollkommen:

bgPanel:TSprite = GetSpriteFromRegistry("spritename")
bgPanel.DrawArea(x,y,w,h)

Der "Missbrauch" der GUI ist da denke ich "overkill".


beim Laden der XML hast Du "true" angegeben - dass heisst, die Ressourcen darin werden sofort geladen (noch vorm Start der "Grafik"). Ich wuerde nur das Laden, was fuer den Startbildschirm notwendig ist ... alles andere ueberlaesst du dann dem ResourceLoader - der laedt das Zeug sobald wie moeglich (also bspweise in der Zeit in der du den Mauscursor zum "Starten"-Button im Hauptmenue fuehrst). Laesst sich aber auch mittels klassischem Ladebildschirm bewerkstelligen (einfach einen "eigenen" Screen dafuer nutzen - der wird als aktiver Screen gesetzt und innerhalb der Update-Methode dieses Screens ueberpruefst du, ob nix mehr zum laden vorliegt - und schaltest dann auf den "Spielscreen").

Wenn Du willst, kann ich auch mal eine Beispielapp mit "Ladescreen" basteln.


bye
Ron

sushiTV
17.04.2014 13:51

http://www.workupload.com/file/1xk9KHMq

happy fein, jetzt kann ich schon mal rahmen in beliebiger größe zeichnen gw_smiley_zwinkern
warum nicht gleich so *g*

nun muss ich nur das mit den buttons noch hinbekommen, das wird wahrscheinlich bissel schwieriger, mal sehen.

gruß
~s~

Ronny
17.04.2014 12:06

Den parameter ninePatch="true" in der XML brauchst du nicht -- das ist mit dem aktuellen DIG-Framework nicht mehr noetig. Den FontLoader pack ich demnaechst auch noch online (damit man die Schriften in der XML definieren kann - falls man das modifizierbar machen moechte biggrin).


bye
Ron

sushiTV
17.04.2014 10:50

Hmmm, mal sehen ob ich mich da durchwurschteln kann smile

Nachtrag: also habe mir das jetzt in der demoapp nochmal angeschaut, das mit dem "NinePatch" (noch nie gehört *g*) und der *.xml das habe ich wohl ersteinmal kappiert ... werde dann mal bissel rumprobieren ...

~s~