Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  FAQFAQ  SuchenSuchen  AnmeldenAnmelden  MitgliederMitglieder  LoginLogin  

Austausch | 
 

 Erstellung eines HUDs

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
Gehe zu Seite : Zurück  1, 2
AutorNachricht
Pitri
Feldmarschall
Feldmarschall
avatar

Männlich Alter : 24
Ort : Karlsruhe
Anmeldedatum : 02.03.09

BeitragThema: Re: Erstellung eines HUDs   Sa Apr 03, 2010 12:52 pm

Tooles Tut! Da bekommt man echt lust viiele viele sinnlose HUDs zu machen! Ich werde den ganzen Bildschirm vollkleistern! Muhahahahaaaaa!

...Naja, ich werd erstmal nur EIN HUD versuchen xD
Nach oben Nach unten
Benutzerprofil anzeigen http://www.clonk-fanpage.lima-city.de
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 23
Anmeldedatum : 21.12.08

BeitragThema: Re: Erstellung eines HUDs   Sa Apr 03, 2010 2:57 pm

Du kannst ja eigentlich mehrere HUDs in eins stopfen. Also 1 Timer aber mehre Ausgaben und Grafiken auf dem Bildschirm. Spart gute Rechenleistung.
Nach oben Nach unten
Benutzerprofil anzeigen
Tackleberry
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 29.04.09

BeitragThema: Re: Erstellung eines HUDs   So Apr 04, 2010 5:22 am

Toastbrot schrieb:

Feinere Farbabstufungen sind natürlich möglich aber ich habe das hier eher einfach halten wollen.

Es geht sogar sehr genauer! Mit nahezu dynamischen Farbübergängen, und zwar ohne alle Farben einem Lebensenergiebereich zuzuordnen. Ich hab das Tutorial mal nachgebaut (ein sehr gutes Tutorial übrigens Wink) und mit dynamischen Farbübergängen siehts noch besser aus. Wer wissen will, wies geht, liest weiter:

Code:
func Farbe(object clonk) {
var value;    //eine neue Variable erstellen
value = HSL((GetEnergy(clonk)*85)/(GetPhysical("Energy",0,clonk)/1000), 200 ,127);
return(value);             
}

Also, was ist dieses Wunderteil HSL? HSL ist eine Funktion zum Erstellen eines 32-Bit-Farbwertes aus 3 Parametern. Ein 32-Bit-Farbwert ist auch das was bei RGB herauskommt, nur dass dort mit Rot-, Grün-, und Blauanteilen gearbeitet wird. Bei HSL dagegen wird mit dem Farbton (1. Parameter), der Sättigung (2. Parameter) und der Helligkeit (3. Parameter) gearbeitet.

Zurück zu unserem Code:

HSL((GetEnergy(clonk)*85)/(GetPhysical("Energy",0,clonk)/1000), 200 ,127);

Also, was passiert hier? Zur Übersichtlichkeit hab ich die 3 Parameter in unterschiedlichen Farben dargestellt. Wir fangen mit 2 und 3 an, da sie einfacher zu verstehen sind: 200 ist die Sättigung (255 ist max.) und 127 ist die Helligkeit (255 ist max.).

Nun zum ersten Parameter, das hat ein bisschen was mit Mathematik zu tun:
(GetEnergy(clonk)*85)/(GetPhysical("Energy",0,clonk)/1000)

- Das ist der aktuelle Energiewert des Clonks, multipliziert mit 85. Warum 85? Siehe unten.
- Das ist der Energywert des Clonks aus der DefCore, dividiert durch 1000. Wieso 1000? Siehe erster Post in diesem Thread Razz

Die 85 hat mit dem Farbtonwert von HSL in Clonk zu tun, wer noch nicht dem Link in die Doku gefolgt ist: 85 ist reines Grün. Wer nun einmal nachrechnet: (Volle Energie des Clonks * 85) / Voller Energiewert aus der DefCore. Was bleibt übrig? Genau, die 85. Folglich ist bei voller Energie die Farbe grün. Passt halt.
Wer nun weiterrechnet wird feststellen, dass die Werte bei sinkender Energie immer kleiner werden. Und kleinere Werte, die gegen 0 laufen haben den Farbton rot, passt also auch.

