Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro] Edytor map kafelkowych

Ostatnio zmodyfikowano 2012-03-06 20:42
Autor Wiadomość
poldek
Temat założony przez niniejszego użytkownika
[Allegro] Edytor map kafelkowych
» 2012-03-04 09:41:57
Witam.
Od dwóch dni próbuję zrobić Edytor Map wszystko idzie gładko dopóki nie wyświetlam mapy wtedy cały program tnie i nie mogę znaleźć przyczyny ,a tej metody rysowania używałem już wiele razy...

Map.h
C/C++
#ifndef MAP_H
#define MAP_H

#include <allegro.h>
#include "Global.h"
class Map
{
public:
    short int Mapa[ 100 ][ 100 ];
   
    Map();
    ~Map();
   
    void Draw( BITMAP * bufor );
    void clear( void );
};

#endif // MAP_H

Map.cpp
C/C++
#include "Map.h"

Map::Map()
{
   
}

Map::~Map()
{
   
}

void Map::Draw( BITMAP * bufor )
{
    for( int i = 0; i < 25; i++ )
    {
        for( int a = 0; a < 20; a++ )
        {
            if( Mapa[ a ][ i ] == 0 )
            {
                rectfill( bufor, i * BlockSize, a * BlockSize, i * BlockSize + BlockSize, a * BlockSize + BlockSize, makecol( 100, 0, 0 ) );
            }
        }
    }
}

void Map::clear( void )
{
    for( int i = 0; i < 100; i++ )
    for( int a = 0; a < 100; a++ )
         Mapa[ i ][ a ] = 0;
   
}

Cały projekt -> http://wrzucacz.pl/file/3391330850447
P-51901
Chlorek
» 2012-03-06 20:42:12
Szybkie odświeżanie całej mapy o sporych rozmiarach powoduje przycięcia programu. Można użyć Sleep()/rest po każdym wykonaniu pętli (co nie jest nazbyt dobrym rozwiązaniem) lub stworzyć wątek do renderowania mapy (dobre rozwiązanie przy dużych mapach i wszędzie tam gdzie będziesz robił dużo obliczeń w trakcie innych procesów programu), co do synchronizowania wątków to nie wiem co to dokładniej będzie więc nie powiem czy synchronizować, czy też nie. Jeśli będzie to gra to spróbuj synchronizować.
P-52106
« 1 »
  Strona 1 z 1