-
Postów
2 729 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
44
Typ zawartości
Profile
Forum
Wydarzenia
Odpowiedzi opublikowane przez Konrad-GM
-
-
nie chodzi jak ma wyglądać, tylko jak go zrobić.
Wiem tyle że trzeba to robić na x i y viewa używanego.
Napisy itp. W evencie Draw ( Czy Draw HUD w game maker studio trzeba użyć ?)
Tak, Draw GUI jest od rysowania HUDa i innych elementów niezależnych od zmian perspektywy ani pozycji 'kamery'. Zatem niezależnie od view_xview,view_yview, w evencie Draw GUI rysuje się pod X,Y przyjmując 0,0 jako lewy-górny róg ekranu.
GMLdraw_text(5, 5, string(health)); -
Nie no, ta gra to kozacko się zapowiada... Pro wręcz. :D
-
@EDIT:
Gdyby ktoś szukał takiego rozwiązania to napisałem coś takiego(działa :D ):
void gotoxy(int x, int y) { COORD c; c.X = x - 1; c.Y = y - 1; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c); }
Nie lubię tego rozwiązania od twórców borlandowego "conio". Bo nie indeksuje pozycji kursora od '0', co dla języka C/C++/etc jest rzeczą naturalną i powszechnie stosowaną, odwrotną co do Pascalowego '1'.
-
"Delta = %\lf" - Kompilator C++ ma tendencje aby backslashe w łańcuchach zmieniać na inne znaki względem tego układu: http://msdn.microsoft.com/en-us/library/6aw8xdf2.aspx
-
Ja tam polecam Eclipse z pluginami CDT.
Eclipse moim zdaniem do C++ nijak się nie nadaje. Jest pamięciożerną kobyłą, można niekiedy się zniechęcić do niego. Code::Blocks (polecam nightly builds), tak jak Dev-C++, jest lekki i oba są zaopatrzone w kompilator MinGW (do C::B nightly builds trzeba ściągać osobno). Visual co prawda też po instalacji nie potrzebuje dodatkowego oprogramowania, ale chyba twórcy bardziej celują w technologię .NET i C# zatem różnice między Visual C# a Visual C++ są spore. :)
-
Czy chodzi ci o to, że ja wymazuję obszar pamięci gdzie rezyduje tablica? Bo nie jestem pewny czy dobrze pomyślałem :) [/size][/i]
EDIT - WIN:
Udało mi się :) Zaczeło działać kiedy zmieniłem
delete[] puTablica; puTablica = puNowaTablica; delete[] puNowaTablica;
Na:
puTablica = NULL; delete[] puTablica; puTablica = puNowaTablica; puNowaTablica = NULL; delete[] puNowaTablica;
Tak więc dzięki wszystkim :)
puNowaTablica = NULL; delete[] puNowaTablica;
Wywal to całkiem. O,o
Usuwanie wskaźnika na 'nullptr' nie daje żadnego efektu. Więc ta część kodu w ogóle nie jest potrzebna.
-
Przybrałeś zły sposób na iterowanie po danych w tablicy, konkretnie chodzi o: puTablica[uIndeks1 * uIndeks2]. Tak nie może być. :)
Jeżeli chcesz użyć liniowej metody dostępu do adresu pamięci w postaci 2-wymiarowej tablicy blablabla, musisz daną pozycję Y pomnożyć przez "szerokość" tablicy aby wyznaczyć wiersz, i dodać "przejście" X po komórkach:
puTablica[uIndeksY*muRozmiarX + uIndeksX]
Proponuję zmienić konwencję kodowania, gdyż ciężko "to" się czyta... To taka moja luźna propozycja. :)
Tak samo jak zasada ze zmiennymi 'n' (ilość), jak i 'i' (pozycja). Z X/Y-ami postępuje się podobnie. X-y podawaj na początku argumentów, Y jako drugi.
#EDIT:
Proponuję abyś jeszcze raz zbadał metodę cInt2dArray::ChangeRozmiar, możesz być niemile zaskoczony. Konkretnie chodzi o delete[] puNowaTablica;
-
Główny problem, przez który Twój kod nie działa to: Nie ustalasz wartości w tablicy, z tego co widzę nie używasz (nigdzie) metody cIntArray::SetWartosc.
Ale zauważyłem kilka niedociągnięć... Domyślny konstruktor nie tworzy tablicy intów, mimo że mDOMYSLNY jest równy 5.
-
Bawiłem się różnego rodzaju tłami. Osobiście to waham się między 1/2.
Mi osobiście podoba się szachownica(2) :)
-
Ktoś zraportował Twojego posta? xD
8D
Gratuluję sukcesów z grą ;) Czekam na następną część, powodzenia!
-
Cóż, zagrałem w każdą część, i przyznam że każdy epizod trzyma poziom :) Ciekawa historia, wciągająca fabuła. W najnowszej części Memories bardzo podoba mi się motyw z rysunkami. Podziwiam za pomysł, cała seria zdecydowanie zasługuje na 5/5 ;)
-
-
Ładnie opisane znajduje się to na MSDN:
http://msdn.microsoft.com/en-us/library/wi...5(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/wi...1(v=vs.85).aspx
Zapewne nie ustawiasz odpowiedniego trybu konsoli.
-
Źródła tej "biblioteki" są dostępne. Wykorzystuje WinAPI, którego dokumentację znajdziesz pod tym linkiem.
Forum jest do wymiany swoich spostrzeżeń jak i wiedzy. Gdybyś miał z czymś problem, pisz na forum. W miarę możliwości nie tylko ja będę mógł Ci pomóc. ;)
Polecam zapoznać się z takową funkcją: WriteConsoleOutput
-
GM8 raczej obsługuje DLLe, zatem powinno zadziałać ;)
Możesz też przeszukać tę bibliotekę:
-
https://github.com/konrad92/libconsole Nie jest to jakoś szczególnie rozbudowana biblioteka - raczej zabawka.
Możesz zmienić rozmiar konsoli poprzez:
void ConsoleSize( unsigned short width, unsigned short height ) const { SMALL_RECT windowSize = { 0, 0, width - 1, height - 1, }; SetConsoleWindowInfo( stdOutputHandle, true, &windowSize ); SetConsoleScreenBufferSize( stdOutputHandle, *((COORD*)&width) ); // show/hide cursor CONSOLE_CURSOR_INFO curInfo = { 100, !m_hideCursor }; SetConsoleCursorInfo( stdOutputHandle, &curInfo ); }
A podział, obiekty i "okienka" to nic innego jak generowanie interfejsu przez wyjście. Np. żeby zmienić pozycję kursora:
unsigned short x = 0, y = 0; SetConsoleCursorPosition( stdOutputHandle, *((COORD*)&x) );
I nie zapomnij o jednym...
HANDLE stdOutputHandle = GetStdHandle( STD_OUTPUT_HANDLE );
Przed dokonywaniem zmian na konsoli potrzebujemy wskaźnika na jego wyjście ;p
-
Mam nadzieję że wiesz co to znaczy LOD? Generuj teren "dynamicznie" - im dalsza część siatki terenu tym rozleglejsze plane'y. A modele stwórz w kilku poziomach LOD, i wywołaj rysowanie odpowiedniego np. względem odległości kamery od obiektu.
Możesz też zainteresować się Ultimate3D.
Fully automatic generation of levels of detail
-
Kolorystyka paskudna :thumbsup:
Ważne że w ogóle wygląda ;D Grafik ze mnie marny, także raczej cudów się nie należało spodziewać ;p
-
Mockup do mojego projektu:
Gra w planach, ma być to nietypowy TD.
-
Piękne.
-
po czesci dobrze myslales - to zadziala tylko z konstruktorami bez parametrow, te z parametrami trzeba explicite wywolac w konstruktorze klasy dziedziczacej:
class A
{
A(int v)
{
value = v;
}
int value;
};
class B : public A
{
B()
{
A(10);
}
};
O Borze... :)
class A { A(int v) { value = v; } int value; }; class B : public A { B() : A(10) { } };
Twój kod YXE tworzy nową instancję klasy A, sorry bro.
-
Wstawiając jakąś grę na jakąkolwiek platformę ciesząc japę a później tylko narzekać - w sumie niewiele to zdziała. Nie ważne jaka by nie była ta gra, rzadkością jest "samoistne" wypłynięcie czegokolwiek. Nie jestem specem od marketingu (:)), ale chyba każdy wie że reklama to podstawa. :)
-
Ale,żeby zrobić coś na Androida to chyba trzeba mieć specjalnego GM i licencje tak??? :mellow:
Tak, wersja Pro z dokupionym exportem na androida. A tak poza tym to Java + Android SDK or Cpp + Android NDK :)
-
Ok, rozwiązałem problem. Zmieniłem "createPattern>fillStyle>fillRect" na "drawImage". Już jest ok :)
Dzięki temu: http://vaughnroyko.com/jsfiddle/nearest-neighbor.html
presentViaDrawImage: function(canvas) { var ctx = canvas.getContext("2d"); ctx.scale(canvas.width/this.width, canvas.height/this.height); ctx.webkitImageSmoothingEnabled = ctx.mozImageSmoothingEnabled = ctx.msImageSmoothingEnabled = ctx.oImageSmoothingEnabled = ctx.imageSmoothingEnabled = false; ctx.drawImage(this.canvas, 0, 0); }
Nad czym aktualnie pracujesz?
w Zapowiedzi
Opublikowano
Nawet GameMaker ma własny "mainloop". Bo chyba o to chodzi w Game Engine'ach. Modding a'la Unity czy UDK jest ok... :P