[as2] Zestrzelił i uciekł - asteroids-textoids :-)
 Oceń wpis
   

Czyli zasada levelowania w asteroids. Które pisze Darek 3DH.

var speed:Number = 1;
var speed_const:Number = 1;
var speed_multiplier:Number = 2;
var speed_acc:Number = 0.2;
var speed_prevAccSpeed:Number = 0;
//
var shootOut_counter:Number = 0;
var shootOut_speedStep:Number = 3;
var shootOut_bonusStep:Number = 5;
var bonus_prevShootCount:Number = 0;
//
this.onEnterFrame = function () {
//
var output:String = "";// "\n" jeżeli chcesz dodatkowy odstęp (przy trace z flasha jest niepotrzebny - dodaje sam)
//
output += "Zestrzeliłeś asteroidę... ";
output += "zestrzelonych: " + shootOut_counter + " asteroid. ";
output += "Prędkość: wynosi " + speed + ". ";
shootOut_counter++;
//
if (!(shootOut_counter % shootOut_speedStep) && (speed_prevAccSpeed != speed))
{
 speed_prevAccSpeed = speed;
 speed = speed_const + int (shootOut_counter * speed_multiplier) * speed_acc;
 output += "No i przyspieszam do " + speed + ".";
}
if (!(shootOut_counter % shootOut_bonusStep) && (bonus_prevShootCount != shootOut_counter))
{
 bonus_prevShootCount = shootOut_counter;
 output += " I bonus nr " + int (shootOut_counter / shootOut_bonusStep) + " też się trafił.";
}
if (shootOut_counter == 200)
{
 delete this.onEnterFrame;
}
trace(output);
};
Skrypt symuluje grę w asteroids przy zadanych parametrach - level'owanie na podstawie prędkości, co 3 zestrzelone sztuki, wrzucanie bonusa co pięć zestrzelonych asteroid. Oczywiście jest to model - bardzo łatwy do połączenia z View.

Wynik działania:

Zestrzeliłeś asteroidę... zestrzelonych: 0 asteroid. Prędkość: wynosi 1. 
Zestrzeliłeś asteroidę... zestrzelonych: 1 asteroid. Prędkość: wynosi 1. 
Zestrzeliłeś asteroidę... zestrzelonych: 2 asteroid. Prędkość: wynosi 1. No i przyspieszam do 2.2.
Zestrzeliłeś asteroidę... zestrzelonych: 3 asteroid. Prędkość: wynosi 2.2. 
Zestrzeliłeś asteroidę... zestrzelonych: 4 asteroid. Prędkość: wynosi 2.2.  I bonus nr 1 też się trafił.
Zestrzeliłeś asteroidę... zestrzelonych: 5 asteroid. Prędkość: wynosi 2.2. No i przyspieszam do 3.4.
Zestrzeliłeś asteroidę... zestrzelonych: 6 asteroid. Prędkość: wynosi 3.4. 
Zestrzeliłeś asteroidę... zestrzelonych: 7 asteroid. Prędkość: wynosi 3.4. 
Zestrzeliłeś asteroidę... zestrzelonych: 8 asteroid. Prędkość: wynosi 3.4. No i przyspieszam do 4.6.
Zestrzeliłeś asteroidę... zestrzelonych: 9 asteroid. Prędkość: wynosi 4.6.  I bonus nr 2 też się trafił.
Zestrzeliłeś asteroidę... zestrzelonych: 10 asteroid. Prędkość: wynosi 4.6. 
Zestrzeliłeś asteroidę... zestrzelonych: 11 asteroid. Prędkość: wynosi 4.6. No i przyspieszam do 5.8.
...
...
Zestrzeliłeś asteroidę... zestrzelonych: 39 asteroid. Prędkość: wynosi 16.6.  I bonus nr 8 też się trafił.
Zestrzeliłeś asteroidę... zestrzelonych: 40 asteroid. Prędkość: wynosi 16.6. 
Zestrzeliłeś asteroidę... zestrzelonych: 41 asteroid. Prędkość: wynosi 16.6. No i przyspieszam do 17.8.
Zestrzeliłeś asteroidę... zestrzelonych: 42 asteroid. Prędkość: wynosi 17.8. 
Zestrzeliłeś asteroidę... zestrzelonych: 43 asteroid. Prędkość: wynosi 17.8. 
Zestrzeliłeś asteroidę... zestrzelonych: 44 asteroid. Prędkość: wynosi 17.8. No i przyspieszam do 19. I bonus nr 9 też się trafił.
...
...
Zestrzeliłeś asteroidę... zestrzelonych: 60 asteroid. Prędkość: wynosi 25. 
Zestrzeliłeś asteroidę... zestrzelonych: 61 asteroid. Prędkość: wynosi 25. 
Zestrzeliłeś asteroidę... zestrzelonych: 62 asteroid. Prędkość: wynosi 25. No i przyspieszam do 26.2.
Zestrzeliłeś asteroidę... zestrzelonych: 63 asteroid. Prędkość: wynosi 26.2. 
Zestrzeliłeś asteroidę... zestrzelonych: 64 asteroid. Prędkość: wynosi 26.2.  I bonus nr 13 też się trafił.
Zestrzeliłeś asteroidę... zestrzelonych: 65 asteroid. Prędkość: wynosi 26.2. No i przyspieszam do 27.4.
...
...
Zestrzeliłeś asteroidę... zestrzelonych: 90 asteroid. Prędkość: wynosi 37. 
Zestrzeliłeś asteroidę... zestrzelonych: 91 asteroid. Prędkość: wynosi 37. 
Zestrzeliłeś asteroidę... zestrzelonych: 92 asteroid. Prędkość: wynosi 37. No i przyspieszam do 38.2.
Zestrzeliłeś asteroidę... zestrzelonych: 93 asteroid. Prędkość: wynosi 38.2. 
Zestrzeliłeś asteroidę... zestrzelonych: 94 asteroid. Prędkość: wynosi 38.2.  I bonus nr 19 też się trafił.
Zestrzeliłeś asteroidę... zestrzelonych: 95 asteroid. Prędkość: wynosi 38.2. No i przyspieszam do 39.4.
Zestrzeliłeś asteroidę... zestrzelonych: 96 asteroid. Prędkość: wynosi 39.4. 
Zestrzeliłeś asteroidę... zestrzelonych: 97 asteroid. Prędkość: wynosi 39.4. 
Zestrzeliłeś asteroidę... zestrzelonych: 98 asteroid. Prędkość: wynosi 39.4. No i przyspieszam do 40.6.
Zestrzeliłeś asteroidę... zestrzelonych: 99 asteroid. Prędkość: wynosi 40.6.  I bonus nr 20 też się trafił.
Zestrzeliłeś asteroidę... zestrzelonych: 100 asteroid. Prędkość: wynosi 40.6. 
...
... 
Zestrzeliłeś asteroidę... zestrzelonych: 199 asteroid. Prędkość: wynosi 80.2.  I bonus nr 40 też się trafił.

Przy połączeniu z kontrolerem (GameManager/Controller) i z View bardzo prosto przejść do normalnej gry. Wystarczy linijkę shootOut_counter++; zamienić na wywołanie metody sprawdzającej skutek strzału/położenie pocisku względem obiektów do zestrzelenia.

Po linijce  speed = speed_const + int (shootOut_counter * speed_multiplier) * speed_acc; można dodać linijkę zmieniającą  wartość shootOut_bonusStep, która decyduje o ilości asteroid na jeden level. Np. na proste shootOut_bonusStep++; (czyli na każdym kolejnym levelu będzie trzeba zbić o jedną asteroidę więcej). Podobnie można też regulować wartość shootOut_bonusStep - np. dodanie shootOut_bonusStep++; spowoduje, że bonusy będą coraz rzadsze.

Wyobrażacie sobie grę w Asteroids w postaci tekstowej ? :D

PS. Z powodu niewłaściwego dobrania parametrów shootOut_counter (= 2) i speed_multiplier (= 0.2) zbyt szybko rośnie prędkość - od 1 do 80 w 66 leveli. To trochę za szybko. Choć w sumie: czy ja wiem ? :D

Komentarze (0)
Flaszowy list miłosny (Flash... Komputerze, moja stara miłości!

Najnowsze komentarze
2014-01-06 19:33
najlepszeprezenty.com.pl:
Flash After Party czyli o flashu w realu [EDIT]
pozdrowienia :)
2013-12-25 22:07
Powiększanie penisa:
Warto blogować ?
Trudno się z tym nie zgodzić, przez to, że są bardzo ogólne to także są bardzo trafne.
2013-12-08 22:47
ets2:
Warto blogować ?
Wartościowych blogów jest na naprawdę mało, sam staram się coś stworzyć a czy wyjdzie to się[...]
O mnie
MaW: flash, gry i cała reszta
Po prostu flashmaniak.