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

22.03.2011, 16:38

hast du schon was gefunden?

12

22.03.2011, 16:43

Irgendwo musst du doch sicher noch sowas wie g_pFramework->Display() oder g_pFramework->Flip() anwenden um überhaupt etwas anzuzeigen.
Außerdem schadet ein g_pFramework->Clear() sicher auch nicht.

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

13

22.03.2011, 16:47

Tut er in der neuen Version scheinbar auch. Aber update UND flip zu benutzen ist nicht nötig. Flip sollte bei Doublebuffer Angelegenheiten verwendet werden, so wie du es tust.
Und nein habe noch gar nicht groß gesucht.
Ich wäre eher dafür, dass du selbst es mal versuchst und zumindest den Fehler eingrenzt.
Wie wärs wenn du dir alle paar Zeilen Nachrichten ausgibst und guckst, bis zu welcher Nachricht man kommt und kommentierst dann mal großzügig Code aus um zu sehen, ob's dann läuft? Das wäre Fehler eingrenzen.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

14

22.03.2011, 17:04

der Fehler müsste irgendwo bei der Bildschirmausgabe sein weil es dort nicht mehr geht.

Eigentlich sollte der Rest stimmen weil man bei sowas keine großen Fehler machen kann aber was mich wundert bei einem anderen spiel geht es

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

15

22.03.2011, 17:06

der Fehler müsste irgendwo bei der Bildschirmausgabe sein weil es dort nicht mehr geht.

Eigentlich sollte der Rest stimmen weil man bei sowas keine großen Fehler machen kann aber was mich wundert bei einem anderen spiel geht es

Dann zeig mal deinen kommentierten Code und sag mir, bis zu welcher Nachricht es geht (;
Bzw. kommentier mal den betreffenden Teil aus: funktioniert es nun? Also bleibt das Fenster offen?
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

16

22.03.2011, 17:12

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
#include "Sprite.hpp"
#include "Framework.hpp"

//  map größe
const unsigned int map_breite = 20;
const unsigned int map_hoehe = 10;

// tile größe
const int tile_breite = 40;
const int tile_hoehe = 40;

// beschreibt die Anzahl der Sprites, 
// die in der Map verwendet werden
const unsigned int sprite_anzahl = 7;

std::cout << "Fail Define" << std::endl;

// die map
unsigned int tilemap[map_hoehe][map_breite] =
  { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 1,
    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 
    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1,
    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 0, 0, 0, 0, 1,
    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 
    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1,
    1, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1,
    1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };

std::cout << "Fail Tile" << std::endl;

int main (int argc, char *argv[])
{
    int Auswahl = 0;

     if (g_pFramework->Init (800, 600, 32, false) == false)
     {
         std::cout << "Fail INIT" << std::endl;
     }

    // Sprites erstellen
    CSprite map_sprites[7];


    // Grafiken laden
    map_sprites[0].Load("Texturen/boden.png", 0, 40, 40);
    map_sprites[1].Load("Texturen/wand.png", 0, 40, 40);
    map_sprites[2].Load("Texturen/kerkertuer.png", 0, 40, 40);
    map_sprites[3].Load("Texturen/zellentuer.png", 0, 40, 40);
    map_sprites[4].Load("Texturen/schatz.png", 0, 40, 40);
    map_sprites[5].Load("Texturen/monster.png", 0, 40, 40);
    map_sprites[6].Load("Texturen/held.png", 0, 40, 40);

    std::cout << "Fail Load" << std::endl;

    while (true)
    {
        for( int i = 0; i < map_hoehe; i++)
        {
            // alle zeilen durchlaufen
            for( int j = 0; j < map_breite; j++)
            {
                    // boden zeichnen
                map_sprites[tilemap[i][j]].SetPos(j*tile_breite, i*tile_hoehe);
                map_sprites[tilemap[i][j]].Render();

                std::cout << "Fail Render" << std::endl;

            }
        }
        g_pFramework->Flip ();
        g_pFramework->Update ();
        
        std::cout << "Fail Schleife" << std::endl;

    }


    return 0;

}


Bei mir zeigt es aber die Fehler nicht in der Konsole an habe es im debug modus gemacht

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

17

22.03.2011, 17:15

Und bis zu welcher Nachricht kommt er genau?
Und hast du mal etwas auskommentiert und geguckt, ob es was bringt? z.B. den Render Teil?

edit: du hast wirklich außerhalb der main bzw. einer Funktion std::cout aufgerufen? Das allein sollte doch schon Fehler werfen.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

18

22.03.2011, 17:18

Es war bei mir bis zu Fail init

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

19

22.03.2011, 17:19

Es war bei mir bis zu Fail init

Siehe meinen edit.
D.h. fail init wurde ausgegeben? Dann hätten wir ja schon den betreffenden Fehlerteil :P
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Phalax

Frischling

Beiträge: 82

Beruf: Student Media Systems

  • Private Nachricht senden

20

22.03.2011, 18:15

Zitat

while (true)
{
for( int i = 0; i < map_hoehe; i++)
{
// alle zeilen durchlaufen
for( int j = 0; j < map_breite; j++)
{
// boden zeichnen
map_sprites[tilemap[j]].SetPos(j*tile_breite, i*tile_hoehe);
map_sprites[tilemap[i][j]].Render();

std::cout << "Fail Render" << std::endl;

}
}
g_pFramework->Flip ();
g_pFramework->Update ();

std::cout << "Fail Schleife" << std::endl;

}
[/i]
Probiere mal oben unter "while (true)" g_pFramework->Update(); und g_pFramework->Clear();
und am Ende der Schleife g_pFramework->Flip();

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Phalax« (22.03.2011, 21:30)


Werbeanzeige