Das ist die gesamte Logik, die hinter dieser Zeile steckt. Wer ein bisschen mit den Farb-, Sättigungs- und Helligkeitswerten herumspielt und ein bisschen mathematisch denken kann, kann sich so selbst dynamische Farbübergänge in allen Farben machen! Wenns noch Fragen gibt, fragt nur! (;


Nebenbei: So kann man z.B. auch Helligkeitsübergänge machen, indem man statt dem Farbton die Helligkeit ändert!
Nach oben Nach unten
Benutzerprofil anzeigen
Pitri
Feldmarschall
Feldmarschall
avatar

Männlich Alter : 24
Ort : Karlsruhe
Anmeldedatum : 02.03.09

BeitragThema: Re: Erstellung eines HUDs   Sa Apr 10, 2010 1:39 pm

OK das mit dem Farbübergang hätte ich auch gepostet, nur hätte ichs anders gemacht! Grün und rot als variable und je nach Stand verringern. Ich hätte kein HSL benötigt...

Spoiler:
 
Nach oben Nach unten
Benutzerprofil anzeigen http://www.clonk-fanpage.lima-city.de
Stephan Borgs
Kadett
Kadett
avatar

Männlich Alter : 23
Ort : Duisburg Meiderich
Anmeldedatum : 09.03.10

BeitragThema: Re: Erstellung eines HUDs   Sa Apr 10, 2010 2:54 pm

Dein Hud gefällt mir, wirklich.
Aber, über welche Waffe informiert dich das Hud?
Nach oben Nach unten
Benutzerprofil anzeigen
Tackleberry
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 29.04.09

BeitragThema: Re: Erstellung eines HUDs   Sa Apr 10, 2010 5:55 pm

@Pitri
Nur mit RGB ist es ziemlich schwierig nicht die Farbwerte zu verlieren, oder wie hättest du das gemacht? Surprised
Nach oben Nach unten
Benutzerprofil anzeigen
WarPig
Leutnant
Leutnant


Männlich Alter : 23
Anmeldedatum : 16.04.10

BeitragThema: Re: Erstellung eines HUDs   Sa Apr 17, 2010 12:42 am

Hi,
das tut is echt super, ABER:
wenn ich versuche mir zwei Werte (energie und atem) mit einem Timer anzeigen zu lassen gibts immer massenweise errors. Ich habs auch schon mit zwei Timern versucht, aber dann zeigt er immer nur den Wert des zuerst aufgerufenen. Ich habs auch mit zwei Actions in der Actmap ausprobiert, hilft alles nix.
Bitte helf mir!
lg WarPig
Nach oben Nach unten
Benutzerprofil anzeigen
Gamer
Staatsrat
Staatsrat
avatar

Männlich Alter : 22
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

BeitragThema: Re: Erstellung eines HUDs   Sa Apr 17, 2010 11:55 am

Kannst du uns den Script zeigen, pls?

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
WarPig
Leutnant
Leutnant


Männlich Alter : 23
Anmeldedatum : 16.04.10

BeitragThema: Re: Erstellung eines HUDs   Sa Apr 17, 2010 11:53 pm

okee,
entweder

Code:
/*-- HUD --*/

#strict2

func Initialize()
{
  SetVisibility(VIS_Owner);
  SetAction("Time");
  SetPosition(220, 125);
}

func Timer()
{
   var clonk;
   clonk=GetCursor(GetOwner(this));
   
   if(clonk)
   {
        CustomMessage(Format("%d",GetEnergy(clonk)),
                      this,
                      GetOwner(this),
                      -115,40,
                      Color(clonk));
   }
}

func Timer2()
{
   var clonk2;
   clonk2=GetCursor(GetOwner(this));
   
   if(clonk2)
   {
        CustomMessage(Format("%d",GetBreath(clonk2)),
                        this,
                        GetOwner(this),
                        -50,40,
                        Breathcolor(clonk2));
   }
}

func Color(object clonk)
{
   //green
   if(GetEnergy(clonk)>GetPhysical("Energy",0,clonk)/1000-50)return(RGB(0,250,0));
   //yellow
   if(GetEnergy(clonk)>50)return(RGB(255,255,0));
   //red
   return(RGB(165,17,17));
}

func Breathcolor(object clonk2)
{
   //green
   if(GetBreath(clonk2)>GetPhysical("Breath",0,clonk2)/1000-75)return(RGB(0,250,0));
   //yellow
   if(GetBreath(clonk2)>100)return(RGB(255,255,0));
   //red
   return(RGB(165,17,17));
}



oder
Code:
/*-- HUD --*/

#strict2

func Initialize()
{
  SetVisibility(VIS_Owner);
  SetAction("Time");
  SetPosition(220, 125);
}

func Timer()
{
   var clonk;
   clonk=GetCursor(GetOwner(this));
   
   if(clonk)
   {
        CustomMessage(Format("%d",GetEnergy(clonk)),
                      this,
                      GetOwner(this),
                      -115,40,
                      Color(clonk));

        CustomMessage(Format("%d",GetBreath(clonk)),
                   this,
                   GetOwner(this),
                   -50,40,
                   Breathcolor(clonk));
   }
}

func Color(object clonk)
{
   //green
   if(GetEnergy(clonk)>GetPhysical("Energy",0,clonk)/1000-50)return(RGB(0,250,0));
   //yellow
   if(GetEnergy(clonk)>50)return(RGB(255,255,0));
   //red
   return(RGB(165,17,17));
}

func Breathcolor(object clonk)
{
   //green
   if(GetBreath(clonk)>GetPhysical("Breath",0,clonk)/1000-75)return(RGB(0,250,0));
   //yellow
   if(GetBreath(clonk)>100)return(RGB(255,255,0));
   //red
   return(RGB(165,17,17));
}
Nach oben Nach unten
Benutzerprofil anzeigen
Tackleberry
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 29.04.09

BeitragThema: Re: Erstellung eines HUDs   Mo Apr 19, 2010 6:30 pm

Afaik kann eine CustomMessage nur einmal über dem gleichen Objekt aufgerufen werden. Du brauchst also noch ein zweites Objekt, ein unsichtbares Hilfsobjekt, bei dem du die zweite Nachricht aufrufen kannst. Du erstellst also dieses Objekt, gibst ihm die gleiche Position, VIS_None und erstellst die Message.
Nach oben Nach unten
Benutzerprofil anzeigen
Pitri
Feldmarschall
Feldmarschall
avatar

Männlich Alter : 24
Ort : Karlsruhe
Anmeldedatum : 02.03.09

BeitragThema: Re: Erstellung eines HUDs   Mo Apr 19, 2010 7:23 pm

Stephan Borgs schrieb:
Dein Hud gefällt mir, wirklich.
Aber, über welche Waffe informiert dich das Hud?

Ich hab das Waffensystem von einem Adventureszenario geremaked! Ich kanns ja mal aufs CCAN laden!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.clonk-fanpage.lima-city.de
Gesponserte Inhalte




BeitragThema: Re: Erstellung eines HUDs   

Nach oben Nach unten
 
Erstellung eines HUDs
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 2 von 2Gehe zu Seite : Zurück  1, 2
 Ähnliche Themen
-
» Ziel 63 - Verkauf eines Pferds für mindestens 1 Pass
» Einbindung eines Forum in jimdo-Site
» Zusammenfassung aller Postings eines Tages/einer Woche per E-Mail an alle User?
» Zugriffsbeschränkung eines bestimmten Users
» Import eines Styles

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Fortgeschrittene :: Tutorials-
Gehe zu: