Skocz do zawartości

Will

Użytkownicy
  • Postów

    781
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Will

  1. Will

    Galeria Grafik

    ;D Genialna refka.. Dzięki za poprawę humoru. W nagrodę łap: http://tursiart.deviantart.com/gallery/?q=knight
  2. Will

    Parallax

    Pomysł fajny ale.. po przeczytaniu pierwszych 10 zdań tekstu: "Powrót do korzeni fpsów" musiałem odpuścić. Paskudny styl. EDIT: Przejrzałem kilka innych, jakość artykułów ma rozrzut jak ruska katiusza. Od fatalnego "powrót.." przez mizerny "3,2,1.. Rush" po bardzo dobry "Nowa, stara.. dobra platformówka". Nie wiem kto jest ich autorem bo nie zwróciłem uwagi ale proponuje kolejny numer wypełnić tekstem, który trzyma poziom artykułu o platformówce.
  3. W przypadku tego screena powstaje jedno pytanie.. Co z oświetleniem?
  4. Will

    Problem z pewną funkcją.

    std::string translateLC(std::string a, std::string code) { // Przygotowanie klucza. std::string bufor; std::string * I = new std::string[(code.size())/2]; std::string * II = new std::string[(code.size())/2]; for (unsigned int i = 0; i < code.size(); i += 2) { I[i] = code[i]; II[i+1] = code[i+1]; } // Zamiana znak po znaku. for (unsigned int i=0; i < a.size(); i+=1) { bufor = a[i]; for (unsigned int l=0; l < code.size(); l+=1) { if (bufor == I[l]) { a.erase(l, 1); a.insert(l, II[l]); } else if (bufor == II[l]) { a.erase(l, 1); a.insert(l, I[l]); } } } delete [] I; delete [] II; return a; } Wprowadź to o co byłeś proszony, dalej masz stringi na stercie, a potem przeanalizuj swój kod. edit: Poza tym włącz debugger i przeleć dokładnie a na pewno znajdziesz co jest nie tak.
  5. Will

    Problem z pewną funkcją.

    Kod trzeba sprawdzić: for (int l=0; l <= code.size()/2; i++) bawisz się l a inkrementujesz i? logiczne, że będzie "latać" w nieskończoność. Trochę skupienia i chwila poświęcona na sprawdzenie kodu zawsze jest wymagana.
  6. Will

    Problem z pewną funkcją.

    Zasadniczo to przy użyciu wbudowanego typu std::string nie powinno się korzystać z alokacji na stercie jako, że klasa stringa sama zajmuje się pamięcią. użycie klasy string: string str; str.resize(x); str[x]='a'; itd... W twoim przypadku jeśli chcesz zostać przy swoim rozwiązaniu zwolnij pamięć przed słowem kluczowym 'return'. Kolejna sprawa to parametry. Obiekty powinno przesyłać się jako referencje '&' lub wskaźniki. Inaczej leci nam mila i kosztowna operacja kopiowania. edit: Zatrzymuje się ponieważ znowu maziasz po pamięci: for (unsigned int i = 0; i <= code.size()/2; i += 2) na for (unsigned int i = 0; i < code.size()/2; i += 2) string.size() daje wielkość tablicy ale przecież indeksujesz od zera a nie od jedynki czyli < a nie <=.
  7. http://www.cplusplus.com/reference/iostream/
  8. Will

    Problem z pewną funkcją.

    na for (unsigned int i=0; i < a.size(); i+=1) edit: w przypadku drugiej wewnętrznej pętli to samo + zwolnij pamięć ze sterty.
  9. Will

    Tworzenie INI.

    Przyjrzyj się dokładnie funkcji: readstring albo podaj jej body.
  10. 0.o Nie? Przecież ja napisałem o umiejętnościach. To nie ranking programu przez użytkownika czy ilość wyświetleń czy ilość programików, które mają po kilkadziesiąt tysięcy linii. Nie wiem skąd Ci się tak ego do góry podniosło ale to co masz to mini projekty. A z tą znajomością języka cpp... 3 razy się zastanów zanim coś takiego komuś powiesz czy napiszesz bo się ludzie nieźle uśmieją... także chill out.. bo gdybyś z takim czymś wyskoczył do kogoś kto się na prawdę zna na programowaniu to wziął by Cię za kretyna. Skrzydła i do lotu..
  11. Czy tytuł brzmi: Baca błagam pomóż mi za 200 stówy? Nie. To nie jest dziecko 5 letnie tylko koleś, który ma swoje lata więc raczej wie jakie jest życie. Jeszcze kilka lat temu pykałem takie programiki za free bo miałem trochę wolnego czasu i chęci. Nie umarłem od tego. Jak dobrze poszuka to kogoś znajdzie. Poza tym jak się stawia wymagania to trzeba swoją cenę mieć popartą umiejętnościami.
  12. https://developer.valvesoftware.com/wiki/So...ayer_Networking
  13. Will

    MoaCube

    Generalnie :P Od 2 lat zawsze robię save sceny zanim otworzę edytor krzywych, tak na wszelki wypadek. Ja tam żadnych "obcych" pluginów nie używam :) Cenie sobie swoje nerwy. W większości przypadków autorzy pluginów nie wiedzą co znaczą słowa optymalizacja czy bug free. Jeśli nie zamierzasz ryzykować to sprawdź baaardzooo dobrze ten silnik bo potem może się okazać, że będzie trzeba połowę jego kodu przepisać nawet jeśli jest przeznaczony dla danego typu gier a do tego już potrzeba kogoś kto dokładnie wie z czym to się je i sporo czasu. Kiedyś poprawiałem program gdzie jakaś crucial funkcja wczytywała dane znak po znaku bez buforowania więc wszystko da się spier.. jeśli tylko bardzo się chcę. Powinni zrobić jedno wielkie archiwum i przy budowie projektu dorzucić analizowanie kolejności wczytywania i według tego ułożyć całość w paczkach a potem ładować w wielkich chunkach z wyprzedzeniem na drugim wątku. Zapewne mają taką samą wersje funkcji wczytywania od x lat i nikomu nie chcę się nic z tym robić :P Takie życie :) Ma inne pomysły ale łatwiej jest mu kogoś spławić niż poświęcić X swojego czasu.
  14. Will

    MoaCube

    Nie rozważali przejścia choćby na mono? Nie bardzo rozumiem z czym może być problem z fullscreenem. Jak mniemam gm napisany jest w d3d? Tu akurat się nie dziwie. Wczytywanie w binarnych paczkach jest znacznie szybsze niż ładowanie pojedynczych plików.
  15. Will

    MoaCube

    Z jednej strony na pewno masz racje. Jest to jakiś tradeoff, który trzeba mocno przemyśleć. Z unity są podobne problemy. Prosty przykład: To jest tekstura, którą sobie generuje dynamicznie w unity: http://dl.dropbox.com/u/5303770/texture.jpg Niby wydaje się no problem, trochę zabawy pixelami i mamy teksturke. Przychodzi co do czego okazuje się, że funkcje unity do modyfikowania tekstury ze strony kodu(setPixels,Apply) Są tak niemiłosiernie wolne, że wydajność z 35fps'ów, o które walczyło się ostatnie kilka tygodni spada do jednej klatki na sekundę. No dobra no problem przecież Unity ma pluginy! Zrobię teksturę w takim pluginie i po problemie... WRONG W pluginie możesz tylko modyfikować tekstury używając OpenGL..(nie ma dostępu do urządzenia d3d) czyżby tylko mały problem dla kogoś ktoś pisał cały czas w d3d? WRONG Defaultowo unity na pc korzysta z d3d więc jeśli chcę się użyć ogla trzeba to wymusić.. sukces? WRONG Takie coś nie będzie działać na windowsie, tylko na macu. Można sobie odpuścić jak sami coś takiego chcemy zrobić dla frajdy a jak mamy takie wymaganie dla projektu? A takich cudów unity dostarcza wiele(a elementów dla większej gry, które trzeba przerzucić do kodu dla optymalizacji jest sporo). W końcu byłem zmuszony przenieść całość do shaderów a to nie jest takie proste i tanie bo trzeba wepchać w shadery coś co jest przeznaczone dla normalnych języków. Kolejny przykład: Kiedyś pisałem projekt z lasami wokół całej trasy, jakieś 10h jednego dnia na ułożenie. Uruchamiam na drugi dzień i.. drzew nie ma :) Po TYGODNIU udało się to naprawić ale wtedy.. wiatr przestał oddziaływać na rośliny. Kolejny przykład: Projekt nad, którym pracowałem jakieś 3 miesiące po update do kolejnej wersji unity z wydajnością zjechał do 10fps.. i rób co chcesz nie masz dostępu do natywnego kodu silnika... Kolejny przykład: Unity ma crasha przynajmniej raz na dzień przy tym raz na kilka tyg przy tym miesza część planszy i.. rób co chcesz. Wysłać info do unity? Pewnie, tylko dorzuć do tego swój projekt, który ma 1.5Giga! Takich przykładów mam setki jak nie więcej, przez ostanie 2 lata takie cuda unity robiło, że głowa boli. Tak więc patrząc z tej strony równie dobrze można napisać o unity tak samo: "to póki co powinien poszukać czegoś lepszego niż Unity." Prawda jest taka, że wszystko ma jakieś cholerne błędy, które potrafią zatrzymać projekt na długie dni czy tygodnie. Problem jest w tym, że w unity czy gm nie mamy właśnie dostępu do natywnego api, gdyby takie coś było dostępne sami moglibyśmy takie cuda naprawić. Oczywiście masz 100% racje, że "Wiadomo, że prostą gierkę da się zawsze zrobić" i zarówno w unity jak i w gm'ie wszystko jest w porządku jeśli robisz coś prostego albo mieszczącego się w wyobrażeniach twórców. Mimo tego co napisałem mógłbyś spróbować przerzucić gierkę na unity, nie potrzebujesz w sumie pełnej wersji do stworzenia komercyjnego projektu. Dla gierki 2D brak dynamicznych cieni czy render do tekstury nie powinien być jakimś problemem a dużym plusem unity jest to, że działa na wielu konfiguracjach i jest na pewno szybsze niż gm.
  16. Will

    MoaCube

    Jeśli gm ma tylko takie wady to i tak nie jest tak źle. Unity sprawia znacznie więcej problemów i można kurwi.. dostać czasami. Moim zdaniem powinni do gm dołożyć możliwość pisania pluginów z pełnym dostępem do natywnego api(chyba, że już można?)w c# czy c++ a całość byłaby doskonała do 2D.
  17. Will

    Czytanie książek

    Myślę, że polecanie książek łapie się w zakres tematu :) Wczoraj dorwałem 1Q84, nie przebrnąłem przez zbyt wiele stron ale widać, że książka jest niezła.
  18. Will

    Czytanie książek

    Ta.. obecne gry są ciekawe, że hej.. od pół roku gram tylko w ET, żadna inna nowa gra nie przyciągnęła mnie na więcej jak 20min. Nowe gry to nudy nie warte poświęcania czasu.. Dlatego już wolę książki, te przynajmniej trzymają stały poziom.
  19. Will

    C++

    Dobra: to: char* imie[]; jest różne od: char* (imie*)[]; Trzeba poczytać o zmiennych alokowanych na stosie i na stercie. Nie ma żadnej magicznej alokacji dla tablicy charów bo niczym się nie różni od innych tablic, dla samego ciągu znaków to już inna sprawa. Ja nie piszę o alokacji dla ciągu znaków tylko dla tablicy będącej własnością klasy.
  20. Will

    C++

    A w, którym miejscu ustawiasz rozmiar tej tablicy? Można założyć, że kompilator CB wrzuci tam jedynkę jeśli tablica jest pusta ale to jest co najmniej dziwne. Nawet jeśli to powinien wypluć warning o tym informujący.
  21. Will

    C++

    Pisałem o wewnętrznej tablicy ;) Chodziło o to: gracz.imie[0]="PLEJER"; Nie o samo odwołanie gracz tylko dalszą część.
  22. Will

    C++

    Przestań korzystać 0.0 Jeśli ten kod z pierwszego posta przechodzi to strach się bać co jeszcze ten CB nie łapie. btw Kod skowrona jest dobry, nie zauważyłem, że zmienił też deklaracje. mea culpa.
  23. Will

    C++

    Ale z czym problem bo nie rozumiem? Rzutowanie (char*) i tyle to normalne działanie. Jeśli jest z tym jakiś problem to można od razu pojechać z jakaś funkcja do wysyłania, które operuje na czystych bajtach writeBytes czy coś podobnego. To, że jest char a nie const char to wina twórcy dll bo powinno być const. Dodatkowo Mentoss w jakim środowisku pracujesz? Bo jak na moje oko to ten kod w ogóle nie powinien przejść przez proces kompilowania. Powinno wywalić coś z zero sized arrays. Oczywiście kod Skowrona też się nie skompiluje bo jest błędny, do jednego elementy tablicy o wielkość bajta nie można wpakować kilkunastu.
×
×
  • Dodaj nową pozycję...