Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - P@tyS

Strony: 1 ... 6 7 8 9 [10]
136
C++ / Odp: Rogulike - problem z mapa
« dnia: Wrzesień 01, 2013, 10:19:28 »
Dzięki, rzeczywiście teraz wszystko działa.

137
C++ / Odp: Rogulike - problem z mapa
« dnia: Sierpień 31, 2013, 23:52:36 »
nPlayerX+nDeltaX daje 4 lub 6 w zaleznosci w ktora strone.
tak samo nPlayerY+nDeltaY
*nPlayerX i Y =5

138
C++ / Odp: Rogulike - problem z mapa
« dnia: Sierpień 31, 2013, 18:08:51 »
Sorry za spam, ale to tak może działać?
for(int a=0; a<MAP_HEIGHT; a++)
{
for(int b=0; b<MAP_WIDTH; b++)
{
//los=rand()%15;
//if(los<3)
nMapArray[a][b]=5;
//else
//nMapArray[a][b]=0;
}
}
if(nMapArray[nPlayerY+nDeltaY][nPlayerX+nDeltaX] == 0) //TILE_TREE
{
nMapArray[nPlayerY+nDeltaY][nPlayerX+nDeltaX] = 0; //TILE_GRASS
mvprintw( 22, 1, "Scięto drzewo");
}
else
mvprintw( 22, 1, "Brak drzewa");


*ale nie zmienia na 0, bo wyswietla sie dalej "T" i nie moge tam przejsc

139
C++ / Odp: Rogulike - problem z mapa
« dnia: Sierpień 31, 2013, 17:56:56 »
U mnie nadal cos nie tak a są trzy drzewa.
PS.W załączniku bo nie wiem jak wkleić

140
C++ / Odp: Rogulike - problem z mapa
« dnia: Sierpień 31, 2013, 17:34:26 »
Może coś nie tak z wyświetlanoem mam:
kodzik:


//funkcja rysujaca pojedynczy kafelek
void DrawTile(int x, int y)
{
if(x<0)
x=0;

if(x>MAP_HEIGHT)
x=MAP_HEIGHT;

if(y<0)
y=0;

if(y>MAP_WIDTH)
y=MAP_WIDTH;

int nType = nMapArray[y][x];
attron( COLOR_PAIR( sTileIndex[nType].nColor ) );
mvprintw( y, x, sTileIndex[nType].cCharacter);
attroff( COLOR_PAIR( sTileIndex[nType].nColor ) );
}


//funkcja rysujaca cala mape
void DrawMap()
{
for(int a=0; a<MAX_VIEW_X; a++)
{
for(int b=0; b<MAX_VIEW_Y; b++)
{
DrawTile(a,b);
}
}

}


141
C++ / Rogulike - problem z mapa
« dnia: Sierpień 31, 2013, 16:51:07 »
Witam.
Otóż mam mapę ktora przyjmuje wartości 0(trawa) lub 5(drzewo) i przy funkcji CutTree nie mogę zmienić 0 na 5, bo wszędzie widzi, że jest trawa lub drzewo jak zamienie na 5 przy sprawdzaniu warunku.

to część kodu z map.h:
struct TILE_TYPE
{
const char* cCharacter; //znak ASCII dla tego kafelka
short nColor; //kolor tego kafelka
bool bPassable; //ustaw na true jesli mozna chodzic
};

//globalna tablica z typami podloza(kafelkow)
static TILE_TYPE sTileIndex[] = {
{".", 1, true}, //(0) TILE_GRASS
{"#", 2, false}, //(1) TILE_WALL
{"/", 2, true}, //(2) TILE_OPENDOOR
{"+", 2, false}, //(3) TILE_CLOSEDOOR
{".", 2, true}, //(4) TILE_FLOOR
{"T", 1, false} //(5) TILE_TREE
};


//mapa
static int nMapArray[MAP_HEIGHT][MAP_WIDTH];

