Gra okienkowa - w czym napisać?

0

Witam. Mógłby ktoś mi szybko(bo mam bardzo mało czasu na to) podpowiedzieć trochę jak zrobić grę c++?
Nie chcę wchodząc w szczegóły gry ogólnie muszę zastosować klasy, konstruktor, destruktor, poliformizm, klasa virtualna i inne. Moja gra to coś ala sapper, czy kółko i krzyżyk(mniejsza jaka to dokładnie gra). Ma to być ogólnie gra okienkowa(w Builderze).
I teraz pytanie. Normalnie pracuje na Code::Blocksie i jako tako bym może to w nim napisał, ale skoro ma to być gra okienkowa, to muszę całość kodu napisać w Builderze, tak? Code::Blocks mogę całkowicie wyłączyć?
Najlepiej byłoby napisać program w Code::Blocksie i jakoś oznaczyć każdą grafikę z Buildera, by współgrało, jednakże to dwa osobne środowiska, a programowanie w Builderze jest dla mnie znacznie znacznie trudniejsze...To jakby całkiem inny język niż ten, którego się uczyłem pisząc aplikacje konsolowe.

Czy byłby ktoś wstanie podać mi swojego skype/gg żeby mi trochę w tej grze pomóc?
Skype/gg a nie tutaj, bo potrzebuję system "pytanie-odpowiedź", a nie "pytanie-czekanie-odpowiedz-zorientowanie się, że ktoś odpisał-"kurde...już offline osoba co mi pomagała". Zależy mi bardzo na czasie!

0

Czy byłby ktoś wstanie podać mi swojego skype/gg żeby mi trochę w tej grze pomóc? juz to widzę :D

Anyway, możesz napisać logikę aplikacji w czym chcesz. Jak zrobisz to sensownie zgodnie z MVC to nie powinno być problemu.

0

Jeśli źle to zrozumiałeś, to nie chodzi mi o to, żeby ktoś mi grę zrobił, tylko np. doradził w którą stronę iść, bo mam np. 2 pomysły na jedną rzecz i nie wiem, z której lepiej(łatwiej) byłoby skorzystać.

Wszystkie te wytyczne, które wymieniłem nie są mi jakoś obce i mniej więcej wiem jak je wykorzystać pisząc konsolową aplikację, ale w okienkowej mam większy problem.

Ogólnie, że tak powiem jestem młodym "programistą" -chociaż to chyba za duże słowo. Uczę się dopiero.
Możesz rozwinąć myśl, że mogę logikę aplikacji napisać gdzie chcę? Tzn. czy mogę normalnie pisać grę konsolową, a potem przypisać np. jakiejś zmiennej np. "x" albo "o" co byłoby graficznym odpowiednikiem w Borlandzie kółka i krzyżyka?
I co to jest MVC?

0

https://en.wikipedia.org/wiki/Model–view–controller
To jest taki sposób organizacji kodu gdzie logika twojej aplikacji jest odcięta od widoku oraz od "sterowania" aplikacją. To oznacza że piszesz swój program tak, żeby np. można było za pomocą jednej linijki "przepiąć" aplikację z okienek na konsolę, bez potrzeby zmieniania czegokolwiek w logice aplikacji.

Krótki przykład: wyobraź sobie że masz klasę Gra

class Gra{
    public:
        void setX(int x, int y);
        void setO(int x, int y);
        Player getWinner();
};

Jak widać tej klasie obojętne jest "kto" będzie dodawał kółko albo krzyżyk. Więc to czy twój Kontroler będzie pobierał dane od użytkownika przez konsole czy przez okienka nie zrobi żadnej różnicy.

Tak samo to nie problem pobierać stan Gry i rysować go w konsoli albo w okienkach. Sama Gra w ogóle nie musi o tym przecież wiedzieć.

0

Nawet zwykłe frameworki, które służą do pisania programów okienkowych można zmusić do tego żeby obsługiwały grę. Kiedyś zrobiłem Tetrisa w WPF bez żadnych zewnętrznych bibliotek, które służą do tworzenia gier. Ot plansza to był DataGrid, a cała reszta to matematyka poszczególnych pól tego Grida. Gra posiadała ładną grafikę, dźwięki, kolory klocków etc. :) W C++ to samo można nawet w Qt osiągnąć. Wystarczy w sumie trochę wyobraźni.

0

No i właśnie z tym mam problem, żeby to napisać tak jak mówisz. Tak jak pisałem. W konsoli bym to zrobił, ale graficznie mnie to trochę przerasta.
Te klasę muszę wstawić do Buildera i właśnie mam tu olbrzymi problem JAK I GDZIE. W code::block wystarczy po prostu klasę napisać najlepiej na początku kodu(gdy nie dzielimy na pliki) i tyle. A tu w builderze wygląda to całkiem inaczej.

0

grzesiek51114 tak jak pisałem, ja się dopiero uczę. W grę wchodzi tylko code::block oraz c++ Builder Borlanda i nic więcej. Mam trochę wymogów, które musi spełniać ta gra (część wypisałem), ale mam bardzo małe doświadczenie z Builderem.

0

