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.


Pokaż wątki - Bloodian

Strony: [1] 2
1
Narzędzia / Xcode - testowanie gier (multitouch)
« dnia: Lipiec 29, 2012, 17:48:45 »
Witam,
czy jest jakiś sposób na testowanie gier które wymagają równoczesnego dotyku dwóch palców do gry w emulatorze ?
(np. po lewej "analog" do chodzenia, a po prawej "analog" do strzelania/zmieniania kamery).

Wiem że altem można włączyć "drugi palec" ale to się nadaje do pinchów bo drugi palec staje się odbiciem lustrzanym pierwszego.

2
Szkółka / [PERL] Regex
« dnia: Maj 05, 2012, 20:39:33 »
Mam male zadanie do zrobienia w PERLu.
Zostal mi jeden podpunkt:



W mojej naturze nie lezy zostawianie mojej roboty innym ludziom i wiem ze jedna z cech informatyka powinno byc szybkie czytanie i uczenie sie z dokumentacji, ale ja naprawde nie mam sily sie uczyc calej skladni tylko do tego zadania.
Moglbym prosic aby ktos napisal mi kod ktory by weryfikowal taki adres email ?
Dzieki.

3
Szkółka / [C++] Wyjatki - uzytecznosc.
« dnia: Kwiecień 08, 2012, 20:50:38 »
Rozmawialem z kolega ktory juz troche programuje "profesjonalnie", cokolwiek to znaczy.
Uslyszalem od niego ze programisci nie uzywaja systemu wyjatkow w c++. Czy to prawda ?

4
Szkółka / [c++] Pytania optymalizacyjne. (obiektowość).
« dnia: Kwiecień 01, 2012, 22:14:26 »
Witam.
Gryzie mnie parę pytań dotyczących obiektowości w C++.

1) Czy metody których ciała są wpisane bezpośrednio w klasie są automatycznie inline ? Żeby metoda byłe nie-inline trzeba stworzyć jej prototyp, a później poza klasą wypełnić ciałem ? Jeżeli tak to dlaczego ?

2)edit : racja, mój błąd. Źle przeczytałem. edit2: Asmen odpowiedział to wklejam pytanie


 Czytam sobie megatutorial i jest tu rozdział o tym jak wykonane jest dziedziczenie. Wynika z tego że jeżeli w klasie bazowej zrobimy np. pole int X i stworzymy klasę która dziedziczy od tej klasy, np. A to tworząc obiekt A, na stercie tak naprawdę mamy dwa pola X. Idąc tą myślą załóżmy że nasza klasa X jest megagigantyczna i ma dziesiątki tysięcy danych. Oznacza to że jeżeli stworzymy małe drzewo typu X->A->B->C->D to te wszystkie dane stworzą się 5 razy ?


3) Podobne pytanie, ale jeżeli chodzi o metody klasy/funkcje globalne. Czy jeżeli napiszę sobie np. z 10000 funkcji, a mój program użyje tylko jednej z nich to czy te wszystkie funkcje i tak zostaną załadowane do pamięci ?

Dzięki :)

5
Szkółka / [C++][SDL] - Mały problem z implementacją ruchu postaci
« dnia: Marzec 07, 2012, 17:41:35 »
Witam,
piszę sobie małą gierkę w SDL. Napisałem szybki algorytmik kolizji, teraz próbuję zaimplementować ruch.
Mam jednak problem bo chcę żeby na moją postać działała grawitacja i żeby spadała z małą akceleracją.