tak wypelniam tablice nMapArray:
//funkcja tworzaca swiat
void GeneretingWorld()
{
srand(time(0));
int los;

for(int a=0; a<MAP_HEIGHT; a++)
{
for(int b=0; b<MAP_WIDTH; b++)
{
los=rand()%15;
if(los<3)
nMapArray[a][b]=5;
else
nMapArray[a][b]=0;
}
}
}



 a to z player.c:

//scinanie drzew
void Player::CutTree()
{
mvprintw( 21, 1, "W ktorym kierunku? 8,4,2,6");
char ch=getch();
int nDeltaX=0;
int nDeltaY=0;
switch(ch)
{
case '8': //gora
nDeltaX=0;
nDeltaY=-1;
break;
case '2': //dol
nDeltaX=0;
nDeltaY=1;
break;
case '4': //lewo
nDeltaX=-1;
nDeltaY=0;
break;
case '6': //prawo
nDeltaX=1;
nDeltaY=0;
break;
}
if(nMapArray[nPlayerY+nDeltaY][nPlayerX+nDeltaX] == 5) //TILE_TREE
{
nMapArray[nPlayerY+nDeltaY][nPlayerX+nDeltaX] = 0; //TILE_GRASS
mvprintw( 22, 1, "Scięto drzewo");
}
else
mvprintw( 22, 1, "Brak drzewa");

}

