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

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

1

21.05.2006, 19:35

Ladenbalken. WIE???

hi
ich habe mir überlegt man könnte ja im Spiel einen Ladebalken einbauen.
Nur habe ich keine Vorstellung wie man sowas machen könnte.

kann mir einer mal ein paar tips geben??

danke

mfg

Anonymous

unregistriert

2

21.05.2006, 19:43

Je nachdem, wenn z.B. DirectX initialisiert wird, dann könntest du z.B. ein
Stückchen des Ladebalkens einblenden, dann z.B. Modelle, ein weiteres
Stückchen, Levels, noch ein Stückchen, usw...

MfG DarkRaider.

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

3

21.05.2006, 19:46

gute idee
aber wie schaffe ich das nach dem lade immer ein kleines stückchen angezeigt wird.

man könnte ja ne variable hochzählen. wenn sie den wert 1 hat dann zeige das stück bei wert von 2 das usw.

aber wie lasse ich die stücke erscheinen

mfg GhostRider

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

4

21.05.2006, 19:54

zB indem du vier vertizes als rechteck nimmst, wobei die linken beiden einfach an ihrer stelle stehen bleiben und die rechten beiden um diese schritte nach rechts weiter verschoben werden. wenns toll aussehen soll, dann kannst du auch ne richtig aufwändige ladebalken textur malen und dann auch die uv koords der vertizs entsprechend verschieben...
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Anonymous

unregistriert

5

21.05.2006, 20:05

Du kannst auch einfach Bitmaps nehmen, wo z.b. erst ein viertel dargestellt
wird und dann noch eine, wo die hälfte dargestellt wird, usw.

MfG Riddick04

P.S.: Hab auch schon öfters über sowas nachgedacht, bin aber erst selbst
gerade darauf gekommen ;)

Anonymous

unregistriert

6

21.05.2006, 20:09

MSDN + "Progress Bar" ergab diesen SourceCode:

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// ParseALargeFile - parses a large file and uses a

// progress bar to indicate the progress of the

// parsing operation. 

// Returns TRUE if successful, or FALSE otherwise. 

// hwndParent - parent window of the progress bar. 

// lpszFileName - name of the file to parse. 

// 

// Global variable 

//     g_hinst - instance handle 


extern HINSTANCE g_hinst; 

BOOL ParseALargeFile(HWND hwndParent, LPSTR lpszFileName) 
{ 
    RECT rcClient;  // Client area of parent window 

    int cyVScroll;  // Height of scroll bar arrow 

    HWND hwndPB;    // Handle of progress bar 

    HANDLE hFile;   // Handle of file 

    DWORD cb;       // Size of file and count of

                    // bytes read 

    LPCH pch;       // Address of data read from

                    // file 

    LPCH pchTmp;    // Temporary pointer 


 

    // Ensure that the common control DLL is loaded

    // and create a progress bar along the bottom of

    // the client area of the parent window. 

    // Base the height of the progress bar on the

    // height of a scroll bar arrow. 

    InitCommonControls(); 
    GetClientRect(hwndParent, &rcClient); 
    cyVScroll = GetSystemMetrics(SM_CYVSCROLL); 
    hwndPB = CreateWindowEx(0, PROGRESS_CLASS,
             (LPSTR) NULL, WS_CHILD | WS_VISIBLE,
             rcClient.left, rcClient.bottom
             cyVScroll, rcClient.right, cyVScroll, 
             hwndParent, (HMENU) 0, g_hinst, NULL); 

   // Open the file for reading, and retrieve the

   // size of the file. 


    hFile = CreateFile(lpszFileName, GENERIC_READ,
            FILE_SHARE_READ, (LPSECURITY_ATTRIBUTES)
            NULL, OPEN_EXISTING,
            FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); 

    if (hFile == (HANDLE) INVALID_HANDLE_VALUE) 
        return FALSE; 

    cb = GetFileSize(hFile, (LPDWORD) NULL); 

    // Set the range and increment of the progress

    // bar. 


    SendMessage(hwndPB, PBM_SETRANGE, 0,
                MAKELPARAM(0, cb / 2048)); 
    SendMessage(hwndPB, PBM_SETSTEP, (WPARAM) 1, 0); 

    // Parse the file. 

    pch = (LPCH) LocalAlloc(LPTR, sizeof(char) *
           2048); 
    pchTmp = pch; 
    do { 
        ReadFile(hFile, pchTmp, sizeof(char) * 2048,
                 &cb, 
            (LPOVERLAPPED) NULL);
        // TODO: Write an error handler to check that all the

        // requested data was read. 

        . 
        . 
        // Include here any code that parses the

        // file. 

        . 
       // Advance the current position of the

       // progress bar by the increment. 

       SendMessage(hwndPB, PBM_STEPIT, 0, 0); 
      } while (cb); 

   CloseHandle((HANDLE) hFile); 
   DestroyWindow(hwndPB);
    
    return TRUE; 
}

Ob es nun ein Progress Bar Object ist oder eine Bitmap ist Schnuppe! Das Beispiel zeigt wie man es macht ;)

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

7

21.05.2006, 20:25

danke für all die viele antworten. ich werde mal sehen was ich mache^^

mfg GhosRider

8

22.05.2006, 15:28

Hintergrund schwarz o.Ä.
1. Textur: Der "Rand" des Balkens, innen transparent.
2. Textur: Der Balken selbst, dank Transparenz erscheint der unter der ersten Textur.

2. textur verschieben (Prozentzahl ausrechnen) und gut ist's.

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

9

23.05.2006, 14:44

läuft der dann auch flüssig oder springt der immer bissen weiter^^

Phili

unregistriert

10

23.05.2006, 15:24

Kannst ja machen, das er einfach zeitabhängig ist, dann läuft er flüssig. Sonst eher nicht...

Werbeanzeige