dervill Temat założony przez niniejszego użytkownika |
Symulator wind » 2012-03-28 12:21:26 Witam, nie bardzo wiedziałem gdzie założyć temat ale chyba dobrze wybrało. Chodzi mi o ogólną pomoc oraz porady. Muszę wykonać symulator wind oparty o c++ oraz jedną z bibliotek graficznych. Wybrałem sfml ponieważ wielu z was mi ją poleciło. O co dokładnie chodzi: Nie używałem nigdy jeszcze bibliotek graficznych, umiem tylko tyle co w tutejszych kursach i dlatego jestem trochę zagubiony. Chciałbym abyście mi doradzili jak pisać owy symulator? Sam szkielet programu + jego działanie chciałem oprzeć na obiektach (piętra + windy) lecz czy jest to dobry pomysł, bo nie wiem jak to poźniej będzie z wyświetlaniem sprajtów. Jeszcze na myśl przyszła mi lista dwukierunkowa jako piętra hmm.? Dla przykładu znalazłem coś podobnego w C# lecz ktoś nie ukończył tego i zostawił. http://www61.zippyshare.com/v/24226412/file.htmlPodsumowując, jaką mam obrać ścieżkę w tworzeniu symulatora aby dało się to stworzyć coś na wzór tego symulatora z C# |
|
GoldWolf |
» 2012-03-28 13:47:46 Spróbuj Sam zrobić szkielet, nie każdy ma takie zadanie jak Ty, a ja chcąc Ci doradzić musiałbym sam napisać program. Jeśli czas Cię mocno nie goni, to zacznij, a potem pytaj i systematycznie coś osiągniesz. |
|
Chlorek |
» 2012-03-28 17:50:37 Gotowego rozwiązania nikt Ci nie da (chyba). Taki "symulator" to niemały kawałek kodu, nikt Ci nie napisze co i jak, bo można zrobić to na kilka, ba dziesiątki sposobów. Jak napisał poprzednik, zacznij sam, jak będziesz miał problem z czymś konkretnym, coś nie zadziała - wówczas napisz tutaj. Tak na marginesie to ten program wydaje się raczej banalny, samo renderowanie grafiki to raczej nie problem, skup się na mechanizmie, a potem nałóż na to "okładkę" graficzną. |
|
dervill Temat założony przez niniejszego użytkownika |
» 2012-03-28 19:35:50 Tak wiem, że to nie mało wyjdzie linijek. Co do czasu mam na to jakiś miesiąc. Nie oczekiwałem gotowca, chciałem tylko sie dowiedzieć jak zacząć by później nie mieć problemów z ową nakładką graficzną. To w takim razie, biorę się za pisanie.
Dzieki i pozdrawiam. |
|
pentional |
» 2012-03-28 19:43:56 Może się przyda: #include <iostream>
using namespace std;
class winda { public: int numer_pietra, liczba_pieter, kierunek; winda() { numer_pietra = 0; cout << "Winda dostepna!\n"; } void zmiana_pietra( int nowe_pietro ) { if( nowe_pietro > liczba_pieter ) { cout << "Nie ma takiego pietra"; kierunek = 0; } if( nowe_pietro < 0 ) { cout << "Nie ma takiego pietra"; kierunek = 0; } if( nowe_pietro > numer_pietra ) { kierunek = 1; } else { if( nowe_pietro == numer_pietra ) { kierunek = 0; } else { kierunek = - 1; } } numer_pietra = nowe_pietro; } int gdzie_jest_winda() { cout << "\nWinda jest na pietrze: " << numer_pietra << endl; return numer_pietra; } void gdzie_ostatnio_jechala_winda() { if( kierunek == - 1 ) { cout << "W dol"; } if( kierunek == 1 ) { cout << "W gore"; } if( kierunek == 0 ) { cout << "Nie jechala"; } } ~winda() { cout << "Do widzenia"; } };
class budynek { public: winda winda1; winda winda2; void polozenie(); int przywolaj( int ); };
int roznica( int w1, int w2 ) { if(( w1 < w2 ) < 0 ) return( w1 - w2 ) *- 1; else return w1 - w2; }
int main() { budynek budynek1; winda winda1, winda2; winda1.liczba_pieter = 0; winda2.liczba_pieter = 0; int krotnosc = 0, moje_pietro, nowe_pietro; cout << "Start wind.\n\n Podaj liczbe pieter dla wind: \n"; cin >> winda1.liczba_pieter; winda2.liczba_pieter = winda1.liczba_pieter; do { krotnosc++; cout << "\n\n\n##########################\nKrotnosc: " << krotnosc << endl; cout << "\nPodaj pieto na ktorym jestes: "; cin >> moje_pietro; cout << "\nPodaj pietro na ktore chesz dojechac: "; cin >> nowe_pietro; if( roznica( moje_pietro, winda1.numer_pietra ) < roznica( moje_pietro, winda2.numer_pietra ) ) { cout << "Winda nr 1.\n"; winda1.zmiana_pietra( nowe_pietro ); winda1.gdzie_jest_winda(); winda1.gdzie_ostatnio_jechala_winda(); } else { cout << "Winda nr 2.\n"; winda2.zmiana_pietra( nowe_pietro ); winda2.gdzie_jest_winda(); winda2.gdzie_ostatnio_jechala_winda(); } } while( krotnosc <= 10 ); system( "pause" ); return 0; } |
|
dervill Temat założony przez niniejszego użytkownika |
» 2012-03-30 13:57:52 Witam, Tu ponownie ja. Powyższy kod, przydał się i jest w miarę poprawny, wprowadziłem drobne zmiany, ponieważ miał gdzie nie gdzie błędy. Dopisałem również funkcje przywoływania windy na dane piętro. Teraz mam pytanie: Czy na tym etapie, można już go odziać w grafikę? Przynajmniej na ruszające sie kwadraty jako windy, ponieważ o wiele łatwiej tworzyło by mi sie kolejne funkcje widząc co sie dzieje niż czytając napisy ;/ Jeżeli tak to jak zacząć owe nakładanie grafiki? Nadać współrzędne x,y windzie oraz poszczególnym piętrom? Oraz jak całość sprawnie wyświetlić? Link do kodu: http://codeupload.com/5432 |
|
Chlorek |
» 2012-03-30 16:49:52 Nie widzę w tym jakiegoś większego problemu. Powiedzmy, że każde piętro ma w twoim oknie 50 pixeli wysokości, mnożysz to przez numer piętra, ustawiasz na tej pozycji obrazek windy i już. Zwiększając piętra możesz zrobić powolne dodawanie/odejmowanie wysokości windy. Stwórz jakiś timer ustalający prędkość ruchu windy, potem co odpowiednią ilość czasu podczas ruchu dodawaj/odejmuj 1 pixel do/od wysokości. |
|
pekfos |
» 2012-03-30 17:40:38 potem co odpowiednią ilość czasu podczas ruchu dodawaj/odejmuj 1 pixel do/od wysokości. |
Gdy ostatnio jechałem windą, to nie poruszała się ruchem jednostajnym :P |
|
« 1 » 2 3 4 |