@Hexmage960, post #1226
@Hexmage960, post #1230
Nie zgadzam się z tym. Zgodzę się, że się nadal uczę, ale zrobiłem ogromny postęp w rysowaniu.
@niebuszewo, post #1232
@Hexmage960, post #1234
Selur napisał, że brak mi talentu do rysowania. Z tym można polemizować, bo też innym jakoś moje prace się podobają.
@snajper, post #1235
2. ile było uwag i poprawek na drodze do tych "podobających się prac"? Pisanie w tej sytuacji o talencie nieodparcie kojarzy mi się z:
1. gdyby Twoje prace podobały się 5% odbiorców, też można by powiedzieć "innym jakoś się podobają". :)
@Hexmage960, post #1236
@Hexmage960, post #1234
Zauważ, że zapowiedziałem koniec prac nad nową wersją na koniec czerwca tylko raz i nie chciałem się powtarzać.
@JacK_Swidnik, post #1239
@JacK_Swidnik, post #1242
@JacK_Swidnik, post #1244
@Hexmage960, post #1245
Co jest dobrą wiadomością, to że silnik nowej wersji jest w dużej mierze gotowy. Co jest nowością to lista obiektów, która jest skanowana na bieżąco. Aktualnie jedyny obsługiwany obiekt to bohater
, ale jak będą taśmociągi to również skrzynie będą się samoczynnie poruszać.
Aktualnie dodaję typy kafli.
@amikoksu, post #1247
Ta lista obiektów, to rozumiem w chwili obecnej ten bohater?
To ma być za dwa dni?
Po co?
struct Obiekt {
struct MinNode mn;
WORD pto;
WORD x, y;
};/* Podstawowe typy obiektów */
enum {
PTO_BRAK,
PTO_SKRZYNIA,
PTO_BOHATER
};struct Plansza {
struct Pole tab[ PLANSZA_WYS ][ PLANSZA_SZER ];
struct List obiekty;
struct Obiekt bohater;
WORD bx, by; /* Położenie bohatera */
WORD skrzynie; /* Liczba skrzyń na planszy */
WORD ulozone;
WORD dx, dy; /* Kierunek ruchu bohatera */
};struct Pole {
WORD ptp : 4; /* Podstawowy typ podłogi */
WORD pto : 4; /* Podstawowy typ obiektu */
struct Obiekt *ob;
};/* Skanuj listę obiektów (silnik) */
void skanujObiekty( struct Plansza *pl )
{
struct Obiekt *ob;
for( ob = ( struct Obiekt * ) pl->obiekty.lh_Head; ob->mn.mln_Succ != NULL; ob = ( struct Obiekt * ) ob->mn.mln_Succ ) {
switch( ob->pto ) {
case PTO_BOHATER:
if( pl->dx || pl->dy )
przemiescBohatera( pl, ob );
break;
}
}
}struct Obiekt *dodajObiekt( struct Plansza *pl, WORD x, WORD y, struct Pole *po )
{
struct Obiekt *ob;
pl->tab[ y ][ x ].pto = po->pto;
if( ob = AllocMem( sizeof( *ob ), MEMF_PUBLIC ) ) {
ob->x = x;
ob->y = y;
AddTail( &pl->obiekty, ( struct Node * ) &ob->mn );
return( ob );
}
return( NULL );
}@mschulz, post #1250
@Hexmage960, post #1251
Proszę kolegi, jest tam podstawowy działający silnik Sokobana.
Silnik gry zawiera się w funkcjach skanujObiekty() i przemiescBohatera().
@mschulz, post #1252
Obecnie sa to w sumie 284 linijki kodu, lacznie z pustymi liniami. Jak dla mnie to nie jest dzialajacy silnik Sokobana, ale ja sie moze nie znam.
PS. Obserwujac historie projektu na GitHub-ie widze ze u ciebie od jakiegos czasu wraz z kazdym kolejnym commitem do repozytorium kodu ubywa.
Github to nie tylko miejsce na gotowe fragmenty programu, tam sie trzyma cale repozytorium.
Sporo, czyli co konkretnie?
I z czym masz największą trudność?
@Hexmage960, post #1254
Brakuje tylko wyliczenia skarbów, drzwi i kluczy i innych elementów w nowej wersji
@Hexmage960, post #1249
/* Podstawowe typy obiektów */
typedef enum {
PTO_BRAK,
PTO_SKRZYNIA,
PTO_BOHATER
} ObjectTypes;struct Obiekt {
struct MinNode mn;
ObjectTypes pto;
WORD x, y;
};@amikoksu, post #1257