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

11

11.02.2009, 20:19

Zitat von »"Andreas2"«

Wie kann ich denn ein Unicodezeichen einer bestimmten Schriftart in der Konsole ausgeben lassen?

Selbst wenn du das irgendwie schaffen solltest (ich glaube kaum, dass es überhaupt geht) wird es immernoch dumm aussehen, weil du ja Zeilenbasiert arbeitest und gar kein flüssiges scrollen hinkriegen kannst. Außerdem kannst du den 3D Effekt nciht hinkriegen.
Die Konsole ist eben dafür nicht gedacht, daher solltest du etwas grundlegend anderes benutzen. Für den 3D Effekt wäre halt OpenGl oder DirectX ganz cool.
Lieber dumm fragen, als dumm bleiben!

12

11.02.2009, 20:25

Mit WriteConsoleW (Windows only afaik) sollte das gehen.
Siehe auch: http://msdn.microsoft.com/en-us/library/ms687401(VS.85).aspx

ot
mmpf, blöde ms-links, die nicht in [url] mögen... :?
wave @ david scherfgen
/ot[/url]
fka tm

13

12.02.2009, 18:00

So - das ist zwar auch noch nicht ganz das wahre geht aber glaube ich schon in die richtig Richtung. :?

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
#include <windows.h>

using namespace std;

int main ()
{
    const unsigned int x = 20; // Zeile

    const unsigned int y = 50; // Spalte

    unsigned char aScreen[x][y]; 
    unsigned char aZeichen[] = {0,48,49};
    int iArraySize = sizeof(aZeichen)/sizeof(unsigned char);
    int iZeile = 0;

    // aScreen erstmal leer machen

    for(int i=0; i<x; i++)
    {
        for (int j=0; j<y; j++)
        {
            aScreen[i][j] = ' ';
        }
    }

    DWORD Zeit = GetTickCount()/1000+60;
    while(GetTickCount()/1000 <= Zeit)
    {
        // Die erste Zeile rendern

        for(int k=0; k<y; k++)
        {
            unsigned int Zufall1 = (rand()%y);
            unsigned int Zufall2 = (rand()%iArraySize);
            aScreen[iZeile][Zufall1] = aZeichen[Zufall2];
            
        }

        // Ausgabe (paint)

        for(int l=0; l<x; l++)
        {
            for(int m=0; m<y; m++)
            {
                cout << aScreen[l][m];
            }
            cout << endl;
            // Warten

            /*DWORD Zeit1 = GetTickCount();
            while(GetTickCount() <= Zeit1){}*/
        }
        
        system("cls");

        // iZeile behandeln

        if(iZeile < x-1)
        {
            iZeile++;
        }
        else if(iZeile == x-1)
        {
            iZeile = 0;
        }
        else 
            cout << "FEHLER!" << endl;
    }
    return 0;
}
"Der Wald wäre sehr leise, wenn nur die begabtesten Vögel singen würden."

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

14

12.02.2009, 18:26

Zitat von »"Jonathan_Klein"«

Zitat von »"Andreas2"«

Wie kann ich denn ein Unicodezeichen einer bestimmten Schriftart in der Konsole ausgeben lassen?

Selbst wenn du das irgendwie schaffen solltest (ich glaube kaum, dass es überhaupt geht)

Klar geht das.. irgendwie. Vor Unicode zeiten musste man ja auch klarkommen.
http://www.c-plusplus.de/forum/viewtopic-var-t-is-232651.html
Leider blieb das Problem da auch ungeloest
"Have you tried turning it off and on again?"

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

15

12.02.2009, 20:05

Sorry, habs gestern verpennt.

Hier ist das, was ich meinte:
http://www.c-plusplus.de/forum/viewtopic-var-t-is-218789-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-matrix+effekt-and-start-is-0.html

16

13.02.2009, 00:52

Gute Nacht! Ich habe es leider nicht hinbekommen die Japanischen Schriftzeichen (Unicode) in der Konsole anzeigen zu lassen :( und nach viel zu langem rumgetüftel an dem Matrix Bildschirmschoner für die Konsole bin ich zu dem Entschluß gekommen das es doch mehr Spaß macht ein Pacman zu programmieren oder einfach mal in dem Buch 3D-Spiele Programmierung zu lesen das ich mir letztens neu gekauft habe ;). Hier nochmal das was ich schon gepostet habe mit einer kleinen Änderung die die Zeichen farbig anzeigen läßt. console.h gibt es hier (falls sich das jemand antun möchte :D das Programm hier zu kompilieren)https://www.spieleprogrammierer.de/phpBB…opic.php?t=6965

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
#include <iostream>
#include <windows.h>
#include "console.h"

using namespace std;

int main ()
{
    int iNachRechts = 60;
    int iNachUnten = 24;
    int aFarben[] = {2,10};
    unsigned char aZeichen[] = {0, 35};
    int iArraySize = sizeof(aZeichen)/sizeof(unsigned char);
    int Zufall, Zufall1, Zufall2;

    DWORD Zeit = GetTickCount()/1000+100;
    while(GetTickCount()/1000<=Zeit)
    {
        for(int iZeile=0; iZeile<iNachUnten; iZeile++)
        {
            for(int iSpalte=0; iSpalte<iNachRechts; iSpalte++)
            {
                Zufall = rand()%iNachRechts;
                Console::gotoxy(Zufall,iZeile);
                Zufall1 = rand()%2;
                Console::attribute(aFarben[Zufall1]);
                Zufall2 = rand()%iArraySize;
                cout << aZeichen[Zufall2];
            }
        }
    }
    
    return 0;
}
"Der Wald wäre sehr leise, wenn nur die begabtesten Vögel singen würden."

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

17

13.02.2009, 12:12

Die WinAPI erlaubt es übrigens auch einen Konsolenpuffer zu erstellen und direkt in diesen zu Schreiben.

Werbeanzeige