Problem w tym że SDL_Rect w którym podaje się pozycję sprite`a (używam SDL_BlitSurface ) posiada pola INT przez co akceleracja sztucznie wygląda.

Próbowałem zrobić SDL_Delay(30-80) w pętli, ale wtedy nastepują krótkie zwiechy

Jak to obejść ?

6
Szkółka / [c++]Funkcja jako argument funkcji.
« dnia: Styczeń 06, 2012, 17:16:41 »
void akcja ( void (*f) ( int , int ))
{
     /////
}


void akcja ( void f ( int , int ))
{
     ////
}

Krótka piłka. Jaka jest różnica ?
W obydwu wypadkach wywoływanie i przekazywanie argumentów działa tak samo.
Tak samo z wywoływaniem funkcji f w funkcji akcja.

7
Szkółka / [C++]Arytmetyka Wskaźników
« dnia: Grudzień 23, 2011, 19:52:12 »
Mam zadanie do szkoły, aby napisać program bez "[]", a więc muszę użyć arytmetyki wskaźników.
Zadanie z pozoru proste, ale jednak nie do końca bo coś mi się krzaczy :)

tworzę sobie mapę :

NODE ** map = new NODE*[y];
for ( int i = 0; i < y ; i++)
map[i] = new NODE[x];

NODE to typ struktury.
wiem że dalej mam brackety, ale później zamienię sobie na alokację pamięci w C ( malloc ) - whatever.

teraz chcę sobie stworzyć funkcję która będzie zwracać wskaźnik do danego elementu tablicy :

NODE * getArray ( int dim1 , int dim2)
{
    NODE ** temp = map;
    for ( int i = 0 ; i < dim1 ; i++)
    {
        temp++;
    }
    for ( int i = 0; i < dim2 ; i++)
    {
        (*temp)++;
    }
 
    return *temp;
}

jest tutaj pewnie jakiś głupi błąd. Może ten kod w ogóle nie ma sensu. Ale operacje na wskaźnikach są dalej dla mnie trochę abstrakcyjne.

Dzięki z góry za pomoc :)

8
Szkółka / [c++] Problem z dziedziczeniem.
« dnia: Październik 30, 2009, 23:50:26 »
Znowu-> Glupie pytanie, szybka pilka :)
A wiec mam sobie jakas strukture danych vector albo drzewko, nie wazne.
Prezentuje ona skladniki poziomu.
Struktura przyjmuje i zapisuje wskaznik na obiekt cEntity ktora jest klasa bazowa dla cEnemy, cMainPlayer, cCokolwiek.

1.a wiec tworze sobie jakiegos entity

cEntity* rzecz = new cEnemy;
mam wskaznik typu cEntity na obiekt cEnemy (chociaz nie do konca rozumiem jak to dziala, a w poradniku Xiona nie moge sie doszukac)

2.zapisuje w strukturze.

Pozniej mam klase ktora loaduje ten level, przeczesujac strukture, do kazdej pochodnej stosujac odpowiednia instrukcje.
I teraz pytanie -> Jak rozpoznac jakiego typu(?) jest cEntity, zeby moc zloadowac inne zachowanie dla cEnemy, cMainPlayer, cCokolwiek.
Zgaduje ze zle rozumuje. Wyprowadzcie mnie z lasu, prosze :)

Jezeli jednak dobrze rozumuje -> Czy jest jakis prosty sposob ?


edit:
typo

9
Literatura / Sredniawo-Zaawansowany - I co dalej ?
« dnia: Październik 28, 2009, 19:30:07 »
 Jestem w kropce. Zgubilem sie. Nie wiem co robic.
Jestem na poziomie gdzie rozumiem C++, napisalem swoje pierwsze gry w Irrlichcie. Dosyc latwo mi sie czyta API chociaz czasem mam problemy i zwracam sie z nimi tutaj :)
Moj kod nijak nie przypomina kodu "profesjonalnego". To znaczy sie, jest na podstawach OOP, ma obiekty wrogow, bohatera, silnika, ale ciagle mam wrazenie ze dla prawdziwego programisty wygladalo by to smiesznie. Dochodze do swojego wymarzonego planu, zrobilem kolizje, jakies skakanie, strzelanie, poruszanie sie z akceleracja. Wszystko dziala, ale napisane jest prosto typu:

klasa wrog
{
zmienna skakania
tablica modeli[30]
zmienna pozycji.x

poruszanie()
oblicz kolizje(mesh boxa)
}

pozniej tylko tworze klase poza petla, w konstruktorze loaduja mi sie wszystkie dane a w petli robie poruszanie() i oblicz kolizje dla kazdego osobnego boxa.

Przeszukalem pare ksiazek, miedzy innymi ostatnio:
- Programming Role Playing Games with DirectX
- Game Coding Complete

i przedstawione sa tam znowu metody ktore uwazam sa juz ekstremalne. W Programming Role Playing Games, autor stworzyl silnik skryptowy, uzywajac jakichs zewnetrznych programow pozniej implementuje elementy gry.
Co wy robliscie ? Skad nauczyliscie sie prawidlowych struktur programow ? Czytalem tez algorytmy i struktury danych, i mam mniej wiecej pomysl, jak to mozna uzyc w grach, ale tez nie do konca potrafilbym cos takiego napisac, bo mi tablice calkowicie wystarczaja :)
Jakies ksiazki o schematach OOP/strukturach danych... Cokolwiek. Co wy robliscie kiedy byliscie na takim poziomie ?
Jestem praktykiem, wszystkiego wole sie nauczyc piszac kod, niz klepac ksiazke po ksiazce. Tak tez zrobilem, na szybko przeczytalem kurs c++, a pozniej majac jakas podstawowa wiedze, robilem kupe bledow, ale szybko sie uczylem.

edit:
typo
ps.sorry za brak polskich znakow-> angielski windows.

10
Szkółka / [C++, Irrlicht] Tablica wektorow.
« dnia: Wrzesień 29, 2009, 23:11:29 »
Chce odczytac wierzcholki z boundingBoxa przy pomocy funkcji getEdges.

http://irrlicht.sourceforge.net/docu/classirr_1_1core_1_1aabbox3d.html

"getEdges (vector3d< T > *edges) const
    Stores all 8 edges of the box into an array. "

niestety nie potrafie rozczytac sie w kodzie, jako ze ominalem czesc kursu C++ z Templatkami  ;)

Jak zapisac tablice wektorow w irrlichcie ? Czy to moze calkowicie inaczej sie robi.


11
Literatura / Przygotowanie do Matury/Olimpiady z informatyki.
« dnia: Wrzesień 24, 2009, 15:43:04 »
Trudno ocenić mój poziom zaawansowania :) Przeczytałem cały kurs, c++, od tego się zaczęło, ale ta wiedza jest mało przydatna do matury/olimpiady, podstawowe zmienne, pętle, tablice.
Programuje sobie jakieś gierki w directx3/irrlicht, na razie nic zaawansowanego, jakieś proste algorytmy skakania, akceleracji, kolizji. Też mało przydatne, bo to wolna amerykanka, co mi logika na myśl przyniesie a później metoda prób i błędów (raz mi się chyba zdarzyło że wszystko poszło po myśli za pierwszym razem :) )

Co o algorytmach muszę wiedzieć, jakie algorytmy muszę znać żeby zacząć rozwiązywać zadania:
http://www.oi.edu.pl/  o olimpiadzie -> Zadania
http://www.cke.edu.pl/images/stories/Arkusze_matura_09/informatyka/PP/PP_I.pdf

O ile zadania z matury zdają się dosyć łatwe, pseudo-kod, trochę logiki, o tyle te z olimpiady nie mam pojęcia jak zacząć :)

Problem w tym że nie chce kończyć następnej 500 stronicowej książki, tylko jakie rozdziały/tematy/stronki musiałbym w tym momencie przerobić.

12
Matematyka i fizyka / Glupi problem z matrycami.
« dnia: Sierpień 18, 2009, 16:03:33 »
Skonczylem wlasnie pierwsza klase liceum i jedyne moje informacje na temat matryc pochodza z paru ebookow i nie za bardzo potrafie sobie poradzic z tym problemem:) Problem nie wiaze sie tylko z matematyka, ale tez z API directxa.

Mam grupe wierzcholkow ktore tworza quad(kwadrat1x1). Teraz musze dane o wierzcholkach przemnozyc przez jedna z matryc transformujacych (np. D3DXMatrixTranslation), zeby uzyskac ich pozycje po uzyciu transformacji. Zeby to latwo przemnozyc dane wierzcholkow (X,Y,Z) musza sie znajdowac w danych typu D3DXMATRIX.

Teraz pytanie jak wlozyc dane wspolrzedne X,Y,Z do matrycy 4x4 (D3DXMatrix dziala tylko w takim typie) aby po przemnozeniu byly prawdziwe. Może to dziecinne proste, ale jak mówię, nie mam podstaw, wiem po prostu mniej więcej jak to działa.

Albo, jak to inaczej ugryźć ?

13
Szkółka / [C++, Directx]Typ D3DXMATRIX
« dnia: Sierpień 18, 2009, 14:56:49 »
A wiec... niby to takie latwe, ale rwe sobie na tym wlosy.
Tworze sobie macierz

D3DXMATRIX x;

i jak teraz ta strukture wypelnic danymi ? Zalozmy ze chce miec jednowymiarowa matryce...


definicja typu w directx API:
(czarna magia jak dla mnie)

#ifdef __cplusplus
typedef struct D3DXMATRIX : public D3DMATRIX
{
public:
    D3DXMATRIX() {};
    D3DXMATRIX( CONST FLOAT * );
    D3DXMATRIX( CONST D3DMATRIX& );
    D3DXMATRIX( CONST D3DXFLOAT16 * );
    D3DXMATRIX( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
                FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
                FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
                FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 );


    // access grants
    FLOAT& operator () ( UINT Row, UINT Col );
    FLOAT  operator () ( UINT Row, UINT Col ) const;

    // casting operators
    operator FLOAT* ();
    operator CONST FLOAT* () const;

    // assignment operators
    D3DXMATRIX& operator *= ( CONST D3DXMATRIX& );
    D3DXMATRIX& operator += ( CONST D3DXMATRIX& );
    D3DXMATRIX& operator -= ( CONST D3DXMATRIX& );
    D3DXMATRIX& operator *= ( FLOAT );
    D3DXMATRIX& operator /= ( FLOAT );

    // unary operators
    D3DXMATRIX operator + () const;
    D3DXMATRIX operator - () const;

    // binary operators
    D3DXMATRIX operator * ( CONST D3DXMATRIX& ) const;
    D3DXMATRIX operator + ( CONST D3DXMATRIX& ) const;
    D3DXMATRIX operator - ( CONST D3DXMATRIX& ) const;
    D3DXMATRIX operator * ( FLOAT ) const;
    D3DXMATRIX operator / ( FLOAT ) const;

    friend D3DXMATRIX operator * ( FLOAT, CONST D3DXMATRIX& );

    BOOL operator == ( CONST D3DXMATRIX& ) const;
    BOOL operator != ( CONST D3DXMATRIX& ) const;

} D3DXMATRIX, *LPD3DXMATRIX;

#else //!__cplusplus
typedef struct _D3DMATRIX D3DXMATRIX, *LPD3DXMATRIX;
#endif //!__cplusplus



#ifdef __cplusplus
typedef struct _D3DXMATRIXA16 : public D3DXMATRIX
{
    _D3DXMATRIXA16() {}
    _D3DXMATRIXA16( CONST FLOAT * );
    _D3DXMATRIXA16( CONST D3DMATRIX& );
    _D3DXMATRIXA16( CONST D3DXFLOAT16 * );
    _D3DXMATRIXA16( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
                    FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
                    FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
                    FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 );

    // new operators
    void* operator new   ( size_t );
    void* operator new[] ( size_t );

    // delete operators
    void operator delete   ( void* );   // These are NOT virtual; Do not
    void operator delete[] ( void* );   // cast to D3DXMATRIX and delete.
   
    // assignment operators
    _D3DXMATRIXA16& operator = ( CONST D3DXMATRIX& );

} _D3DXMATRIXA16;

#else //!__cplusplus
typedef D3DXMATRIX  _D3DXMATRIXA16;
#endif //!__cplusplus

14
Szkółka / [Directx] Kontrola wierzcholkow.
« dnia: Sierpień 05, 2009, 21:53:48 »
A wiec. Tworze sobie prosta platformowke.
Kazda platformowka potrzebuje platform, yes ?

A wiec tworze bufor wierzcholkow z ktorego tworze prosty kwadrat.

Problem jest taki ze z samych kwadratow 1x1 tej platformowki nie stworze, a wiec nastaje pytanie:
 - Jakie sa popularne sposoby na kontrole wspolrzednych wierzcholkow jezeli potraktuje prymitywa matrixem ? :)
= zalozmy ze mam kwadrat x,y,z i zrobie mu skalowanie. Jak odczytac jego wierzcholki (potrzebuje tych danych zeby odkryc najlatwiejsze kolizje).

moglbym uzyc logiki co platforma, to nowe dane do bufora, ale to nie wygodne i z pewnoscia rozpieprzylo by mi caly kod. Watpie zeby tak sie robilo.

prosze wybaczyc za brak polskich znakow  :o


edit:
przychodzi mi pare pomyslow, ale chce wiedziec jak popularnie sie to robi, jak Wy to robicie :)


15
Szkółka / [dx9] color keying
« dnia: Maj 16, 2009, 14:38:00 »
Robię grę 2d w środowisku 3d - oryginalniejsze efekty.

Mam oteksturowanego poly - mój główny bohater.

Mam drugiego poly, jako tło.

Muszę jakoś usunąć czarne tło z bohatera żeby nie pokazywało się na różnokolorowym tle z tyłu.

odpowiedź jest oczywista, color keying. Ale to nie działa ...

użyłem tego kodu:

http://directxtutorial.com/Tutorial9/B-Direct3DBasics/dx9B12.aspx

dodałem mojego poly z teksturą tła między kółkami

na testy. i wychodzi tak że tło kółek przenika tylko dla siebie nawzajem, a moje tło kryje się z tyłu.

http://img35.imageshack.us/img35/6787/poly.jpg     - obrazek poglądowy :))

nie ważne czym wywołam tą teksturę CreateFromFileEX czy zwyklym CreateFromFile, textura kryje się za keyami.

Jakieś pomysły ?

Strony: [1] 2