• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++: zatrzymywanie obrazka, jeśli napotka blok

VPS Starter Arubacloud
0 głosów
98 wizyt
pytanie zadane 31 maja 2020 w C i C++ przez WiktroH Mądrala (6,550 p.)
Witam,

Chciałbym stworzyć aplikację, której będzie obrazek i będzie powiedzmy skakał pomiędzy blokami. No i czy istnieje taka opcja, żeby nie musieć wszystkiego kodować po kolei - blok za blokiem i do tego wszystkie ściany... - czy może dałoby się zrobić tak, żeby napisać jeden kod i żeby działał do wszystkich bloków: klasy, dziedziczenie, pętle, tablice, metody, a może funkcje wirtualne?
komentarz 31 maja 2020 przez DragonCoder Nałogowiec (36,500 p.)
1. Jezeli jest dziedziczenie to beda na 99% tez funkcje wirtualne.

2. Klas bedziesz potrzebowal, bo beda one przedstawialy np wlasnie te bloki, ktore chcesz przeskoczyc. Zreszta wszytsko co wymieniles sie przyda

3. Z opisu wynika, ze chcesz zrobic system kolizji.

http://thatgamesguy.co.uk/cpp-game-dev-18/

http://thatgamesguy.co.uk/cpp-game-dev-19/

https://gamedev.stackexchange.com/questions/101601/creating-a-collision-detection-system

Cala sztuka (jesli sie myle to prosze o poprawe) opiera sie trzymaniu danych obiektow w jakims kontenerze/tablicy lub tworzysz klase map, ktora zawiera kontenery o typach danych tych obiektow. I pozniej wycigasz sobie po prostu ich pozycje i sprawdzasz, czy aby przypadkiem gracz nie znajduje sie na pozycji obiektu.

P.S.

Jezeli nikt nie doda lepszej odp to zmienie ten komentarz w odp

1 odpowiedź

0 głosów
odpowiedź 31 maja 2020 przez profesorek96 Szeryf (91,420 p.)
wybrane 31 maja 2020 przez WiktroH
 
Najlepsza
Ten obrazek w grach komputerowych to tak zwany sprite, duszek (nie mylić z napojem :) ). To co chcesz zrobić to system kolizji. Wykrywanie kolizji możesz zrobić najprościej za pomocą objęcia grafiki prostokątem. Sprawdzasz czy dwa prostokąty się nie przecinają. Jeśli się przecinają to masz kolizje. Polecam ci zerkną na ten materiał:

https://www.youtube.com/watch?v=JIad3X3PX6o

Po za tym warto przeczytać artykuł Gynvael Coldwind o tym jak robić gry. Artykuł ukazał się w magazynie Programista Junior.

Problem ten można rozwiązać za pomocą klasy Hero i klas dziedziczących po niej. Oczywiście pamiętaj że w C++ jeśli chciałbyś użyć polimorfizmu dynamicznego to metody w klasie muszą być oznaczone jako virtual.

Podobne pytania

+1 głos
2 odpowiedzi 206 wizyt
pytanie zadane 4 czerwca 2016 w C i C++ przez Norbit Początkujący (270 p.)
0 głosów
1 odpowiedź 372 wizyt
pytanie zadane 2 czerwca 2017 w C i C++ przez Beorn Początkujący (250 p.)
0 głosów
2 odpowiedzi 1,044 wizyt
pytanie zadane 6 stycznia 2017 w C i C++ przez Ala123456 Użytkownik (760 p.)

93,005 zapytań

141,970 odpowiedzi

321,249 komentarzy

62,341 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...