No to cóż. Nie masz innego wyjścia jak tylko zasiąść do jakiegoś kursu Borlanda i zacząć się uczyć. Zrób najpierw coś prostego z grafiką żeby zobaczyć jak działa biblioteka, a później jak już będziesz wiedział wystarczająco to sam rozkminisz gdzie tę klasę podpiąć. Innej drogi nie ma.

0

Obejrzałem kurs Mirosława Zelenta, ale on tam nie stosuje klas, tylko proste programy(być może w przyszłości będzie coś bardziej zaawansowanego z jego strony). Na zrobienie tej gry mam tylko ten weekend dlatego szukam pomocy po forach.

0

Osobiście polecam do zabaw w pisanie gier od zera OpenFrameworks.
może nie do tego służy, ale do kto kreatywnemu zabroni - na start masz:

  1. Rysowanie
  2. Miejsce na logikę
  3. Operacje na obrazach
  4. Łatwe klasy np. ofCircle, ofRect...
  5. Obsługę myszy, kamery, klawiatury, mikrofonu
  6. Proste menu
0

Troszeczkę liznąłem Buildera i już wolałbym przy nim zostać, bo nie mam czasu na zmianę środowiska i zapoznawanie się z nim.

2

Powiem tak: raczej nikt Ci tutaj złotego rozwiązania nie poda. Przez ten czas siedzenia na forum mógłbyś dawno coś znaleźć w Internetcie i zacząć się uczyć, tym bardziej, że masz na to tylko ten weekend. Szukałem w Internecie tutoriali z C++ Buildera i znalazłem tego trochę więc jest z czego wybierać, choćby: https://web.duke.edu/isis/gessler/borland/games.htm Nawet kody źródłowe tam są.

Naprawdę, siedzenie tutaj i wciskanie F5 co jakiś czas na pewno niczego Ci nie da, a szkieletu aplikacji na pewno też nikt specjalnie nie będzie tutaj pisał.

0

Nie siedzę tutaj cały czas i nie klikam f5, tylko właśnie buduje pomału tę grę. Co jakiś czas jedynie wchodzę tu i zaglądam. Właśnie teraz miałem zapytać, czy ma ktoś może grę pisaną w Borlandzie z użyciem klas, by mi pokazać. Bo właśnie nie wiem gdzie te klasy zdefiniować. Dziękuję za link. Już zerkam, może coś znajdę.

0

OOOO w tym linku co mi dałeś w 2 grze już użyte są klasy i są one zdefiniowane również na samej górze! Dziękuję, to mi dużo na prawdę dało.
Faktycznie na górze to można wstawić - wcześniej nie pomyślałem o tym, bo budowa tego kodu tutaj jest dla mnie strasznie dziwna.

0

korzystałem z sfml w c++ i pygame do pythona

1

Jeśli się uczysz, może dobrym pomysłem jest skorzystanie z jakiegoś darmowego silnika np. Unity3D (www.unity3d.com) czy Unreal Engine. (www.unrealengine.com)
Jasne jest, że nie nauczysz się przy tym tak wiele, jak przy pisaniu gry od zera.
Ja nie czuje się na siłach, żeby czegoś takiego dokonać.
Przypuszczam, że popełnił bym bardzo dużo błędów, nagromadziły by się i pewnie trzeba by było to dziecko zostawić.
Może kiedyś.

Jeżeli ktoś zaczyna, może nie być świadom, że istnieją takie udogodnienia i narzędzia które pomogą mu wystartować.

0

Dziękuję za odpowiedź. Wiem, że są silniki, ale ja muszę napisać to od zera.
Chcę zrobić powiedzmy klasę. Robię ją na samej górze pod bibliotekami prostą klasę np.
class Pole
{
AnsiString kolor;
}
i wyskakuje mi gdzieś dalej w kodzie błąd. Coś tu źle zrobiłem?

0

Aha, dla jasności - to jest prosta gra, tylko muszę ją trochę skomplikowanie napisać, bo mam wytyczne

A dobra, średnika zapomniałem xD
class Pole
{
AnsiString kolor;
};
tak ma być.

EDIT:
to co, nikt nie chce podać na pw kontaktu by pomagać na bieżąco? Właśnie np. takie pytania jak teraz, wystarczyło podpowiedzieć, że brak średnika, a się zastanawiałem tyle czas(w code blocksie dodawało automatycznie, dlatego zapomniałem).

0

Omińmy proszę, że można to ponazywać inaczej i wszystkie inne ewentualnie niejasności- standardowo forma nazywa się Form1 i jak kodujemy cokolwiek, to często widzę w tutorialach, że raz osoba przedstawiająca przykład pisze Form1->cos_tam; a czasami bez tego Form1. Np. Form1->Label1 i coś tam dalej, a czasem Label1 i coś tam dalej. Od czego zależy czy w kodzie wstawiamy Form1-> ?

1

Odpuść sobie buildera, bo ugrzęźniesz na żąglowaniu formatkami.
Wybierz sobie pierwszą lepszą bibliotekę multimedialną - sdl, sfml i stosuj się do http://gameprogrammingpatterns.com

0

Przecież piszę, że mam czas tylko do końca weekendu i że muszę to zrobić w builderze....Serio mi radzisz ten czas zagospodarować na naukę "lepszych bibliotek" i nic nie zrobić?

1 użytkowników online, w tym zalogowanych: 0, gości: 1