Pasul 1. Programarea personajului principal
Iata-ne la un tutorial pentru avansati in care vom crea un joc de tip platforma in Action Script 3. Sa incepem!
In primul rand alege fundalul negru si un frame rate de 24fps (24 frame-uri pe secunda). Acum treci la realizarea personajului; nu va fi ceva prea artistic, doar un cerculet alb.
Dimensiunile sale sunt 25×25 pixeli.
Acum trebuie sa-l transformi intr-un MovieClip si sa ii dai un nume, sa zicem mcMain, astfel incat sa ii poti adauga un cod pentru a face ca acest personaj sa se miste.
Creeaza un nou layer „actions” si plaseaza acest cod pe primul frame:
var leftKeyDown:Boolean = false;
var upKeyDown:Boolean = false;
var rightKeyDown:Boolean = false;
var downKeyDown:Boolean = false;
var mainSpeed:Number = 7;
mcMain.addEventListener(Event.ENTER_FRAME, moveChar);
function moveChar(event:Event):void{
if(leftKeyDown){
mcMain.x -= mainSpeed;
}
if(rightKeyDown){
mcMain.x += mainSpeed;
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown);
function checkKeysDown(event:KeyboardEvent):void{
if(event.keyCode == 37 || event.keyCode == 65){
leftKeyDown = true;
}
if(event.keyCode == 38 || event.keyCode == 87){
upKeyDown = true;
}
if(event.keyCode == 39 || event.keyCode == 68){
rightKeyDown = true;
}
if(event.keyCode == 40 || event.keyCode == 83){
downKeyDown = true;
}
}
stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysUp);
function checkKeysUp(event:KeyboardEvent):void{
if(event.keyCode == 37 || event.keyCode == 65){
leftKeyDown = false;
}
if(event.keyCode == 38 || event.keyCode == 87){
upKeyDown = false;
}
if(event.keyCode == 39 || event.keyCode == 68){
rightKeyDown = false;
}
if(event.keyCode == 40 || event.keyCode == 83){
downKeyDown = false;
}
}
Acest cod va face ca personajul sa se miste in stanga si dreapta. Acum trebuie ca personajul sa sara. Pentru asta vei folosi functia „jump” de fiecare data cand tasta sageata in sus e apasata, dar mai intai sa definim cateva variabile:
var mainJumping:Boolean = false;
var jumpSpeedLimit:int = 15;
var jumpSpeed:Number = jumpSpeedLimit;
Urmeaza sa realizezi o functie care va face personajul sa sara; e nevoie de ceva matematica aici:
function mainJump():void{
if(!mainJumping){
mainJumping = true;
jumpSpeed = jumpSpeedLimit*-1;
mcMain.y += jumpSpeed;
} else {
if(jumpSpeed < 0){
jumpSpeed *= 1 - jumpSpeedLimit/75;
if(jumpSpeed > -jumpSpeedLimit/5){
jumpSpeed *= -1;
}
}
if(jumpSpeed > 0 && jumpSpeed <= jumpSpeedLimit){
jumpSpeed *= 1 + jumpSpeedLimit/50;
}
mcMain.y += jumpSpeed;
if(mcMain.y >= stage.stageHeight - mcMain.height){
mainJumping = false;
mcMain.y = stage.stageHeight - mcMain.height;
}
}
Chiar ca e un cod complicat, nu? Nu te-ai fi gandit ca realizarea unui simplu joc platforma ar fi asa grea. Vezi, de aceea acest tutorial e pentru avansati. In partea a doua vei invata cum sa creezi un nivel cu blocuri pe care sa se poata merge.
Pasul 2. Crearea nivelului
In continuare, trebuie sa creezi blocuri ce vor tine loc de un nou nivel. Pentru a face asta vei folosi siruri, de asemenea, vei crea si alte variabile ce tin de nivel. Scrie acest cod in partea de sus:
var lvlCurrent:int = 1;
var X:String = 'MAIN';
var lvlArray1:Array = new Array(
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
);
E vorba de o matrice cam mare, dar sper ca nu va fi prea greu de inteles. Urmatorul lucru pe care trebuie sa-l faci este creerea unei functii care formeaza nivelul, iar pentru asta vei avea noi variabile:
|