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 - Lerhes

Strony: 1 2 3 [4] 5 6 7 8 ... 25
46
DirectX / Odp: Pobieranie wskaźnika na urządzenie renderujące.
« dnia: Czerwiec 05, 2011, 21:14:55 »
Przypomina to problem, opisany tutaj:
http://forum.warsztat.gd/index.php?topic=21748.msg256561
Lerhes

47
Narzędzia / Odp: Jaki kompilator?
« dnia: Czerwiec 05, 2011, 19:53:00 »
A! Bo to chodziło, że przez QtCreator jest problem?
W takim razie moja paczka jest bez sensu. W sumie nie korzystam z QtCreatora, bo i po co uczyć się brudów nowego IDE, jak stare zna się już całkiem nieźle.

Więc, podsumowując: Owszem, to co wrzuciłem to oczywiście przez VS przepuszczone. Niczego to nie potwierdza, ani nie obala w tej dyskusji.

PS: to dość dziwne, żeby były problemy z uruchomieniem kodu korzystającego z biblioteki QT wygenerowanego przez IDE dedykowanego do tego celu.

A zaraz? A to co mówi kozmo ma sens. Skoro Ci te biblioteki od QT działają pod VS, to nie skompilowałeś ich czasami pod VS (to znaczy kompilując, nie użyłeś czasami spec msvs2010?)? Bo może dokładnie o to chodzić: biblioteki do QT masz zrobione kompilatorem VS, a próbujesz ich używać potem z MinGW.
Lerhes

48
Narzędzia / Odp: Jaki kompilator?
« dnia: Czerwiec 05, 2011, 16:00:05 »
Jakoś nie miałem z tym nigdy problemu.. ale w sumie mało platform / konfiguracji sprawdziłem. A możesz tę małą paczkę sprawdzić? Na komputerze bez dodatkowych bibliotek?
http://dl.dropbox.com/u/27430724/Test.rar
http://wyslijto.pl/plik/haxs0jmbpy

Uwaga: Po uruchomieniu wyświetla się malutkie okienko w lewym górnym rogu.
Lerhes

49
C++ / Odp: C4127
« dnia: Czerwiec 04, 2011, 18:23:51 »
Zgodnie z tym, to while(true) generuje to ostrzeżenie:
Cytuj
http://msdn.microsoft.com/en-us/library/6t66728h(v=vs.80).aspx

Co ja o tym myślę? Nic. Na tym poziomie warning level wskazuje Ci to miejsce, jako potencjalne miejsce błędu (może źle napisałeś tego while? Może jednak miał być tutaj warunek?) a to, że tam tak naprawdę nie ma błędu...  no cóż.. sam chciałeś tak dokładnie. Możesz wyłączyć to ostrzeżenie i po problemie.
Lerhes

50
Zrób tak jak napisano tutaj:
Cytuj
http://www.asawicki.info/news_1151_directx_debug_i_dxcpl.html
i zobacz Co ci wypisze DirectX.
(Co prawda, to poradnik do DX9, ale DX10 raczej jakoś dramatycznie pod tym względem się nie zmienił?)
Lerhes

51
C++ / Odp: StringFrom<int> i Thread Safe error.
« dnia: Czerwiec 04, 2011, 15:10:02 »
No tak, ale teraz masz po prostu zwykłe funkcje i podczas pisania musisz wybierać (zastanawiać się!) którą użyć. Tak sobie jeszcze głośno myślę nad tym tematem. Zabezpieczenie tego tak jak sugerował mINA87:
Cytuj
Co za problem wstawić locka explicite

Jest pewnym problemem, np jeżeli zrobić to tak:

template <class type>
string stringFrom(type in)
{
static boost::shared_mutex _access;
_access.lock();

ostringstream ss;
ss << in;

string tmp = ss.str();
_access.unlock();
return  tmp;
}

To przy wywołaniu stringFrom dla różnych typów, tak naprawdę niczego nie udało nam się zabezpieczyć (mutex będzie tworzony dla każdego typu).
W przypadku:
boost::shared_mutex _access;
template <class type>
string stringFrom(type in)
{
_access.lock();
ostringstream ss;
ss << in;
string tmp = ss.str();
_access.unlock();
return  tmp;
}
Mamy zmienną globalną (nikt nie lubi zmiennych globalnych).
Rozwiązaniem było by zamknięcie całego mechanizmy w klasie i wystawienie statycznej funkcji do konwersji:
class convert
{
public:
template <class type> static string stringFrom(type in)
{
getMutex().lock();
ostringstream ss;
ss << in;
string tmp = ss.str();
getMutex().unlock();
return  tmp;
}
private:
static boost::shared_mutex & getMutex()
{
static boost::shared_mutex _access;
return _access;
}
};
Ale wtedy wywołanie jest dłuższe:
cout<<convert::stringFrom(12);
float pa =  1.2f;
cout<<convert::stringFrom(pa);
Chyba, że można to zrealizować jeszcze inaczej?
Użyłem boostowych mechanizmów, bo jakieś trzeba było wybrać.
Lerhes

