-
Postów
551 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Madness
- Poprzednia
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- Dalej
-
Strona 2 z 26
-
Jak uniezależnić prędkość gry od fpsów?
Madness odpowiedział(a) na Czołg Krymski temat w Pytania początkujących
Co do uniezależnienia prędkości obiektu od ilości klatek, to chyba można skorzystać np. z takiego czegoś: boost = maksymalna_ilość_klatek/aktualną_ilość_klatek A potem np. hspeed = prędkość*boost. Wydaje mi się, że to da rade. Przykładowo: maxFPS - 60, ilość FPS - 60, prędkość - 3 prędkość = 3*(60/60) prędkość = 3 --------------------------- maxFPS - 60, ilość FPS - 30, prędkość - 3 prędkość = 3*(60/30) prędkość = 6 Myśle, że to wystarczy. EDIT: Ale widze, że YXE już wstawił wersje standardową. -
Wielokrotnie poległem na łączeniu tych dwóch bibliotek, ale na forum sfml'a udało mi się znaleźć kod który mi w tym pomógł. Po paru poprawkach, aplikacja skompilowała się. Napotkałem jednak dziwaczny problem, pomimo tego że mogę sobie rysować co chce poprzez sfml'a, to wygląda to tak: (Standardowa tekstura 128x128 z ikoną Code::Blocks'a i window.clear(sf::Color::Black)) Kolor tła mogę zmieniać na całej powierzchni, ale rysować niestety tylko na takiej (na dole, po lewej widać czerwony kwadrat to właśnie ten kawałek tekstury). Jakieś pomysły ? #include <wx/wx.h> #include <SFML/Graphics.hpp> #ifdef __WXGTK__ #include <gdk/gdkx.h> #include <gtk/gtk.h> #include <gdk/gdkprivate.h> #include <gtk/gtkwidget.h> #endif class SFMLRenderWindow : public wxControl, public sf::RenderWindow { public: sf::Texture tex; sf::Sprite spr; sf::View view; sf::RenderTexture rt; SFMLRenderWindow(wxWindow * parent, int id) : wxControl(parent,id) { //wxControl(parent,id); #ifdef __WXGTK__ gtk_widget_realize(m_wxwindow); gtk_widget_set_double_buffered(m_wxwindow, false); GdkWindow* Win = gtk_widget_get_window(m_wxwindow); XFlush(GDK_WINDOW_XDISPLAY(Win)); sf::RenderWindow::Create(GDK_WINDOW_XWINDOW(Win)); #else sf::ContextSettings settings; settings.depthBits = 32; settings.antialiasingLevel = 6; sf::RenderWindow::create(GetHandle(),settings); #endif sf::RenderWindow::setSize(sf::Vector2u(800,600)); Bind(wxEVT_PAINT, &SFMLRenderWindow::onPaint, this); Bind(wxEVT_ERASE_BACKGROUND, &SFMLRenderWindow::onEraseBackground, this); Bind(wxEVT_IDLE, &SFMLRenderWindow::onIdle, this); Bind(wxEVT_KEY_DOWN, &SFMLRenderWindow::onKeyDown, this); tex.loadFromFile("cb.bmp"); tex.setRepeated(true); spr.setTexture(tex); // view.setCenter(0,0); // view.setViewport(sf::FloatRect(0.0f,0.0f,1.0f,1.0f)); // rt.create(800,600,true); // rt.clear(); // spr.setTexture(rt.getTexture()); //setView(view); } ~SFMLRenderWindow() {} void onPaint(wxPaintEvent& e) { wxPaintDC(this); sf::RenderWindow::setActive(); //sf::RenderWindow::resetGLStates(); sf::RenderWindow::clear(sf::Color::Black); sf::RenderWindow::draw(spr); spr.move(-0.01f,-0.01f); sf::RenderWindow::display(); } void onEraseBackground(wxEraseEvent& e) { // Do nothing } void onIdle(wxIdleEvent& e) { Refresh(); } void onKeyDown(wxKeyEvent& e) { if (e.GetKeyCode() == WXK_F11) { printf("F11"); } else e.Skip(); } }; // Test application class wxMiniApp : public wxApp { public: virtual bool OnInit(); }; IMPLEMENT_APP(wxMiniApp) bool wxMiniApp::OnInit() { wxFrame* frame = new wxFrame(NULL, -1, "SFML RenderWindow", wxDefaultPosition, wxSize(800, 600)); new SFMLRenderWindow(frame, -1); frame->Show(); return true; } EDIT: Dobra, udało mi się. Odpowiednio pomieszałem kod z tutka dla SFML 1.6 z powyższym i działa jak trzeba.
-
Odpowiedź jest prosta Hamachi/Tunngle. :) Początkowo też wybrałem hamachi, ale borderlands nie wyszukiwał serwera kolegi, jak na tunngle wbiłem na czyjś serwer, widziałem w borderlandsie serwery innych osób, tak jak i mojego kolegi. Gwarancji 100% nie ma, zawsze może pojawić się jakiś problem, ale raczej zagrasz. Wiele gier w trybie multi działało mi na Tunngle, a na hamaku raczej rzadziej. Ja akurat nie mam dostępu do router'a więc nie moge sobie odblokować portów, a co za tym idzie Tunngle to dla mnie dobre rozwiązanie.
-
jak zrobić ciągnący się za postacią ślad
Madness odpowiedział(a) na Pato220 temat w Pytania początkujących
Najprostszy sposób, to stworzenie obiektu o danym sprite, np. jakimś szlamem. W momencie, kiedy zaczynasz chodzić uruchamiasz alarm a w nim tworzysz nowy obiekt (szlam) na pozycji gracza. Kiedy się zatrzymujesz, wyłączasz alarm. Co do skoku, no to np. szlam tworzysz przed skokiem/podczas upadku na platforme. -
A to niby czemu ? :)
-
Co znaczy "przełączyć między postaciami"? Chcesz, żeby po wciśnięciu spacji dało się sterować tą drugą? Jeśli tak, to wystarczy sobie stworzyć obiekt kontrolujący która postać ma być pod naszą kontrolą i np. to dzięki niemu sterować postacią. Np. GML // Zdarzenie Create target = standardowy_obiekt; //Zdarzenie Step /* Poruszanie się postaci przy pomocy target np.: if( keyboard_check(...) ) target.x += predkosc; ... */ Ten sposób może Ci nie wystarczać. Drugim sposobem (prostszym) jest stworzenie zmiennej globalnej, na podstawie której sprawdzamy który z obiektów ma się teraz poruszać. GML /* 1.W jakims obiekcie tworzymy zmienna global.character_index ktora bedzie miala wartosc np. 0 2.Następnie w każdym obiekcie ktorym bedzie mozna sterowac tworzymy zmienna myIndex = jakiejs tam liczbie 3.W zdarzeniu step na samym poczatku sprawdzasz czy global.character_index != myIndex, jesli tak to exit; jesli nie to ten instrukcja tego if'a zostanie pominieta i kod ponizej sie wykona. 4.Ostatnim krokiem bedzie to, zeby w jakims obiekcie, kiedy wcisniesz spacje zmieniala sie wartosc global.character_index na ustalona rzecz jasna. Przykladowo, jesli masz dwie postacie o myIndex = 0 i myIndex = 1, to przy wcisnieciu spacji z 0 zmieniasz na 1 a z 1 na 0 itp. */
-
APG Beta 2 - Amazing Platform Game
Madness odpowiedział(a) na Zombie-Games temat w Dema gier i programów
Wiesz chociaż na czym ten błąd polega, czy w ogóle nie masz pojęcia i dlatego nie wiesz jak to naprawić ? Chcesz to napisz na pw, pomoge Ci. Btw. nie wiem z czym masz problem, w twojej grze wszystko porusza się równo z kamerą, tylko ten napis nie. -
Sprawdzanie czy obiekt powinien zostać usunięty
Madness odpowiedział(a) na Sutikku temat w Pytania początkujących
Tak każdy blok(obiekt) ma swoje id , ale możesz też sam sobie stworzyć zmienną id i na tej podstawie wysyłać odpowiednią informacje. :) Wybór należy do ciebie, choć wydaje mi się że własny identyfikator bloku byłby lepszy. -
show_message_ext(str,but1,but2,but3) Ok, nie ważne... :rolleyes:
-
Jakoś pusto, te odznaczenie słabo przez to wygląda (jak dla mnie), a ty się przecież tym chcesz pokazać, że twój projekt został nagrodzony. Może jakiś medal, albo tarcza i na niej wyryty napis ? Medal i kapelutek postaci w powiększeniu, oraz np. karteczka na której jest ten napis "Best Indie PC game...." ? Reszta jest spoko, nieźle się prezentuje :) . Nawet jakbyś nie skorzystał z powyższych propozycji, to może chociaż zrób dla tego napisu białą otoczke, żeby był bardziej widoczny na tym tle. ;)
-
Pierw pan powiedz, co się dzieje ? Błędy w kompilacji, a może kod nie działa jakbyś chciał ?
-
Najprostszy sposób, to postawienie sobie na mapie punktów w odpowiednich odstępach (np. co 32px), po tym jak je utworzysz, stawianie bloczków to prościzna. (Zakładając, że korzystasz z GML) Algorytm wygląda następująco: Jeśli gracz kliknął LPM Znajdź najbliższy punkt Jesli takowy istnieje (mamy gdzie postawic bloczek, tudzież nie ma innego bloczku postawionego w tym punkcie) Tworzymy tam bloczek funkcją instance_create(nazwa_obiektu,x,y); Przez postawienie sobie punktu rozumiem utworzenie tablicy dwuwymiarowej, żeby ustalić w niej współrzędne, bądź utworzenie obiektów punkt i szukanie najbliższego (jeśli poszukasz w dokumentacji zapewne znajdziesz tam odpowiednią funkcje od tego, jeśli nie to musisz je gdzieś przechowywać (chodźby i w tablicy)). Krótko mówiąc, jeśli nigdy nie programowałeś to musisz się poduczyć, ew. skorzystaj z bloczków. PS: Jakbyś potrzebował z tym pomocy, napisz na pw.
-
Mój kolega nie umie pisać shaderów, a z cell shadingu korzystał. Znaczy to tyle, że możesz go skądś dostać :) ... Generalnie mówienie, że Unity w wersji Free za mało oferuje żeby zrobić coś porządniejszego to pieprzenie. Nie masz czegoś? - zrób to sam, albo przynajmniej kogoś o to poproś, może ktoś udzieli Ci pomocy. Gdyby wszyscy jechali na assetach, to co by to było ? ^^ Po co uczyć się czegokolwiek, jak możesz wykorzystać cudzą prace, no nie ? :( Żeby gra dobrze wypadła/sprzedała się nie musisz mieć grafiki z najnowszych gier. Nie wierze, że w Unity Free nie da rady zrobić np. Gothica, albo czegoś podobnego. Znaczy to tyle, że musisz się więcej nauczyć i koniec. Takie jest moje zdanie na ten temat.
-
Siatka + rysowanie kwadracików. :) Potem sprawdzać czy jest dokładnie pokolorowane, poprzez siatke. Innymi słowy coś w stylu edytora room'ów w GM'ie. Stwórz sobie siatke punktów, a w momencie kiedy klikniesz np. LMP to szukasz punktu który jest najbliżej myszy i na jego współrzędnych ustawiasz nowy kwadracik (tudzież piksel). Potem mógłbyś sprawdzać, czy 'piksele' są w odpowiednich miejscach.
-
Mój brat ma np. na kompie win7 i ma to samo. Na profilu, który założył podczas instalacji niby ma prawa admina, a jednak jak się okazuje wiele programów i gier przy włączaniu wywala komunikat, że do włączenia potrzeba praw administratora. Zrobił test i stworzył nowy profil i tam chodzi już wszystko.
-
@szmalu - giera, jak dla mnie świetna. Tylko nawet jak wyniszczyłem wszystkich i się skułem, to i tak byłem drugi ^^
-
Wyciek pamięci jest wtedy, kiedy masz wskaźnik który alokuje pamięć dla jakiegoś obiektu np.: int *pointer = new int(3); a następnie nie zwolniwszy wcześniej zaalokowanej pamięci przestawiasz wskaźnik na coś innego: pointer = &obiekt; Wtedy nie masz jak dostać się już do tego int'a którego zaalokowałeś, no bo nic innego na niego nie wskazuje, a ty się możesz tylko domyślać w której komórce został on utworzony... Konrad-GM ma racje, wskaźniki przestawia się na NULL żeby przypadkiem nie wskazały na coś na co nie powinny + kiedy wskaźnik wskazuje na NULL, to delete nie da żadnego efektu. Ty w swoim kodzie już ustawiłeś inny wskaźnik na odpowiedni adres, więc nadal masz do niego dostęp i w każdej chwili możesz zwolnić ten obszar pamięci, gdyby było inaczej to tak, miałbyś wyciek.
-
Polski lub angielski, bo u ciebie nazwy metod to setWartość, getWartość, setRozmiar. Kiedyś zaczniesz się mylić bo nie będziesz pewny czy funkcje zapisałeś jakoś po angielsku, czy po polsku. Lepiej wybrać sobie jeden język i nim zapisywać nazwy zmiennych, funkcji. Ja np. ostatnio jak coś kodze, to nazwy danych pisze po angielsku, tylko komentarze są po polsku. A i wcześniej zdarzało mi się robić tak, jak ty i z czasem musiałem patrzeć np. jak dana zmienna się nazywała, zamiast pisać od strzała co ma się dziać w programiku.
-
Ja z wieczora już nie myśle, ale czy ty przypadkiem nie usuwasz sobie tej tablicy ? EDIT: I warto zdecydować się na jeden język, bo można się pogubić w kodzie, jak się korzysta z kilku na raz w nazewnictwie.
-
Ja z początku uczyłem się z CPP0X, a tak z książek to Symfonia C++. Na cpp0x masz też kursy do różnych bibliotek, choć niektóre są już stare. EDIT: Co do IDE, to całkiem fajny (przynajmniej dla mnie) jest Code::Blocks.
-
A gdzie zmieniasz hspeed, i na ile? Tutaj jest tylko zmiana sprite'a, a ona jest zależna od hspeed.
-
Ale postać pod feniksem jest zbyt statyczna, moim zdaniem anty powinieneś dodać chociaż jakieś zachowanie do sytuacji dla tego człowieczka. Jeśli on nawet w ogóle nie ma atakować, to żeby coś jednak robił prócz chodzenia. Mógłby też karmić czymś tego feniksa, żeby go wzmocnić w jakiś sposób na krótką chwile, np. że płomienie feniksa robią się niebieskie i zadaje większy dmg, ew. jego spell'e miałyby inne właściwości.
-
Ja tam nic do dzymka nie mam, ale o ile mi wiadomo to nikogo jeszcze niczym nie zachwycił (jeśli się myle to poprawcie), pomimo tego że już na tym forum troche siedzi i mógłby się wiele nauczyć. Jeśli istnieje jakiś jego projekt, który jest warty uwagi, albo udowodni to że może pomóc komuś z przyszłym projektem, to nie ma sprawy. Jednak jeśli nie zrobił dotychczas większego progress'u (przykładowo od roku 2009), to nie wiem czy to ma sens. I jeśli udowodni, że potrafi pomóc w jakimś przyszłym projekcie, to nie mam nic przeciwko żeby z nim współpracować i coś skodzić, jeśli będzie tego chciał, być może i ja bym się czegoś od niego nauczył. Niech pokaże w tym temacie coś, co ujawni jego mocne strony i wtedy będzie można pogadać na poważnie. Krótko mówiąc napisałem tutaj mniej, więcej to co i gmclan'owicze mi napisali, kiedy ja napisałem podobnego posta do dzymkowego. @Dzymek pokaż coś sobą, pokaż innym czemu mieliby z tobą współpracować, co możesz zaoferować, a reszta to już łud szczęścia. Jeśli nie masz niczego, dzięki czemu mógłbyś pokazać się z tej lepszej strony to postaraj się to zmienić. Tyle na ten temat ode mnie.
-
On trolluje, czy to tak na serio ? :blink:
-
Może turkus, fiolet ?
- Poprzednia
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- Dalej
-
Strona 2 z 26