Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

31

02.03.2008, 18:01

Zitat von »"BloodRaptor"«

...

kann man vieleicht irgendwie einstellen das # immer gefärbt ist??

mfg
BloodRaptor


Pseudocode:

Quellcode

1
2
3
4
5
6
7
8
9
10
for ( i = 0; i < length; ++i )
  if ( str[ i ] == '#' )
  {
    Push Color State
    Set Color 'gewünschte farbe'
    Write( '#' )
    Pop Color State
  }
  else
    Write( str[ i ] );
@D13_Dreinig

Task-Manager

Alter Hase

Beiträge: 1 087

Wohnort: am PC

Beruf: Student

  • Private Nachricht senden

32

02.03.2008, 19:24

THX!

Hiermit hats geklappt:

C-/C++-Quelltext

1
2
3
4
5
6
    if (String[i] == TEXT('#'))
    {
        FillConsoleOutputCharacter(Handle, '#', 1, Position, &Read);
        FillConsoleOutputAttribute(Handle, CC_Green, 1, Position, &Read);
        Position.X++; 
    }


Nur jetzt sehe ich gerade es gibt nur 3 Farben-.- habe aber in der MSDN nachgelesen, dass es mehr geben sollte...

z.B. Yellow...

wenn ich jetzt aber CC_Yellow = FOREGROUND_YELLOW, setzte kommt der Fehler:
nicht deklarrierter Bezeichner...

also binn ich der Definition von FOREGROUND_BLUE gefollgt und siehe da: es gibt nur die 3 Farben-.-

wo sind den jetzt die anderen Farben???

EDIT: ^Das alles in 1,5 Stunden in den ich noch 500Punkte in BF2 gemacht habe^^

mfg
BloodRaptor
falls ichs i-wo vergessen hab:

mfg
Task-Manager

Rechtschreibfehler sind mein Eigentum und gewollt!

Task-Manager

Alter Hase

Beiträge: 1 087

Wohnort: am PC

Beruf: Student

  • Private Nachricht senden

33

02.03.2008, 19:42

Gelöst!

CC_Yellow = FOREGROUND_GREEN | FOREGROUND_RED,

MIX IT BABY! :D
falls ichs i-wo vergessen hab:

mfg
Task-Manager

Rechtschreibfehler sind mein Eigentum und gewollt!

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

34

02.03.2008, 19:42

Nein, es gibt mehr Farben.

Zitat von »"BloodRaptor"«

Gelöst!

CC_Yellow = FOREGROUND_GREEN | FOREGROUND_RED,

MIX IT BABY! :D


Geht doch :)
@D13_Dreinig

Task-Manager

Alter Hase

Beiträge: 1 087

Wohnort: am PC

Beruf: Student

  • Private Nachricht senden

35

02.03.2008, 19:58

so jetzt bin ich bei 6 (mit sw 8)

wenn ich mehr als 2 Farben mixe gibts Weiß...
wie kriege ich mehr hin?
falls ichs i-wo vergessen hab:

mfg
Task-Manager

Rechtschreibfehler sind mein Eigentum und gewollt!

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

36

02.03.2008, 20:06

Ich benutze immer das hier:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// #################### Farben ###############################


#define CC_BLACK      0x0000
#define CC_BLUE       0x0001
#define CC_GREEN      0x0002
#define CC_RED      0x0004
#define CC_TURQUOISE  CC_BLUE  | CC_GREEN 
#define CC_PURPLE    CC_BLUE  | CC_RED 
#define CC_YELLOW    CC_GREEN | CC_RED
#define CC_GREY    CC_RED   | CC_GREEN | CC_BLUE

// Zusatz

#define CC_LIGHT        0x0008

#define CC_WHITE        CC_GREY  | CC_LIGHT

// Zum Mischen

#define CC_MIX(f,b)     ( f | (b << 4))


wobei man alles mit CC_LIGHT miachen kann

CC_MIX is zum mischen des Vordergrundes und des Hintergrundes

Task-Manager

Alter Hase

Beiträge: 1 087

Wohnort: am PC

Beruf: Student

  • Private Nachricht senden

37

02.03.2008, 20:39

THX!

ich hab sie ein wenig erweitert (glaube jetzt isses alles^^):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
enum ConsoleColor 
{ 
//----PrimärFarben----

  CC_Blue         = FOREGROUND_BLUE,                                        //Blau

  CC_Green        = FOREGROUND_GREEN,                                       //Grün

  CC_Red          = FOREGROUND_RED,                                         //Rot


//---SekundärFarben----

  CC_Grey         = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE,    //Grau

  CC_Yellow       = FOREGROUND_GREEN | FOREGROUND_RED,                      //Gelb                                                      //Schwarz

  CC_Cyan         = FOREGROUND_BLUE | FOREGROUND_GREEN,                     //Türkis

  CC_Viollet      = FOREGROUND_BLUE | FOREGROUND_RED,                       //Violett   


//---HelleFarben----

  CC_LightBlue    = FOREGROUND_BLUE | FOREGROUND_INTENSITY,                 //HellBlau

  CC_LightGreen   = FOREGROUND_GREEN | FOREGROUND_INTENSITY,                //HellGrün

  CC_LightRed     = FOREGROUND_RED | FOREGROUND_INTENSITY,                  //HellRot

  CC_LightViollet = CC_Viollet | FOREGROUND_INTENSITY,                      //Pink

  CC_LightCyan    = CC_Cyan | FOREGROUND_INTENSITY,                         //HellTürkis

  CC_LightYellow  = CC_Yellow | FOREGROUND_INTENSITY,                       //HellGelb


//---Sonstige----

  CC_White        = FOREGROUND_INTENSITY | CC_Grey,                         //Weiß

  CC_Black        = 0,                                                      //Schwarz

  CC_Intensity    = FOREGROUND_INTENSITY
}; 


wer noch mehr hat bitte posten^^
falls ichs i-wo vergessen hab:

mfg
Task-Manager

Rechtschreibfehler sind mein Eigentum und gewollt!

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

38

02.03.2008, 20:47

Hab ich ja schonmal gepostet:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

enum textcolors_e
{
    black,
    dblue,
    dgreen,
    dcyan,
    dred,
    dpurple,
    dgray,
    dwhite,
    gray,
    blue,
    green,
    cyan,
    red,
    purple,
    yellow,
    white
};

void setcolor( int back, int fore )
{
    int setback = 0;
    if ( back & 0x1 ) setback |= BACKGROUND_BLUE;
    if ( back & 0x2 ) setback |= BACKGROUND_GREEN;
    if ( back & 0x4 ) setback |= BACKGROUND_RED;
    if ( back & 0x8 ) setback |= BACKGROUND_INTENSITY;

    int setfore = 0;
    if ( fore & 0x1 ) setfore |= FOREGROUND_BLUE;
    if ( fore & 0x2 ) setfore |= FOREGROUND_GREEN;
    if ( fore & 0x4 ) setfore |= FOREGROUND_RED;
    if ( fore & 0x8 ) setfore |= FOREGROUND_INTENSITY;

    SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), setback | setfore );
}
@D13_Dreinig

SilentDragon

Alter Hase

Beiträge: 530

Wohnort: Köln

Beruf: Student

  • Private Nachricht senden

39

02.03.2008, 20:51

@ David_pb

bei dir kriegt man doch aber auch nicht mehr Farben als bei Blood raus oder ?
...

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

40

02.03.2008, 20:56

Nein bekommt man nicht. Find ich aber schöner aufgebaut! :)
@D13_Dreinig

Werbeanzeige