E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale Adobe Flash

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

GRAFICA 2D  /  Adobe Flash  /  ActionScript (14)

Implementarea unui joc tip platforma in AS3 (partea I)

28.10.2008
Implementarea unui joc tip platforma in AS3 (partea I)

Iata-ne la un tutorial pentru avansati in care vom crea un joc de tip platforma in Action Script 3.

Total vizualizari: 6061 6061 afisari   |   Comentarii  1   |   Rating   |   (6 voturi)   |   Timp necesar: 45 min 45 min   |   Nivel de cunostiinte necesar: Avansat  Avansat

Sursa:  Mrsunstudios.com  
Autor:  Mr. Sun
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1 23 »
comenteaza printeaza

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.


Implementarea unui joc tip platforma in AS 3

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:

// Variabilele de mai jos vor retine ce taste sunt apasate 
// Momentan nu avem nevoie de tastele sageata in sus si sageata in jos 
var leftKeyDown:Boolean = false;
var upKeyDown:Boolean = false;
var rightKeyDown:Boolean = false;
var downKeyDown:Boolean = false;
// viteza personajului principal
var mainSpeed:Number = 7;
//adaugam un listener pentru mcMain care il va deplasa 
//in functie de tastele apasate
mcMain.addEventListener(Event.ENTER_FRAME, moveChar);
function moveChar(event:Event):void{
    //verifica ce taste sunt apasate si muta personajul
    if(leftKeyDown){
        mcMain.x -= mainSpeed;
    }
    if(rightKeyDown){
        mcMain.x += mainSpeed;
    }
}
//"ascultam" ce taste sunt apasate
stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown);
function checkKeysDown(event:KeyboardEvent):void{
    //making the booleans true based on the keycode
    //WASD Keys or arrow keys
    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;
    }
}
//listener-ul verifica ce taste sunt eliberate
stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysUp);
function checkKeysUp(event:KeyboardEvent):void{
    //initializam variabilele booleene cu false in functie de codul tastei apasate
    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:

//variabila booleana care indica daca personajul sare
var mainJumping:Boolean = false;
//viteza de start a saltului
var jumpSpeedLimit:int = 15;
//viteaza curenta a saltului
var jumpSpeed:Number = jumpSpeedLimit;

Urmeaza sa realizezi o functie care va face personajul sa sara; e nevoie de ceva matematica aici:

//functia care realizeaza saltul
function mainJump():void{
    //daca personajul nu se afla in timpul unui salt
    if(!mainJumping){
        //atunci incepe saritura
        mainJumping = true;
        jumpSpeed = jumpSpeedLimit*-1;
        mcMain.y += jumpSpeed;
    } else {
        //altfel continua saritura
        //calcule matematice care modifica viteza 
        //in timpul saltului
        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;
        //cand personajul atinge podeaua, saritura s-a terminat
        //acest cod va fi schimbat la crearea nivelurilor
        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:

//VARIABILE DE NIVEL
//nivelul curent
var lvlCurrent:int = 1;
/*Codificarea pentru matricea nivelului:
1: Bloc obisnuit
X: Personajul principal
*/
//Variabila X va retine personajul
var X:String = 'MAIN';
//the array for level 1
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:

//randul curent
var row:int = 0;
Pagina:
1 23 »
comenteaza printeaza
Alte tutoriale Adobe Flash:
Noteaza acest tutorial
Rating tutorial
 
(6 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
COMENTARII (1) spune-ti parerea
andrey andrey , Sambata, 28 August 2010, ora 21:48
#1

cand pun codul sa sara imi da eroare de cod

Raporteaza acest comentariu ca injurios!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
4320
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4180
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4170
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Mediu
4084
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
4000
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Flash Outlook Word Dreamweaver Excel Illustrator Swift 3D Java Fireworks Fotografie SWF Bridge AJAX Lightroom MySQL XHTML Ruby on Rails CSS Vista Powerpoint SEO XML PHP Python Gimp Verilog Sony Vegas HTML StyleSheet JSON COREL DRAW PSD Javascript RoR Action Script Photoshop
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software