Jak oprogramować strzelanie z pistoletu?
Ostatnio zmodyfikowano 2011-07-27 18:46
waxx |
» 2011-07-27 15:57:24 akwes podaje prawidłowe rozwiązanie. |
|
Thud |
» 2011-07-27 16:08:25 Dawno nic w C++ nie pisałem. Widać też że mam złe przyzwyczajenia. |
|
akwes |
» 2011-07-27 16:17:04 Ciekawe czemu ten temat jest w biblioteki :P Skoro gadamy o algorytmie wykonania :P i skąd to SFML w topiku ? |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2011-07-27 17:24:48 Wiesz teraz sobie to tak analizuje i widzę że przy użyciu vectora można by to było zrobić w jednej klasie |
|
Thud |
» 2011-07-27 17:34:04 Tylko że ten kod, jak mówił waxx, jest błędny. Z punktu projektowego. |
|
akwes |
» 2011-07-27 17:46:54 Jeżeli usuniesz klasę Pistolet destruktorem, to nie ma prawa zniknąć Pocisk, bo czemu miałby? Jak masz pistolet, broń palną, to magazynek masz wypchany obiektami innej klasy, z innej fabryki, które po zmianie stanu przez pistolet wykonują swoje zadanie. W programowaniu można to skrócić do tworzenia naboi przez pistolet. Jeżeli chcesz aby Pocisk miał dostęp do składowych klasy Pistoletu to dajesz mu wskaźnik do rodzica. w klasie Pocisk dajesz coś takiego wskaźnik można wysłać przez konstruktor Pocisku Pocisk::Pocisk( Pistolet * rodzic ) { Parent = rodzic; }
Wywołanego przez Pocisk * tmp = new Pocisk( this );
AddToList( tmp );
|
|
diego997 Temat założony przez niniejszego użytkownika |
» 2011-07-27 17:54:13 Ja to zrobiłem tak: class Ship { sf::Shape Statek; public: vector < sf::Shape > Bullet; void Ship_Bullet_Tworzenie(); void Ship_Bullet_Shoot(); }; inline void Ship::Ship_Bullet_Tworzenie() { Bullet.push_back( sf::Shape::Rectangle( 0, 0, 4, 4, sf::Color::Cyan ) ); Bullet[ Bullet.size() ].SetPosition( Statek.GetPosition().x, Statek.GetPosition().y ); }
inline void Ship::Ship_Bullet_Shoot() { for( int i = 0; i <= Bullet.size(); i++ ) { Bullet[ i ].Move( 0, - 2 ); } }
|
|
akwes |
» 2011-07-27 17:59:47 1. Dlaczego robisz funkcje inline :| ? 2. Może i działa, ale przy rozwijaniu będzie sprawiać problemy 3. I powiedz Ty mi, czy usuwasz Pociski, które nie trafiły? Czy one tam są i jest ich coraz więcej na vectorze :P ? |
|
1 « 2 » 3 4 |