Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[C++ & DarkGDK] Gra zwalnia, potem się wykrzacza.

#1
[C++ & DarkGDK] Gra zwalnia, potem się wykrzacza.
Błąd:
Kod:
Unhandled exception at 0x0100fd46 in platformowka.exe: 0xC0000005: Access violation reading location 0x002ff062.

Przypuszczane miejsce, przez które się wykrzacza:

Kod:
void steruj_graczem()
{
    dbSprite(500 , gx , gy , 4);
    dbSetSpriteAlpha ( 500, n_alpha );
    if( n_alpha2 == true )
    { n_alpha++; }

    if( n_alpha2 == false )
    { n_alpha--; }

    switch(n_alpha)
    {
    case 0:
        n_alpha2=true;
        break;
    case 255:
        n_alpha2=false;
        break;
    }

    /*KOLIZJE*/
    nr_sciany=150;
    iii=0;
    for(iii=0 ; iii < 250 ; iii++)
    {

    if( ( dbSpriteCollision ( 500, 0 ) == nr_sciany ) && ( dbLeftKey() == 1 ) )
    {
        kolizja=true;
    }
    /*if( ( dbSpriteCollision ( 500, 0 ) == nr_sciany ) && ( dbRightKey() == 1 ) )
    {
        kolizja=true;
    }
    if( ( dbSpriteCollision ( 500, 0 ) == nr_sciany ) && ( dbUpKey() == 1 ) )
    {
        kolizja=true;
    }
    if( ( dbSpriteCollision ( 500, 0 ) == nr_sciany ) && ( dbDownKey() == 1 ) )
    {
        kolizja=true;
    }*/

    nr_sciany++;

    }

    /*poruszanie*/

    if( (dbLeftKey() == 1 ) && ( kolizja == false ))
        gx--;
    if( (dbRightKey() == 1 ) && ( kolizja == false ))
        gx++;
    if( (dbUpKey() == 1 ) && ( kolizja == false ))
        gy--;
    if( (dbDownKey() == 1 ) && ( kolizja == false ))
        gy++;
    
    //kolizja
    kolizja=false;
}
I parę zmiennych, gdyby nie były jasne z powyższego kodu:
Kod:
void laduj_plansze1();
void steruj_graczem();

int n_alpha=1;
bool n_alpha2=true;
bool kolizja=false;

int nr_sciany=150;//kolizje

int gx=100 , gy=100;

int iii=0;

...
...
...

int id1=1; //trawa
int id2=150; //sciana
int id3=400; //drzwi

Co być tu źle? Wesoły
[Obrazek: 9989.jpg]
Nowy hit przemysłu gier: http://yfrog.com/16hitvqj
#define private public //beware, classes, I'm coming! LOL
 System operacyjny: windows_vista Przeglądarka: firefox
#2
RE: [C++ & DarkGDK] Gra zwalnia, potem się wykrzacza.
A czy nie mógłbyś skorzystać z narzędzia zwanego debugger? Dzięki niemu śledzisz wykonywanie programu linijka po linijce.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#3
RE: [C++ & DarkGDK] Gra zwalnia, potem się wykrzacza.
Poprawka:

Błąd występuje, tylko gdy podczas gry wcisnę ctrl+alt+delete.
Wtedy w MVC++ zielona strzałka jest na końcu głównej pętli.
Kod:
bool l1=true;
    while ( LoopGDK ( ) )
    {
        if(l1==true)
        {
        laduj_plansze1();
        }
        l1=false;

        steruj_graczem();
        //dbSprite( 1 , 0 , 0 , 1);
        //dbSprite( 2 , 40 , 0 , 1);
        dbSync ( );
    } //------ TUTAJ
A z brzegu(call stack) są takie informacje:
Kod:
    platformowka.exe!CSpriteManager::UpdateAndDrawInDrawList()  + 0x16 bytes    C++
    platformowka.exe!ExternalDisplaySync()  + 0xcb bytes    C++
    platformowka.exe!Sync()  + 0x5 bytes    C++
>    platformowka.exe!DarkGDK()  Line 62    C++
    platformowka.exe!_WinMain@16()  + 0x13 bytes    C++
    platformowka.exe!__tmainCRTStartup()  Line 263 + 0x1b bytes    C
    kernel32.dll!760beccb()     
    [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]    
    ntdll.dll!77b0d24d()     
    ntdll.dll!77b0d45f()