52
Platformy mobilne / Odp: [WP7] Czy jest opłacalny?
« dnia: Czerwiec 02, 2011, 23:34:19 »
Cytuj
po co sie pchac z mac osx na zwykly pc skoro producent zakladal inaczej
Myśli, myśli, myśli.... żeby nie zapłacić 1000+ zł za komputer apple?

W moim przypadku wystarczyło sprawdzić czy procesor obsługuje virtualizację (jest do tego do pobrania z google prosty tool). Zrobiłem go na wirtualnej maszynie, a po zainstalowaniu specjalnego programu (dołączonego do wirtualnej maszyny) uzyskałem prędkość działania dużo powyżej zadowalającej. Emulator iphona + Xcode działały bardzo dobrze, prędkość kompilacji / emulacji były zadowalające. Żadnych problemów z klawiaturą, dźwiękiem i internetem. Mogłem korzystać z AppStore zarówno na Windows jak i Macu. Oczywiście system Snow Leopard.
(jeszcze do tego co napisał lukasyno pozwolę sobie wyrazić własne zdanie na temat samego systemu: Przyzwoity. Xcode dawał radę. Korzystanie z systemu, oprócz ciekawego rozwiązania z paskiem jakoś nie różniło się bardzo od klasycznego linuxa ).
Cała wiedza jak zrobić coś takiego jest ogólnie dostępna w internecie.
Lerhes

53
Pobawiłem się trochę.
Debugger VS uruchamiał mi się dość często :)
Zachowanie obiektów (fizyka) średnio fizyczna (nienaturalnie wolno spadają, nienaturalnie się rozpędzają itp.)
Same portale działają bardzo dobrze.
Podobał mi się również edytor efektów.
Trochę słabo z FPS.

Ogólnie pozytywne wrażenie.
Lerhes

54
Narzędzia / Odp: IDE do modelowania klas i algorytmów
« dnia: Maj 30, 2011, 15:17:39 »
Ale narzędzie które jest w 0:41 to przecież część UDK, która do modelowania klas i algorytmów się nie nadaje (ja sobie tego nie wyobrażam). Nie myślałeś, żeby użyć narzędzi dedykowanych do tych celów? Czyli diagramów UML?
Ja korzystam z BARDZO prostego, ale na moje potrzeby wystarczającego: UMLet. Jest darmowy, prosty i łatwy. W załączniku przykładowy opis prostego algorytmu. Diagramy klas też się w nim łatwo tworzy.

Edit: Przypomniało mi się coś jeszcze. Jeżeli używasz VS2010 (nie jestem pewien w jakiej wersji) to tam też są diagramy UML. Gdzieś czytałem, że nie do końca zgodne ze specyfikacją UML (nasz kochany MS) ale modelować można. Niestety, generowanie kodu z tych diagramów działa chyba tylko z C#.

Jeżeli chcesz poszukać jeszcze innego narzędzia, to programów są tysiące. Google ma dużo do powiedzenia na temat tego, który wybrać.
Lerhes

55
DirectX / Odp: Problem z prymitywami
« dnia: Maj 30, 2011, 15:03:42 »
char* CameraDebug;
sprintf( CameraDebug, "%f", 0.01 );
Wydaje mi się, że błąd może być spowodowany tym, że jeździsz po pamięci. Czy zaalokowałeś gdzieś miejsce na CameraDebug? sprintf zakłada, że tak.. a widząc ten fragment, nie robisz tego.
char * CameraDebug = new char[50];

//Ubiegł mnie, bazyliszek.
Lerhes

56
Allegro / Odp: Allegro5 - wczytanie bitmapy
« dnia: Maj 29, 2011, 22:23:00 »
O teraz dopiero zauważyłem, że coś dodałeś do tej odpowiedzi (fragment kodu).

("D:\C++\Allegro_drawing\Allegro_drawing\sprite.bmp", "r");
Ścieżki źle podajesz. Pojedynczy ukośnik to znak, że po nim nastąpi znak specjalny. Dlatego ta ścieżka jest nieprawidłowa. Zamień w niej pojedyncze ukośniki na podwójne, np:
("D:\\C++\\Allegro_drawing\\Allegro_drawing\\sprite.bmp", "r");

Jeszcze lepiej, jakbyś używał relatywnych ścieżek... żeby projekt kompilował się u innych. Czyli jak masz obrazki w folderze "assety", to wczytuj je tak:
("assety\\sprite.bmp", "r");
Gdzie umieścić folder assety, podałem Ci powyżej.
Lerhes

57
Szkółka / Odp: Początki SDL
« dnia: Maj 29, 2011, 14:13:10 »
Zagadnienia które Cię interesują świetnie opisane są w książce "C++ projektowanie systemów informatycznych". Książka ma swoje 14 lat, ale zagadnienia w niej poruszane są nadal aktualne. Szczególnie dużo materiału poświęcone jest właśnie fizycznej (a nie logicznej) organizacji projektów.
Lerhes

