Gra okienkowa - w czym napisać?

Gra okienkowa - w czym napisać?
SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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!

NI
grę okienkową w code::blocks też możesz napisać
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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?

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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

Kopiuj
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ć.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
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.

SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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.

SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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.

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
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.

SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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.

M0
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:5
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
SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
0

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

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
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ł.

SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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ę.

SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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.

grzesiek51114
grzesiek51114
To cyknij odpowiedź jako rozwiazujaca problem wątku.
TP
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:7
0

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

CB
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:4
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ć.

grzesiek51114
grzesiek51114
On ma to napisać do poniedziałku.
CB
Jakiś ślepy jestem, no nic, może ktoś kiedyś będzie to czytał, to sie dowie, że są silniki na świecie.
SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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?

SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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).

edytowany 3x, ostatnio: szefusik
matek3005
Żartujesz sobie, prawda? Potrzebujesz kogoś kto przeczyta za ciebie komunikat kompilatora?
SZ
Tak żartuje - mam takie dziwne poczucie humoru. I w ogóle pytam tutaj dlatego, że też jestem dowcipny, bo przecież jakbym na prawdę z czymś sobie nie radził, to bym o tym na forum nie pisał...
SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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-> ?

edytowany 1x, ostatnio: szefusik
spartanPAGE
  • Rejestracja:prawie 12 lat
  • Ostatnio:dzień
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

edytowany 1x, ostatnio: spartanPAGE
SZ
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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ć?

LI
A jak się nazywa Twój temat? Na co wskazuje? No właśnie...
SZ
Nazwa tematu wskazuje na problem, w który się zagłębiam w treści już wątku. W czym napisać: chodziło o code::block i C++ Builder i pare razy zaznaczałem, że to tylko wchodzi w grę. Nie prawda? No właśnie...
LI
Ale nazwa do bani. "Lepiej napisać apkę okienkową w code::block czy w builderze?" Czy ona nie bardziej wskazuje na problem?
SZ
Po to jest treść tematu by w nim opisać problem - nazwa tematu tylko nakreśla. Wiem, że cały temat jest co najmniej dziwny, bo nie pytam o nic konkretnego, ale szukam bardziej podpowiedzi.
LI
Twoja nazwa nie jest najtrafniejsza, ona wprowadza w błąd. Nie każdy będzie czytał te morze postów tak? A temat jak najbardziej jest normalny, a nie dziwny. Dziwne jest że mieszasz dwie rzeczy. Pytanie o technologię z pytaniami o implementację. Nie wiem jak w builderze, ale w android studio masz takie miejsce gdzie pojawiają Ci się błędy. Zgaduję że w builderze też takie masz. Patrzysz na błąd, czytasz go. Próbujesz zrozumieć. Jeśli nie rozumiesz używasz google aby go znaleźć i znaleźć rozwiązanie. Jeśli to nie pomaga piszesz na forum.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.