nitrous Napisano Maj 18, 2006 Zgłoś Share Napisano Maj 18, 2006 Witam wszystkich! Od pewnego czasu piszę w OpenGL prostą grę typu FPP. Zrobiłem już system poruszania się , dałem prostą planszę i parę innych drobnych rzeczy. Przed stworzeniem większej mapy chciałbym zrobić celownik, który znajdowałby się na środku ekranu i wskazywałby tor lotu pocisków. Czy można zrobić celownik jako kursor myszki? A może w "przestrzeni" narysować dwie jasne linie, przecięte na krzyż? Doradźcie, bo nie mam więcej pomysłów i dopiero poznaję OpenGL. Pozdrawiam!P.S Jeżeli to ważne, to chciałbym powiedzieć ,że piszę program z użyciem formularzy. Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Maj 18, 2006 Zgłoś Share Napisano Maj 18, 2006 powinno wystarczyć zwykłe narysowanie 2 przecinających się lini czy tam jakiegoś innego wzorku na środku. Jak zrobisz celownik jako kursor myszki to będzie on się ruszał z myszką, chyba, że dasz SetCursorPos na środek jednak wydaje mi się, że lepiej jest ukryć kursor i dać linie na środku poza tym da to możliwość łatwego zmieniania koloru celownika itp. Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Spider100 Napisano Maj 18, 2006 Zgłoś Share Napisano Maj 18, 2006 Nie będę się rozpisywał Jeśli dopiero zaczynasz robić grę:Dwie przecinające się linie powinny wystarczyćJeśli już kończysz robić grę:Rzutowanie płaskie + quad1. + tekstura2. + wzór Polygon Stipple Pozdrawiam!Spider ^*^ www.spider.dathox.com Link do komentarza Udostępnij na innych stronach More sharing options...
DarkAndrew Napisano Maj 18, 2006 Zgłoś Share Napisano Maj 18, 2006 Nie rozumiem: ten "celownik" ma wskazywać tor lotu pocisku lecącego, czy być zwykłym celownikiem. W drugim przypadku to lepiej zrobić prosty celownik jako kursor myszki, i w przypadku poruszenia myszą obrócić kamerę. "Może wam pomoge, może nie, może pierdolcie w dupę się"-prof. Jarząbek Link do komentarza Udostępnij na innych stronach More sharing options...
Budrys Napisano Maj 18, 2006 Zgłoś Share Napisano Maj 18, 2006 Zanim wywołasz funkcję glTranslateF i glRotateF (do obracania i poruszania postacią) dajesz renderowanie jakiegoś jakiegoś modelu z 3dStudio, który będzie zawsze dokładnie przed oczami widza. Oczywiście powinieneś oddalić go od siebie o kilka jednostek np procką glTranslateF (jeśli używasz glulookat to ci nie pomoge). Link do komentarza Udostępnij na innych stronach More sharing options...
Spider100 Napisano Maj 18, 2006 Zgłoś Share Napisano Maj 18, 2006 Samo renderowanie celownika jest proste: glPushMatrix; //pobieranie macierzyglLoadIdentity; //czyszczenie macierzyglTranslatef(Tu o parę jednostek wzdłuż którejś osi wystarczy sprawdzić)Rysuj_Celownik_2D; glPopMatrix; //Zwracanie macierzyKoniec www.spider.dathox.com Link do komentarza Udostępnij na innych stronach More sharing options...
nitrous Napisano Maj 19, 2006 Autor Zgłoś Share Napisano Maj 19, 2006 Witam ponownie! Tak, rozwiązanie z rysowaniem linii będzie chyba najlepsze. Ruch celownika za postacią w 4 strony będzie prosto wykonać, lecz ruch za myszką już raczej nie... Czy ktoś wiedziałby jak zaprogramować aby celownik ruszał się za ową myszką? Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Maj 19, 2006 Zgłoś Share Napisano Maj 19, 2006 zastanawia mnie tylko jedno w grach typu FPP celownik jest na środku zawsze. Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Kezard Napisano Maj 19, 2006 Zgłoś Share Napisano Maj 19, 2006 [quote] Tak, rozwiązanie z rysowaniem linii będzie chyba najlepsze. Ruch celownika za postacią w 4 strony będzie prosto wykonać, lecz ruch za myszką już raczej nie... Czy ktoś wiedziałby jak zaprogramować aby celownik ruszał się za ową myszką? [/quote]Nie rozumiem, co Ty tak naprawdę potrzebujesz ? Chcesz mieć celownik zamiast kursora, celownik na środku ekranu, czy celownik który rusza się w raz z ruchem kursora ale wraca do środka ekranu? Link do komentarza Udostępnij na innych stronach More sharing options...
nitrous Napisano Maj 20, 2006 Autor Zgłoś Share Napisano Maj 20, 2006 Potrzebuję celownik taki jak w grach; żeby był zawsze na środku ekranu. Jeżeli ktoś ma gotowe celowniki jako kursory myszki chętnie skorzystam. Próbowałem takie robić, lecz nie wychodziły mi. Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Maj 20, 2006 Zgłoś Share Napisano Maj 20, 2006 To nie rób tego jako kursor. Robisz standartowo jak w FPP czyli kursor robisz nie widoczny a pozycję jego ustawiasz zawszę na środku przy ruchu obliczasz delty X,Y i obracasz kamerę a celownik to nie kursor tylko coś narysowane na środku ekranu. To nie jest plik *.cur czy inne tym podobne kursory. Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Spider100 Napisano Maj 20, 2006 Zgłoś Share Napisano Maj 20, 2006 Heh nie wiem jak wy, ale ja mam już dostać 10 postów i nic z tego nie wiadomo ... celownik na środku, ale z myszy. Nitrous niestety ale zanim zaczniesz programować powinieneś nauczyć się precyzować problemy.Poświęciłem 10 minut dla naszego spokoju i napisałem kod Efekt jest następujący:http://xs.to/xs.php?f=celownik.jpg&h=xs100&d=06206Oto procedura odpowiadająca za ustawienie opengl do rysowania celownika [code=Delphi] procedure Draw_Sight(aSize: Single; sWindowX, sWindowY: SingJNBB[[N[NBY[B[X[YHW7GR'6VĆvć''vvVWG&RvW6GG&\"tAQ!} UI} %PźźAŃŃŃŃ4(ąe(GL_Depth_Test); // Wylaczenie depth testu { Zmiana amciHZHH][YHYHXH[[ZYHYHĆvvG&FRt$T5DŚćć6W'4(ąAĄ5ŃźźA glloadidentity; // Czyszczenie macierzy widoku gĘLKKLKKLKJN][YHYCBB7Ś7ŚVćR6W'FVR'6VĆvćŚćŚFv6RŚw7ŚRć4(ą5Ń5Ą1}5=1Y%źźAźrzy modelu glPushMatrix; // Pobieranie macierzy modelu YY[]N[YHXXYCB[ĆRŁ5vćFu5vćFu6śĆFĆŚ6vć&&6Ś(Iąąźą glScalef(aSize, aSize * sWindScale, aSize); //SkalowaYCBB[ZH]YH[H[HYHH[H'2&7FwV\"FV7GW&G&u6vEFV7'ŃźA=ąźźŃ} glPopMatrix; // Zwracanie macierzy modelu glMat^[JÓPSÓNZX[HHXXYZCBG&w&6ćR6W'&ŚVś6ŚvG&FRt5=1Y%źźią4(ąAŃŃźźiracanie porprzedniego stanu depth testu end;7k7kvęŻ+.uzZ0)ui'procedure Draw_Sight_Model; begin glColor3f(1, 1, 1); B[^JNBY[Ó[ĘNB^vVćCv&VvtU2GvRĆćPąYŃ4(ąYŃ4(4(ąYŃ); glVertex2f(0, -0.1); glVertex2f(1, 0); glVerteK NBB^LK NB^LK N6VśvRFFFśvfW'FW&bbvYŃ4(4(ąYŃ4(ąYŃ(0.1, -0.2); glVertex2f(-0.1, 0.6); glVertex2f(-0.1,NBB^LKLNB^LKLvfW'FW&bbvfW'FW&b\"vYŃ4(ąYŃ4(4(ąYŃf(0.6, -0.1); glVertex2f(0.2, -0.1); glVertex2f(-0.6LJNB^LLJNBB[B[ [/code]Całe stworzenie celownika polega teraz na wywołaniu procedury Draw_Sight(0.08,Rozmiar_Okna_X, Rozmiar_Okna_Y); //Wystarczy to wkleić na końcu renderowania scenyJak nadal nie wiesz o co chodzi to może niebawem napisze z tym kodem artykuł ale z tego co ja tam się rozpisałem to już jest krótki art. Dawaj pomógł i możesz używać kodu do woli Pozdrawiam![Edit] była mała usterka www.spider.dathox.com Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.