Filar Społeczności Ranmus Opublikowano 9 Października 2004 Filar Społeczności Udostępnij Opublikowano 9 Października 2004 Temat wydzielony z Blitz3D Jak obiecałem, podaje skrypt do prostego bezdzwiekowego ponga napisanego w Basic4GL. Zapoznanie się z progsem, tą wersją basica ( i w ogóle basica, bo go nie używam praktycznie), przeczytanie pobieznie manuala i napisanie calego kodu zajelo mi DWIE I PÓŁ godziny. Teraz pomyslcie ile zajmie napisanie w nim jakiegos Quake'opodobnego fpsa. Kodzik: dim przelacznik dim licznik dim punkty1 dim punkty2 dim py1 dim py2 dim px,py,pxe,pye,pspeed# dim zw$ glTranslatef (0, 0, -300) ' Blok 1: Wyswietlenie glownej planszy Start: punkty1 = 0 punkty2 = 0 cls resizetext(60,40) Locate 25,12 print "RM Pong" Locate 18,16 print "Basic4GL fast demotest" Locate 19,20 print "Press Space to Start" ' Koniec bloku 1 ' Blok 2: Miganie napisu przelacznik = 1 licznik = 0 clearkeys() while not scankeydown(VK_SPACE) if licznik < 100 then licznik = licznik + 1 sleep(1) else licznik = 0 if przelacznik = 1 then clearline() else Locate 19,20 print "Press Space to Start" endif endif przelacznik = -przelacznik wend cls ' Koniec bloku 2 ' Blok3: Wlasciwa gra Gra: py1 = 0 py2 = 0 px = 0 py = 0 pye = (Rnd() % 2 ) * 2 - 1 pxe = (Rnd() % 2 ) * 2 - 1 pspeed# = 3 while not scankeydown(VK_ESCAPE) if py > 170 then pye = -1 : pspeed# = pspeed# endif if py < -170 then pye = 1 : pspeed# = pspeed# endif if px > 207 and px < 220 and py1 + 40 > py and py1 - 40 < py then pxe = -1 : pspeed# = pspeed# + 1 endif if px > 240 then punkty2 = punkty2 + 1 : goto PokazP endif if px < -207 and px > -220 and py2 + 40 > py and py2 - 40 < py then pxe = 1 : pspeed# = pspeed# + 1 endif if px < -240 then punkty1 = punkty1 + 1 : goto PokazP endif py = py + pye * pspeed# px = px + pxe * pspeed# if scankeydown(VK_DOWN) and py1 > - 130 then py1 = py1 - 4 endif if scankeydown(VK_UP) and py1 < 130 then py1 = py1 + 4 endif if keydown("W") and py2 > - 130 then py2 = py2 - 4 endif if keydown("Q") and py2 < 130 then py2 = py2 + 4 endif glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT) glBegin (GL_QUADS) glVertex2f (225,py1+40) glVertex2f (210,py1+40) glVertex2f (210,py1-40) glVertex2f (225,py1-40) glEnd () glBegin (GL_QUADS) glVertex2f (-225,py2+40) glVertex2f (-210,py2+40) glVertex2f (-210,py2-40) glVertex2f (-225,py2-40) glEnd () glBegin (GL_QUADS) glVertex2f (px+5,py+5) glVertex2f (px-5,py+5) glVertex2f (px-5,py-5) glVertex2f (px+5,py-5) glEnd () SwapBuffers () wend PokazP: if punkty1 > 9 then zw$ = "Zwyciezyl gracz 1" goto Zwyciezca endif if punkty2 > 9 then zw$ = "Zwyciezyl gracz 2" goto Zwyciezca endif clearkeys() cls resizetext(40,20) locate 17,8 clearline() print punkty2 + " : " + punkty1 while not scankeydown(vk_space) wend goto Gra Zwyciezca: cls resizetext(40,20) locate 10,8 print zw$ while not scankeydown(vk_space) wend goto Start Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 9 Października 2004 Administratorzy Udostępnij Opublikowano 9 Października 2004 a świstak siedzi i zawija w te sreberka... a ile zajęło by ci zrobienie tej gry w GM 6.0 ?? :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ajot Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Ranma mogłeś odrazu napisać że to się nazywa Basic4Gl :P Szukałem i ściągnąłem Microsoft Embedded visual tools c++ / basic . 200 mb, ale powiem wam że też warty uwagi. niestety płatny, ale można się na nim nauczyć troche :P Co Do Basic4Gl to właśnie ściągam, i dziwie się że zajmuje 4 mb ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bartek (Kamrat) Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 (edytowane) Lol :) O dziwo też szukam właśnie tego Basic4Gl i sprawdzam podobne rzeczy :) Ściągne, sprawdze i ide dalej w nauke C++ :P Jestem tuż po testowaniu Basic4GL - i musze powiedzieć, że dobre. Nietrzeba żadnego komplikatora C++, tylko piszemy program, testujemy, poprawiamy i robimy plik Exe :) Fajne, przyda się :) Ide studiować :) Edytowane 10 Października 2004 przez Pietrus_paN Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ajot Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Dokładnie ;) Też zainteresowałem się tym progsem, trzeba przyznać jest dośc niezły. Interesuje mnie tylko sprawa czcionki. Czy to da się zmienic ? :P W nie pasuje do wszytskiego owa czcionka... :P Ranma - Gratuluje ponga, tylko po chwili juz nie jest mozliwe panowanie nad piłką ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bartek (Kamrat) Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Dokładnie ;) Też zainteresowałem się tym progsem, trzeba przyznać jest dośc niezły. Interesuje mnie tylko sprawa czcionki. Czy to da się zmienic ? :P W nie pasuje do wszytskiego owa czcionka... :P <{POST_SNAPBACK}> Czcionkę w Basic4GL da się zmienić :) Basic4GL -> Select Font. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ajot Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Tak ale to zmieni się czcionka w oknie edycji kodu a nie w aplikacji ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 10 Października 2004 Autor Filar Społeczności Udostępnij Opublikowano 10 Października 2004 Basic4GL jak na razie ma dwa poważne uchybienia. Pierwszy, to kiepska dokumentacja, samo wymienienie funkcji mnie nie satysfakcjonuje. Autor opisał tylko pewną część i to pobieżnie. Drugie uchybienie i to chyba najważniejsze, to... brak możliwości tworzenia własnych funkcji. W sumie można to obejść symulując przeskakiwaniem w kodzie, ale prowadzi to trochę do zagmatwania. Autor planuje dodać definiowanie funkcji w kolejnych wersjach. A propos, dopiero co zauważyłem, że nie dość że mam wersję 2.2.4 (a przecież jest 2.2..5), to jeszcze, że w katalogu programs są przykłady. :-) Sadam: Programmer's Guide, taki kawałek ci wystarczy: texture = LoadTexture ("data\charset2.png") Font (texture) A z tą szybka pilka, to wiem. Chcialem zrobic jak najszybciej tego ponga. Zreszta pspeed powinno miec na poczatku wartosc 1 a nie 3, którą ustawiłem tymczasowo by szybko sprawdzic zliczanie punktow i tak juz zostalo. :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ajot Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Dzięki ranma :) Tym czasem studiując tutoriale, i przykłądy napisałem w olnej chwili taką małą gierkę. Nie wiem jak się nazywa ale bardzo często robią ją ludzie zaczynający swoją przygodę z pascalem. A oto kod źródłowy :P : dim playerx, playery, scx, scy , moves scx = rnd () % 22 + 1 scy = rnd () % 22 + 1 playerx = 15 playery = 15 moves = 100 TextMode (TEXT_BUFFERED) while true if ScanKeyDown (VK_LEFT) and playerx > 0 then playerx = playerx - 1 moves = moves - 1 endif if ScanKeyDown (VK_RIGHT) and playerx > 0 then playerx = playerx + 1 moves = moves - 1 endif if ScanKeyDown (VK_UP) and playery > 0 then playery = playery - 1 moves = moves - 1 endif if ScanKeyDown (VK_DOWN) and playery > 0 then playery = playery + 1 moves = moves - 1 endif if playerx = scx and playery >= scy then scx = rnd () % 22 + 1 scy = rnd () % 22 + 1 moves = moves + rnd () % 20 + 10 endif cls color (222, 222, 222) locate playerx, playery: print "0" locate scx, scy: print "@" locate 1,1: print "Moves : " + moves locate 1,2: print "Writed by Sadam" DrawText () Sleep (75) wend Mniej więcej chodzi o zbieranie znaku @. Mamy ograniczoną ilośc ruchów, za każdym dotknięciem " @ " dodaje nam losową liczbę ruchów. :) Ale gdzie ja z tym do twojego ponga ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 10 Października 2004 Autor Filar Społeczności Udostępnij Opublikowano 10 Października 2004 Ja tez nie wiem jak to sie nazywa. :-) Spoko giera. Zrob mario, bo ktos na forum prosil :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bartek (Kamrat) Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Heh... Sadam twoja gra to taki pewny rodzaj Snake'a :P Tylko że jest ograniczenie ruchów i pierdółka się nie robi dłuższa :) Spoko :D Grałem w to z 10min :D A ja tymczasem zabieram się do stworzenia gierki :D Fajny ten Basic4GL :D I nawet łatwy :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaytek Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 W tym, to nawet ja załapałem jak gierkę stworzyć ! :D Chyba sobie jakąś zrobie, tymczasem czekamy na grę Pietrus'a... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 10 Października 2004 Autor Filar Społeczności Udostępnij Opublikowano 10 Października 2004 A rob rob, tylko jakas bardzo prosciutka na poczatek. Potem przechodz na coraz trudniejsze - praktyka czyni mistrza, piszac zawsze uczysz sie kodowac, wiedza sama wchodzi do glowi. :) Ja dalej nie moge przebolec tego ze nie mozna tworzyc funkcji, ale znalazlem juz na to zloty srodek, jak zbudowac wlasne. Pozniej wam go pokaze. A propos, trzeba by zrobic test szybkosci w wyswietlaniu vertexow: GM vs Basic4GL. Ciekawe, co wygra. :) ps. Kto pisze polskiego doca do basic4gl? :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaytek Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Hmm... drobne pytanko do speców w kodowaniu: Dim liczba Dim wyl if scankeydown(VK_up) then wyl = rnd() endif locate 15,15 Printr "Wylosowa liczba to " + wyl end I program nie działa... dlaczego? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Ranma, podobno Sadam ma pisać dużo o Basic4GL na AAGM. Poczekamy, zobaczymy, ale to co mi teraz pokazuje jest całkiem niezłe :) . EDIT: Dim liczba Dim wyl wyl = rnd() locate 15,15 Printr "Wylosowana liczba to " + wyl end Tak musi być Kaytek :) . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ajot Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Dim liczba Dim wyl if scankeydown(VK_up) then wyl = rnd() endif locate 15,15 Printr "Wylosowa liczba to " + wyl end Sprubój tak : Dim liczba, wyl while true if scankeydown(VK_up) then wyl = rnd() endif locate 15,15: Printr "Wylosowa liczba to " + wyl wend U mnie działa ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaytek Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Dim wyl color(50,50,50) locate 3,3 Printr "Wylosowana liczba to " + wyl while wyl = 0 if scankeydown(VK_up) then wyl = Rnd() % 100 color(50,50,50) locate 3,3 Printr "Wylosowana liczba to " + wyl endif wend Rozwiazanie problemu by Ranma (i częściowo przeze mnie tj. pętla wykonywana jeden raz i ładny kolorek czcionki :) ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ajot Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Tak się zastanawiam dlaczego większość z was rozkłada 1 linjkę na 2 lub 3 ? Nie lepiej zastosować zamiast locate 15, 15 Printr "Tralala" + grrrr to : locate 15, 15 : Printr "Tralalal" + grrrrr ?? Można przecierz dodać do takiej linijki komentarz i kod staje sie o wiele bardziej czytelny :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaytek Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 W takim razie prezentuje wersje finalna mojego (niezwykle przydatnego :] ) programu losujacego liczbe Dim wyl 'Ustawia kolorek color(50,100,50) 'Wyglad przed petla locate 3,3 : Printr "Wylosowana liczba to " + wyl 'petla (losuj jesli licznik wyl jest rowny 0) while wyl = 0 'jesli nacisniejsz strzalke w gore, losuje liczbe if scankeydown(VK_up) then wyl = Rnd() % 100 'Kolorek ponownie color(50,100,50) 'Wyglad po wylosowaniu locate 3,3 : Printr "Wylosowana liczba to " + wyl 'Koniec if i petli endif wend Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 10 Października 2004 Autor Filar Społeczności Udostępnij Opublikowano 10 Października 2004 Sadam: Lepiej miec dluzszy kod, a nie taki, ktory ci sie w oczach zlewa. Przeciez nie mozesz caly czas czytac komentarzy, bo to strata czasu. W ogole wszedzie jest tak przyjete, ze dwa ROZNE wyraznie piszemy w nowych linijkach. Natomiast dwa te same mozna pisac w jednej, np: DIM zmienna DIM zmienna2 tak: DIM zmienna,zmienna2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bartek (Kamrat) Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Tia... Ja zawsze się lubie rozpisywać. Potem zawsze wiem gdzie co jest :D A tymczasem zmykam robić moją grę :D PS. Może ktoś wie jak zrobić żeby obiekt klocek został usunięty po kolizji z kulką? Bo w helpie nie znalazłem, a jeszcze się ucze :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ajot Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Ranma@ Hmmm... No mi akurat jescze bardziej się zlewa finalna wersja tego jak przydatnego progsa :D Po pierwsze : gdy pisze kod często stosuje wiele przerw, odzielając od siebie poszczególne komendy np. - Mam częśc kodu odpowiadającą za naciskanie klawiszy. Wtedy robie dodatkowy enter i mam wszystko ąłdnie pięknie i przyjemnie ;) Co do dimów i zmiennych to chyba musze zacząć tak robić :D Teraz ja mam pytanie. Mam kod odpowiadajacy za pobranie spritea, z pliku. Wszystko pięknie chodzi jednak kiedy chce zmienić ściezke dostępu na inny, nic sie niedzieje. Myślałem że to wina umiejscowienia jednej linijki odpowiadajacej za pobranie sćieżki ze zmiennej texture. Niestety nie. Po dodaniu jej za cls, zaczyna się wszystko chrzanić. Miałem w głowie jescze taki myk żeby, ściezka dostępu była zmienną spraddres . Niestety kiedy dałem kod - spraddres = "data/ball2.gif" Wywaliło błąd :/ Edit : Pietrus najprosztszym sposobem jest dać if klocekx = kulkax and kloceky = kulkay then ... Dany kod sprawdza czy x i y obiektu kulka i klocek są takie same. jezlei tak dajesz zamiast ... kod odpawiadający za destroy obiektu ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bartek (Kamrat) Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 A :D Rozumiem :D :) :] Thx :P A tak sobie przed chwilą pomyślałem - dzięki mnie mamy teraz Basica4GL :P Bo to dzięki mojemy topicowi "Blitz3D" Ranma znalazł B4GL :P Lol :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaytek Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Hmmm... Polska scena Basica4GL? :] Język fajny, można w nim tworzyć bardzo skomplikowane i przydatne aplikacje (np. moja :) ). Polecam kliknąć "Otwórz" i wejść do katalogu "Programes" :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ajot Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Hmmm... Polska scena Basica4GL? :] Najwyraźniej :D Język fajny, można w nim tworzyć bardzo skomplikowane i przydatne aplikacje (np. moja smile.gif ). Polecam kliknąć "Otwórz" i wejść do katalogu "Programes" Hymmm... To pierwsze co zrobiłem. Czyt - Dyskretnie przeglądnąłem cały katalog z basiciem czy niema tam czegoś co się może przydać :D Poza tym radze wejśc na oficjalną stronę basica - www.basic4gl.net i przeczytać wszystkie kursy. Naprawde warto i nie trzeba znać ang. Wystarczy przejrzeć kod, i pomysleć jaka funckja może do czego służyć :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bartek (Kamrat) Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Bueheheh... Pierwsza polska scena Basica4GL :D Huraaaaa :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaytek Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Hmm... Ktoś chętny do zaopiekowania się "sceną" :) ? Ja mam to szczęście, że Ranma dał mi szereg rad w jaki sposób się języka efektywnie uczyć. Może on naprawdę wiele (chyba się nawrócę na to :) ). Mam nadzieję, że nauczę się go na tyle, by móc wykorzystywać w praktyce, do tworzenia gier. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ajot Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Kaytek no ale bez przesady :D Zaraz załorzymy strone, najlepiej wortal o basicu... :P Co twojego szczęścia. To w pewnym stopniu ci zazdroszcze. Tyle że ja miałęm to szczęście że widziałem 2 pliki główne gmclanu :D Ale nie o tym tu mowa. Ja osobiście jestem przyzwyczajony do tego że robie wszystko sam, i sam musze to znaleźć ... :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 10 Października 2004 Autor Filar Społeczności Udostępnij Opublikowano 10 Października 2004 Sadam, a czemu nie, to bardzo dobra wersja Basica specjalnie dla gier i to jeszcze z obsluga OpenGL'a (ale do aplikacji polecam MediaBasic). Ewentualnie można stworzyć dodatkowy kącik na GMCLAN dla Basic4GL. Ja sam mam zamiar sie blizej jemu przyjrzec. A jesli chodzi o wskazowki, to wyjasnilem naprawde podstawy, np. co to jest pętla WHILE. Wiesz, dla kogos, kto wczesniej uzywal tylko TGF, to jest kompletna nowosc. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ajot Opublikowano 10 Października 2004 Udostępnij Opublikowano 10 Października 2004 Hehe, myslałem że przekazywałeś mu tajną i zakazaną wiedzę o sztuce basic, atu o pętlach nawijaliście :) Co do kącika to bardzo dobry pomysł. Szczerze mówiąc to w chwili obecnej robie tylko w basicu. GM w jakiś sposób zszedł na 3 plan ( na 2 jest php :D ) dlatego też mógł bym zasilić owy dział ;) Choć jeżeli załorzylibyśmy stronę , i był byś tam ty, i kilka osób z tego forum to nie głupi pomysł ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się