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

26.09.2010, 18:40

eigentlich jetzt nur noch
const unsigned int SCREEN_W = 800;
const
unsigned int SCREEN_H = 600;
denn Rest hab ich selber hingekriegt

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

12

26.09.2010, 18:53

eigentlich jetzt nur noch
const unsigned int SCREEN_W = 800;
const
unsigned int SCREEN_H = 600;
denn Rest hab ich selber hingekriegt

Was genau ist das Problem damit?
Das sind so genannte Konstanten, mittels const deklarierte Variablen lassen (bzw. sollten) sich nicht verändern.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

13

26.09.2010, 19:06

also
9main.cpp expected `)' before '?' token
9main.cpp expected `,' or `;' before '?' token
10main.cpp expected `)' before '?' token
10main.cpp expected `,' or `;' before '?' token

das wars

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

14

26.09.2010, 19:13

also
9main.cpp expected `)' before '?' token
9main.cpp expected `,' or `;' before '?' token
10main.cpp expected `)' before '?' token
10main.cpp expected `,' or `;' before '?' token

das wars

Dann poste doch mal die Zeilen 8 - 11.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

15

26.09.2010, 19:15

ok

Quellcode

1
2
3
4
5
6
7
8
9
10
#include <allegro.h>
#include <time.h>
 
volatile int timerCounter = 0;
static void timerCounterUpdater(){
    timerCounter++;
} END_OF_STATIC_FUNCTION(timerCounterUpdater);
    
        const unsigned int SCREEN_W = 800;
        const unsigned int SCREEN_H = 600;

ich hab jetzt mehr gepostet da reihe 8 und 11 lehr sind

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

16

26.09.2010, 19:23

In diesen Zeilen sehe ich keinen Fehler.
Poste mal das gesamte Script, möglichst eingerückt und dieses mal in C++ Tags.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

17

26.09.2010, 19:29

ich hab jetzt das verwendet was du mir gegeben hast mit den änderungen.

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
#include <allegro.h>
#include <time.h>
 
volatile int timerCounter = 0;
static void timerCounterUpdater(){
    timerCounter++;
} END_OF_STATIC_FUNCTION(timerCounterUpdater);
    
        const unsigned int SCREEN_W = 800;
        const unsigned int SCREEN_H = 600;

int main() { 
    allegro_init();
    
    install_keyboard();
    install_timer();
    
    vsync();
    LOCK_FUNCTION(timerCounterUpdater);
    LOCK_VARIABLE(timerCounter);
    
    
    
    install_int_ex(timerCounterUpdater, BPS_TO_TIMER(60));
    
    set_color_depth(32);
    set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, 800, 800, 0, 0);
    
    BITMAP * doublebuffer = create_bitmap(SCREEN_H, SCREEN_W);
    BITMAP * logo = load_bitmap("allegro.tga", NULL);
    
    bool needsRefresh;
    
    unsigned int cur_skip = 0;
    unsigned int max_skip = 6;
    
    if (timerCounter > 0) {
        do {
            timerCounter--;
            cur_skip++;
            
            if(cur_skip >= max_skip) {
                timerCounter = 0;
                break;
            }
        } while(timerCounter > 0);
        
        needsRefresh = true;
    }
    
    if (needsRefresh) {
        acquire_bitmap(doublebuffer);
        
        clear(doublebuffer); 
        blit(logo, doublebuffer, 0, 0, 0, 0, logo->w, logo->h);
        
        release_bitmap(doublebuffer);
        
        blit(doublebuffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H);
        
        needsRefresh = false;
    }
} END_OF_MAIN();

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

18

26.09.2010, 19:36

C-/C++-Quelltext

1
2
3
set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, 800, 800, 0, 0);
    
BITMAP * doublebuffer = create_bitmap(SCREEN_H, SCREEN_W);

Einmal legst du fest, dass dein Fenster 800 x 800 ist, und dann legst du jedoch nur einen Doppelbuffer der Größe 600 x 800 an.
Verwende für beides die Konstanten:

C-/C++-Quelltext

1
2
3
set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, SCREEN_W, SCREEN_H, 0, 0);
    
BITMAP * doublebuffer = create_bitmap(SCREEN_W, SCREEN_H);

Mit was kompilierst du denn? Und wie?
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

19

26.09.2010, 19:44

ich kompielire mit mingw32 mein ich also dem normalen kompiler von dev c++ und ohne makefile also über button achja warum ist das wort stan.dart zensiert?

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

20

26.09.2010, 19:51

Ich würde dir empfehlen, das ganze nochmal neu zu probieren und dir dabei/davor eines oder mehrere dieser vielen Tutorialsüber das Timer Handling via Allegro durchzulesen.
Zudem: hat das Buch nicht sogar auf der CD genügend Beispiel Codes? Schnapp dir davon eins und untersuch es, sofern es funktioniert.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Werbeanzeige