Skocz do zawartości

arkanoid


rower44

Rekomendowane odpowiedzi

Uhuhu, bez podstawowej znajomości obsługi zmiennych się bierzesz za Game Makera? Polecam lekturę helpa, ale wyjątkowo ci pomogę, bo mimo iż mi się karta dźwiękowa zepsuła, to jestem w dobrym humorze :D .

Więc wytłumaczę ci na kodzie. Kod dajesz do stepa jakiegoś objektu na planszy:

if score=1000 { room_goto_next(); }

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Stary jak nie znasz angielskiego, to jak masz zamiar robić grę, skoro wszystkie komendy są po angielsku ??

Będzie polski help, ale narazie mam przetłumaczone 5 stron :P Zaczekaj do września.

Odnośnik do komentarza
Udostępnij na innych stronach

Ale wtedy paletka zawsze będzie w tej samej pozycji, co piłka... Nie lepiej to troszkę zmienić... :P

Create paletki

ai=1 //Wybierz sobie, jak dobre ma być AI tej paletki.

Step paletki

for(i=0;i<ai;i+=1)
{
if (pilka.direction>180) && (pilka.direction<360)
{
if (pilka.x<paletka.x)
{
x-=1;
}
else
{
x+=1;
}
}
}

Kurs programowania w GM, część 1... :P

Odnośnik do komentarza
Udostępnij na innych stronach

if (instance_count=0) { room_goto_previous; }

To co dał Bartoszwitek. Więc ja zaproponuję coś innego, na tym kodzie. Nie wiem, czy zadziała, ale ja bym to tak zrobił :)

Przypuśćmy, że na planszy jest piłka i paletka, poza klockami. Czyli, 2 obiekty. Więc, kod będzie wyglądał:

if ((instance_count-2)=0) { room_goto_previous; }   // od ilości obiektów odejmujemy 2 (paletka i piłka)

(Jeżeli tek kod okaże się poprawny, to będzie mój pierwszy udany skrypt :D )

Pozdroo :)

Odnośnik do komentarza
Udostępnij na innych stronach

2QL4SQL twój skrypt będzie działał tylko poprawnie jeśli będzie w roomie tylko paletka, piłeczka i klocki. Jeśli coś innego się pojawi to nie będzie działać :] Proponuje tak :

 

W create, w klocku :

global.ilosc_klockow+=1;

 

W destroy, w klocku :

global.ilosc_klockow-=1;

 

W step w jakimś obiekcie :

if global.ilosc_klockow<=0
{
room_goto_previous();
}

Oczywiście musisz stworzyć zmienną global.ilosc_klockow :P

 

EDIT

Albo łatwiej :

ilosc=0;

for(a=0;a<instance_count;a+=1;)
{
   var obiekt_id;

   obiekt_id=instance_id[a];

   if instance_exists(obiekt_id)
   {
       if obiekt_id.object_index=obj    //Tutaj słowo "obj" zmień na nazwe obiektu klocka
       {
           ilosc+=1;
       }
   }
   
   if ilosc<=0
   {
       room_goto_previous;
   }
}

Odnośnik do komentarza
Udostępnij na innych stronach

var dir,f,s;

f=1;    //Tu ustawiasz prędkość hamowania
s=0.4;  //A tu przyspieszenia

dir=point_direction(x,y,pilka.x,pilka.y);

if dir<90 || dir>270
{
   if distance_to_point(pilka.x,y)>10
   {
       speed+=s;
       friction=0;
   }
   else
   {
       friction=f;
   }
}
else
{
   if distance_to_point(pilka.x,y)>10
   {
       speed-=s;
       friction=0;
   }
   else
   {
       friction=f;
   }
}

Pozdro :P

Odnośnik do komentarza
Udostępnij na innych stronach

Heh, takie gadanie mnie denerwuje. Gra będzie praktycznie nie do przejścia jeśli się wykorzysta twój kod a zresztą można dobrze napisać w taki sposób :

x=pilka.x

Efekt jest ten sam :]

 

EDIT

Pamiętaj że liczy się też efekt a nie tylko długość kodu ;)

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...