58
Szkółka / Odp: Dziwny błąd (Deasemblacja?)
« dnia: Maj 29, 2011, 06:29:46 »
Doprowadziłem to do stanu, żeby działało (VS2010). Jak można zauważyć jest już dość późno (dla niektórych pewnie wcześnie), więc tak ogólnie:
Wywaliłem z map.h pole terrain_. I tak do niczego go nie używasz. Zmodyfikowałem wczytywanie, do takiej postaci:
for (int y = 0; y < h_; y++) {
        for (int x = 0; x < w_; x++) {
            //file >> terrain_[x][y];
int tmp;
file >> tmp;
            sf::Image tile;
            std::string name;
            //switch(terrain_[x][y]){
switch(tmp){
                case TERRAIN::GRASS:
name="grass";
break;
case TERRAIN::WATER:
name="water";
break;
}
tile=ResourceManager::Get().GetImage("terrain/"+name);
terrainGfx_.Copy(tile,x*TILE::W,y*TILE::H,sf::IntRect(0,0,TILE::W,TILE::H),0);
}
}

Dzięki temu projekt w ogóle się kompilował (coś, źle używasz multi_array z boosta... przynajmniej tak mi kompilator podpowiada -> a w sumie nie wiem po co tutaj to multi_array).

No i oczywiście zonk -> nie wyświetla nic. Masz coś skopanego z tworzeniem okna. To znaczy, zamiast utworzyć go jak pan tutorial podpowiada (czyli zaraz na początku funkcji main) trzymasz sf::RenderWindow w klasie App jako pole. W konstruktorze robisz:
window_.Create(sf::VideoMode(winWidth, winHeight, 32), caption.c_str(),
             fullscreen ? sf::Style::Fullscreen : sf::Style::Close);
Jednak z jakichś powodów (nie chce mi się szukać jakich) ten kod nie tworzy poprawie okna SFML. Najłatwiej to rozwiązać (bez modyfikacji), gdy się przekaże flagę fullscreen na true (na pełnym ekranie działa ok). Jak się nie przekaże, to ja na szybko zmodyfikowałem kod do:

main:
sf::RenderWindow Appp(sf::VideoMode(800, 600, 32), "SFML Graphics");
    App game(SCREEN::W,SCREEN::H, &Appp , 0,"The Game!");

Klasa app.h:
class App {
public:

explicit App(size_t winWidth, size_t winHeight, sf::RenderWindow * win, bool fullscreen,
            std::string caption) : window_(win)
{
isDone_ = false;   //Jak mogles o tym zapomniec, od razu konczyl petle glowna i tyle gry.
window_ = win;
        //window_.Create(sf::VideoMode(winWidth, winHeight, 32), caption.c_str(),
        //        fullscreen ? sf::Style::Fullscreen : sf::Style::Close);
    }
    void Run();

private:
    bool isDone_;
    sf::RenderWindow * window_;
    AppStatePtr state_; //Stan aplikacji (Menu, Game, Credits)

    void Draw();
    void Update(double dt);
    void ProcessEvents();
    void Init();
};

#endif
Potem jeszcze kilka prostych zmian w App.cpp  (kropki na strzałki :) + przy przekazywaniu windows_ do funkcji dodatkowo *) no i poszło w oknie również.
Jak będziesz miał z tym jeszcze jakieś problemy, to wrzucę kod który mi pod VS działa. Na razie pomęcz się sam, żeby coś podszkolić w naprawianiu kodu. Powodzenia.
Lerhes

59
Szkółka / Odp: Dziwny błąd (Deasemblacja?)
« dnia: Maj 28, 2011, 18:42:57 »
Tu mi się bardzo nie podoba:
    sf::Image image;
    std::string path = "gfx/" + name + ".png";
    image.LoadFromFile(path);
    ImageResource ir(image);
    images_.insert(std::make_pair(name, ir));
    return images_.find(name)->second.image_;
sf::Image image; to obiekt lokalny, a tutaj: ImageResource ir(image); odbierasz go przez referencję. Potem wrzucasz to do mapy, jeżeli tutaj nie wykona się kopiowanie (albo licznik referencji się nie zwiększy), to na końcu bloku obiekt lokalny zostanie zniszczony i będą w mapie śmieci.

Podobnie w:
InsertSound(const std::string& name)
Taj linijki mi VS2010 nie przepuści.
terrain_.resize(boost::extents[w_][h_]);
Było by miło, jak wrzucasz kod, to jednak wrzucaj go z plikami projektów (bo w przeciwnym razie sam muszę robić...). No i jak mam odtworzyć twój błąd bez assetów ? Zrób lepszą tę paczkę, to może da się coś zrobić.
Lerhes

60
Projekty zaawansowane / Odp: Anodia (iOS)
« dnia: Maj 26, 2011, 23:24:14 »
Wygląda ładnie :) to ja mam pytanie do technikaliów, tylko jedno:
Skoro kod jest napisany w 98% w C++ przy użyciu bibliotek C++ (na pewno?)  (OpenAl, Box2D) to jak to udało wam się przenieść do Obj-C? To znaczy, z czego korzystaliście? Bo możliwości jest już całkiem dużo -> ale jakoś nie jestem do żadnej z nich przekonany.
Pytam z czystej ciekawości, z góry dziękuję za odpowiedź.
Lerhes

Strony: 1 2 3 [4] 5 6 7 8 ... 25