[Obrazek: 9989.jpg]
Nowy hit przemysłu gier: http://yfrog.com/16hitvqj
#define private public //beware, classes, I'm coming! LOL
 System operacyjny: windows_vista Przeglądarka: firefox
#4
RE: [C++ & DarkGDK] Gra zwalnia, potem się wykrzacza.
Tryb pełnoekranowy czy okienko? W fullscreenie przy debugowaniu non stop mi się wykrzaczało.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#5
RE: [C++ & DarkGDK] Gra zwalnia, potem się wykrzacza.
Okienko 800x600
Kod:
dbSyncOn   ( );
dbSyncRate ( 60 );
dbSetDisplayMode ( 800 , 600 , 32 );
dbSetWindowPosition ( 0 , 0 );
----
gra(exe):
http://www.speedyshare.com/445675123.html
pełen kod:
http://wklej.org/hash/94eba2247a/

poratujcie Wesoły
----
Zwalnia podczas kolizji w lewo, gdybyście usuneli komentarz z pozostałych kolizji, zwolniłaby jeszcze bardziej.
----
Możliwe, że sprawdzanie wielu kolizji, tak bardzo spowalnia grę?
Jak tak, to w jaki inny sposób mam sprawdzać kolizję?
[Obrazek: 9989.jpg]
Nowy hit przemysłu gier: http://yfrog.com/16hitvqj
#define private public //beware, classes, I'm coming! LOL
 System operacyjny: windows_vista Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki ([C++ & DarkGDK] Gra zwalnia, potem się wykrzacza.)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Operacje na pliku [C] - zamiana char na int a potem wracam rogal180 4 3689 28.04.2011, 22:20
Ostatni post: gmp
  [C++]DirecrX oraz DarkGdk Gasge 8 2250 11.02.2010, 15:26
Ostatni post: Gasge
  Kolizja w DarkGDK Neomex Cpp 9 1851 14.04.2009, 13:52
Ostatni post: Innominate

Skocz do:


Wybrane wątki ([C++ & DarkGDK] Gra zwalnia, potem się wykrzacza.)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [JavaScript] Znajdowanie przedziału czasu rafal12999 0 2408 10.12.2019 17:58
Ostatni post: rafal12999
  Przekazywanie wskaźnika przez referencję w Qt Trojan3000 3 13213 10.12.2019 13:16
Ostatni post: Ajgor
  Proszę o pomoc w uzupełnieniu ankiety dt. Zawodu Programisty MaleMonki 0 2931 17.11.2019 12:47
Ostatni post: MaleMonki
  Spring framework – jakie strony polecacie do nauki? olek23 5 7409 15.11.2019 15:57
Ostatni post: Alsenas
  Programowanie windy (problem) w C++ mysza2323 2 6427 06.11.2019 23:04
Ostatni post: mysza2323
  Programy w C ~Anonim 1 6703 22.10.2019 17:48
Ostatni post: Szachista
  Książki do nauki C# olek23 14 20116 17.10.2019 13:06
Ostatni post: Ajgor
  Wyświetlanie informacji z bazy danych na stronie www PitPlay 1 7942 16.09.2019 11:18
Ostatni post: Ajgor
  Błąd przy uruchamianiu programu w Java z wiersza poleceń Physicist 3 4521 30.08.2019 14:16
Ostatni post: Physicist
  Python z wiersza poleceń Physicist 15 21389 21.08.2019 20:14
Ostatni post: Physicist
  Transfer plików via FTP Visual Basic FireBytes 3 7030 15.08.2019 07:41
Ostatni post: Szachista
  Menu wysuwane z boku patryk67 1 7700 07.08.2019 12:43
Ostatni post: aht
  Visual Basic Excel l.całkowitą przedstawić w postaci szesnastkowej fugaz 4 9602 18.06.2019 21:36
Ostatni post: fugaz
  Nauka do Olimpiady Informatycznej? piotr0905 1 9079 08.06.2019 16:50
Ostatni post: wlisik
Ściana Prosta gra w Builder C++ Kiranek1 1 9066 31.05.2019 15:20
Ostatni post: Szachista