Spieler Farbe ändern

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mabox

Betreff: Spieler Farbe ändern

BeitragFr, Jul 18, 2008 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, Ich habe in einem Spiel eine beliebige Anzahl von Spielern. jeder Spieler braucht eine Farbe. Gibt es eine Möglichkeit die Farben zuzuordnen ohne sie abzuspeichern? es sollten möglichst grelle Farben sein wie z.B.
255,0,0
0,255,0
0,0,255
255,255,0
0,255,255
255,255,255
0,0,0
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

ozzi789

BeitragFr, Jul 18, 2008 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Dim (spielername,r,b,g) ? Smile
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

timmeTheOnly

BeitragFr, Jul 18, 2008 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry ozzi,

das ist keine gute Idee, das braucht übel viel Speicher.
So isses besser:

Code: [AUSKLAPPEN]

Dim Farbe(AnzahlDerSpieler,2)

Dim Farbe(Spieler1,0)  <-- Spieler1 | r
Dim Farbe(Spieler1,1)  <-- Spieler1 | g
Dim Farbe(Spieler1,2)  <-- Spieler1 | b

Dim Farbe(Spieler2,0)  <-- Spieler2 | r
Dim Farbe(Spieler2,1)  <-- Spieler2 | g
Dim Farbe(Spieler2,2)  <-- Spieler2 | b

usw...

mabox

BeitragFr, Jul 18, 2008 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
warum schreibst du da nocht ein dim davor?

Zitat:
Dim Farbe(Spieler1,0) <-- Spieler1 | r
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

ozzi789

BeitragFr, Jul 18, 2008 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
timmeTheOnly hat Folgendes geschrieben:
Sorry ozzi,

das ist keine gute Idee, das braucht übel viel Speicher.
So isses besser:

Code: [AUSKLAPPEN]

Dim Farbe(AnzahlDerSpieler,2)

Dim Farbe(Spieler1,0)  <-- Spieler1 | r
Dim Farbe(Spieler1,1)  <-- Spieler1 | g
Dim Farbe(Spieler1,2)  <-- Spieler1 | b

Dim Farbe(Spieler2,0)  <-- Spieler2 | r
Dim Farbe(Spieler2,1)  <-- Spieler2 | g
Dim Farbe(Spieler2,2)  <-- Spieler2 | b

usw...


Das soll weniger Speicher brauchen Shocked

ka



@mabox

Hää ?
Funkts ? Smile
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Xeres

Moderator

BeitragFr, Jul 18, 2008 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
@ozzi789: Welche werte sollen denn bei Dim(spielername,r,b,g) die Variablen r, g und b einnehmen? timmes Lösung ist schon einleuchtend, wenn man von der mehrfachen dimensionierung absieht.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

ToeB

BeitragFr, Jul 18, 2008 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau, nur halt ohne Dim !

Code: [AUSKLAPPEN]
player_anzahl = 3
Dim Farbe(player_anzahl,2)
Farbe(1,0) = 255   ;ROT
Farbe(1,1) = 0     ;GRÜN
Farbe(1,2) = 0     ;BLAU
Farbe(2,0) = 0     ;ROT
Farbe(2,1) = 255   ;GRÜN
Farbe(2,2) = 0     ;BLAU
Farbe(3,0) = 0     ;ROT
Farbe(3,1) = 0     ;GRÜN
Farbe(3,2) = 255   ;BLAU

For i = 1 to player_anzahl
     Color Farbe(i,0),Farbe(i,1),Farbe(i,2)
     Oval X(i),Y(i),20,20
Next


So in Etwa...

@ozzi789 :
Was willst du denn mit Dim(spielernamen,r,g,b) zum ausdruck bringen ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

aMul

Sieger des Minimalist Compo 01/13

BeitragFr, Jul 18, 2008 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du nur Farben mit R/G/B-Werten von 0 oder 255 haben willst, kannst du die die Werte auch einfach aus den ersten drei Bits der Zahlen 0 bis 7 errechnen, in etwa so:
Code: [AUSKLAPPEN]
Local nummer = Rand(0,7)

Local r, g, b

r = (nummer And 1) * 255
g = ((nummer Shr 1) And 1) * 255
b = ((nummer Shr 2) And 1) * 255

Um den Code zu verstehen, muss man natürlich wissen, wie Computer zahlen speichern und wie man die Bit-Befehle anwendet/was diese bewirken. (Unter Bit-Befehle verstehe ich AND, OR, XOR, ~, SHR, SRL usw.)
Ansonsten nimmst du halt die Lösung mit den Dim-Feldern, damit kannst du auch noch mehr als diese 8 Farben einfügen. Oh und man kann die Farben natürlich auch noch mit Data speichern, schau dir den Befehl einfach mal an Wink (Auch wenn du nicht speichern wolltest, wenn du mehr als nur diese acht Farben willst, wirst du nicht ums Speichern herumkommen, wenn du eine vernünftige Lösung willst.)

EDIT:
Als Alternative kannst du auch folgende Funktion benutzen um HSL/HSV-Farben in RGB-Farben umzuwandeln.
Damit kannst du ganz leicht bestimmen, wie grell die Farbe sein soll, schau dir dazu einfach mal Wikipedia an.
Code: [AUSKLAPPEN]
Function hsl2rgb(h#,s#,l#) ; takes hue(0 to 360), saturation (0 to 1.0) and luminance (0 to 1.0)
   Local i,f#,p#,q#,t#,r#,g#,b#
   If s=0
      r=l*255.0:g=l*255.0:b=l*255.0
   Else
      h=h/60.0
      i=Floor(h)
      f=h-i
      p=l*(1.0-s)
      q=l*(1.0-s*f)
      t=l*(1.0-s*(1.0-f))
      Select i
         Case 0
            r=l
            g=t
            b=p
         Case 1
            r=q
            g=l
            b=p
         Case 2
            r=p
            g=l
            b=t
         Case 3
            r=p
            b=l
            g=q
         Case 4
            r=t
            b=l
            g=p
         Default
            r=l
            g=p
            b=q
      End Select
      r=r*255
      g=g*255
      b=b*255
   EndIf
   If r<0 Then r=0
   If r>255 Then r=255
   If g<0 Then g=0
   If g>255 Then g=255
   If b<0 Then b=0
   If b>255 Then b=255
   rgb=(r Shl 16)Or(g Shl 8)Or b
   Return rgb
End Function

(Funktion von bb.com)
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

mabox

BeitragFr, Jul 18, 2008 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank! ich habs geschafft!
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

ozzi789

BeitragFr, Jul 18, 2008 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab wohl etwas nicht ganz verstanden -.-
sry
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group