zamieniałem [nPlayerY+nDeltaY][nPlayerX+nDeltaX] na to [nPlayerY+nDeltaY][nPlayerX+nDeltaX]
i wartości nDeltaX i nDeltaY i nadal nie mogę ściąć drzewa :(

142
C++ / Odp: Pętla for a wyswietlanie fragmentu mapy
« dnia: Sierpień 22, 2013, 19:46:34 »
Ja rozwiązałem to w ten sposób:



for(int a=0; a<20; a++)
{
for(int b=0; b<30; b++)
{
if(tab_map[x+a][y+b]==1)
{
attron( COLOR_PAIR( 1 ) );
mvprintw(a,b,"Y");
attroff( COLOR_PAIR( 1 ) );
}
else
{
attron( COLOR_PAIR( 1 ) );
mvprintw(a,b,".");
attroff( COLOR_PAIR( 1 ) );
}
}
}

if(ch == 'a')
{
y--;
}

else if(ch == 'd')
{
y++;
}

else if(ch == 'w')
{
x--;
}

else if(ch == 's')
{
x++;
}

if(x<1)
x=1;
if(y<1)
y=1;

i teraz tworze sobie klase.

143
C++ / Odp: Pętla for a wyswietlanie fragmentu mapy
« dnia: Sierpień 22, 2013, 14:37:16 »
Używam tego sposobu, gdy chce wyświetlic całą mapę, a tutaj zastanawiam się nad wyświetlaniem odpowiednich fragmentów, jeszcze muszę zrobić żeby nie latało to mi po ekranie gdy klikam wsad.

144
C++ / Odp: Pętla for a wyswietlanie fragmentu mapy
« dnia: Sierpień 22, 2013, 14:26:17 »
Brzydko napisane, bo tylko testuje jedno z rozwiązań do większego projektu, a za te taby/spacje przepraszam, ale wyciąłem to z kodu. I rzeczywiście tab_map[a][ b] dostawal ujemne wartości, a nie powninien.
Dziękuję.

145
C++ / Pętla for a wyswietlanie fragmentu mapy
« dnia: Sierpień 22, 2013, 14:08:30 »
Witam.

Może najpierw kod:

        if(ch == 'a')
{
y--;
}

if(ch == 'd')
{
y++;
}

if(ch == 'w')
{
x--;
}

if(ch == 's')
{
x++;
}
X=x+5;
Y=y+5;

for(a=x; a<X; a++)
{
  for(b=y; b<Y; b++)
{
if(tab_map[a][b]==1)
{
  attron( COLOR_PAIR( 1 ) );
mvprintw(a,b,"Y");
attroff( COLOR_PAIR( 1 ) );
}
  else
{
attron( COLOR_PAIR( 1 ) );
mvprintw(a,b,".");
attroff( COLOR_PAIR( 1 ) );
}
}
}


Program się dobrze kompiluje, ale po uruchomieniu przestaje działać. Terminal w linuxie wypisuje: Naruszenie ochrony pamięci (core dumped)
Czemu to nie działa?

146
Allegro / Odp: ALLEGRO5 bitmap[]
« dnia: Lipiec 09, 2013, 14:01:46 »
Dobra. Znalazłem.
trzeba dodać
#include <allegro5/allegro_image.h>
...
al_init_image_addon();

*do zamknięcia :D

147
Allegro / Odp: ALLEGRO5 bitmap[]
« dnia: Lipiec 09, 2013, 13:27:36 »
Moja wersja allegro to 5.0.9

Rzeczywiście program zwraca 0 dla bitmapy.
void LoadRes(char* filename_res)
    {
        config_map = al_load_config_file(filename_res);
        if(!config_map)
            printf("nie zaladowano configa");
        bitmap[0]=al_load_bitmap( "data/gfx/grass.png" );
        if(!bitmap[0])
            printf("Blad ladowania bitampy0");
        bitmap[1]=al_load_bitmap( al_get_config_value(config_map, "", "res1") );
        if(!bitmap[1])
            printf("Blad ladowania bitampy1");
        bitmap[2]=al_load_bitmap( al_get_config_value(config_map, "", "res2") );
        if(!bitmap[2])
            printf("Blad ladowania bitampy2");
    }

Dlaczego nie mogę załadować bitmapy. Ścieżka do pliku jest dobrze ustawiona.

148
Allegro / Odp: ALLEGRO5 bitmap[]
« dnia: Lipiec 09, 2013, 12:43:31 »
ALLEGRO_BITMAP* bitmap[100];

149
Allegro / ALLEGRO5 bitmap[]
« dnia: Lipiec 09, 2013, 12:33:14 »
Witam.
Otóż mam problem z wyświetlaniem bitmapy z tablicy. Całość trzymam w klasie Map. Fragmenty kodu:
//tablica bitmap
ALLEGRO_BITMAP* bitmap[100];

//funkcja ladujaca tekstury
void LoadRes(char* filename_res)
    {
        config_map = al_load_config_file(filename_res);
        if(!config_map)
            printf("nie zaladowano configa");
        bitmap[0]=al_load_bitmap( al_get_config_value(config_map, "", "res0") );
        bitmap[1]=al_load_bitmap( al_get_config_value(config_map, "", "res1") );
        bitmap[2]=al_load_bitmap( al_get_config_value(config_map, "", "res2") );

    }

//petla do wyswietlania mapy
for(int a=0;a<x_tiles;a++)
        {
            for(int b=0;b<y_tiles;b++)
            {
                if(array_map[a][b]==0)
                {
                    al_draw_bitmap(bitmap[0],b *size_tile +xOff,a * size_tile +yOff,0);
                }
                else if(array_map[a][b]==1)
                {
                    al_draw_bitmap(bitmap[1],b *size_tile +xOff,a * size_tile +yOff,0);
                }
                else if(array_map[a][b]==2)
                {
                    al_draw_bitmap(bitmap[2],b *size_tile +xOff,a * size_tile +yOff,0);
                }
            }
        }

Program się poprawnie kompiluje, ale w konsoli wyskakuje błąd:

Assertion failed: bitmap, file D:\Libraries\build\allegro\src\allegro-git\allegr
o-git\src\bitmap_draw.c, line 137

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Process returned 3 (0x3)   execution time : 0.594 s
Press any key to continue.

Strony: 1 ... 6 7 8 9 [10]