coliziuni intre caracter si cladiri :: AS3

Discutii despre integrarea PHP & Flash; Ming, FlashMX, Actionscript, etc.

Moderator: Moderatori

marianreall
Average Member
Mesaje: 61
Membru din: Joi Mar 25, 2010 6:47 pm
Localitate: Bucuresti
Contact:

coliziuni intre caracter si cladiri :: AS3

Mesajde marianreall » Lun Iul 19, 2010 9:13 pm

salutare

sunt incepator in actionscript 3 si as vrea sa ma ajutati cu ceva:

Am un MovieClip (buildings) cu mai multe cladiri in el si un caracter (hero) , tot MovieClip.
As vrea sa stiu cum sa fac sa nu poata calca pe cladiri caracterul respectiv , sa se loveasca de ele.

multumesc anticipat.


Push It <--- un site foarte interesant. Dati click sa va uitati.

withoutmyname
Average Member
Mesaje: 53
Membru din: Joi Mai 07, 2009 9:49 pm

Mesajde withoutmyname » Mar Iul 20, 2010 1:29 pm

Nu inteleg eu prea bine ce ai tu acolo. Ai putea testa cu hitTestObject() cand caracterul tau se suprapue peste cladiri, iar daca metoda iti returneaza true pui caracterul la pozitia dinainte sa atinga cladirea. Din moment ce ai zis ca esti incepator ma gandesc ca aplicatia ta e 2D ...la 3D se schimba situatie. Sigur se poate face si cu mai multa precizie toata chestia dar nu vreau sa devii confuz ...Daca lasi si un FLA te-asi putea ajuta mai mult ...bafta

marianreall
Average Member
Mesaje: 61
Membru din: Joi Mar 25, 2010 6:47 pm
Localitate: Bucuresti
Contact:

Mesajde marianreall » Mar Iul 20, 2010 4:42 pm

Push It <--- un site foarte interesant. Dati click sa va uitati.

withoutmyname
Average Member
Mesaje: 53
Membru din: Joi Mai 07, 2009 9:49 pm

Mesajde withoutmyname » Mar Iul 20, 2010 5:22 pm

:( Nu ma lasa sa deschid fla-ul cu Flash CS4 ...probabil l-ai salvat cu alta versiune de flash . Oricum mi se pare foarte aiurea ce am vazut in clasa KeyObject careia nu ii vad rostu pt ce ai tu in swf-ul acela. Incearca sa recreezi totul de la 0 o sa iti bati mai mult capul incercad sa modifici un script gata facut ...

marianreall
Average Member
Mesaje: 61
Membru din: Joi Mar 25, 2010 6:47 pm
Localitate: Bucuresti
Contact:

Mesajde marianreall » Mar Iul 20, 2010 5:42 pm

clasa KeyObject am vazut-o la cineva intr-un tutorial si merge foarte bine si eu am Flash CS5

si apropo cred ca stiu cum sa fac cu functia hitTestObject();
nu stiu eu as3 foarte bine , dar ma pricep la mate (geometrie) ;)

multumesc mult :D

P.S.: Clasa KeyObject o folosesc pentru acnd apasa cineva pe sagetile de la tastatura.E mult mai usor cu clasa asta.
Push It <--- un site foarte interesant. Dati click sa va uitati.

withoutmyname
Average Member
Mesaje: 53
Membru din: Joi Mai 07, 2009 9:49 pm

Mesajde withoutmyname » Mar Iul 20, 2010 7:14 pm

Solutia cea mai ok ar fi sa folosesti evenimentul KeyDown direct in clasa "main" .Iar clasa KeyObject initial facea mai mult decat sa returneze codul tastelor apasate vad ca extinde clasa Proxy si face si override in functia getProperty(). Initaial era cv mai complex dacat sa iti arate cand "apesi pe sagetile de la tastatura".Asa se face normal :

Cod: Selectaţi tot

stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyboardEvent);

public function onKeyboardEvent(event:KeyboardEvent):void {
switch(event.keyCode) {
case Keyboard.UP :
......
break;
case Keyboard.DOWN :
......
break;
case Keyboard.LEFT :
.....
break;
case Keyboard.RIGHT :
.....
break;
default:
break;
}
}


Sper sa te descurci ...npc

marianreall
Average Member
Mesaje: 61
Membru din: Joi Mar 25, 2010 6:47 pm
Localitate: Bucuresti
Contact:

Mesajde marianreall » Mar Iul 20, 2010 7:19 pm

multumesc mult

daca mai am ceva de intrebat o sa tin minte ca te pot intreba pe tine :P :D
Push It <--- un site foarte interesant. Dati click sa va uitati.

marianreall
Average Member
Mesaje: 61
Membru din: Joi Mar 25, 2010 6:47 pm
Localitate: Bucuresti
Contact:

Mesajde marianreall » Mar Iul 20, 2010 10:04 pm

am facut o functie , dar imi da o eroare si nu stiu ce inseamna :(

Cod: Selectaţi tot

ReferenceError: Error #1069: Property hitTestObject not found on flash.events.KeyboardEvent and there is no default value.
   at world_fla::MainTimeline/getout()


si functia getout este:

Cod: Selectaţi tot


stage.addEventListener(KeyboardEvent.KEY_DOWN, getout);

//start getout
   function getout(build:Object){
   
      var isover:Boolean = trace(build.hitTestObject(hero));
      
      if(isover){
         
         if(directie == 1){
            
            hero.y-=1;
            
         }else if(directie == 2){
            
            hero.y+=1;
            
         }else if(directie == 3){
            
            hero.x-=1;
            
         }else if(directie == 4){
            
            hero.y+=1;
            
         }
         
      }
   }
   
   getout(builds.castel);
   
//end getout
Push It <--- un site foarte interesant. Dati click sa va uitati.

withoutmyname
Average Member
Mesaje: 53
Membru din: Joi Mai 07, 2009 9:49 pm

Mesajde withoutmyname » Mie Iul 21, 2010 3:31 pm

Iti da eroare deoarece ai pus functiei getout() parametrul buid:Object caruia ii apelezi metoda hitTestObject(). Singurul parametru care il poti da unei functii care este apelata de un eveniment este un obiect de tip Event (in cazul tau compilatorul ia obiectul build ca un obiect de tip event caruia nu ii gaseste metoda hitTestObject().).Am reusit sa ma uit in fla-ul tau si e destul de incurcata treaba cu cladirile.Ar trebui sa iti alegi cateva tipuri de cladiri si apoi sa dispui din cod pe suprafata de joc si in acelasi timp sa le stochezi intru-un array ca apoi sa poti face verificarea dintre caracter si fiecare cladire in parte ...lasa un id de messenger si putem vb mai pe larg daca ai nevoie de ajutor .

marianreall
Average Member
Mesaje: 61
Membru din: Joi Mar 25, 2010 6:47 pm
Localitate: Bucuresti
Contact:

Mesajde marianreall » Mie Iul 21, 2010 3:43 pm

ti-am trimis PM cu id-ul meu

si la faza cu Array nu m-am gandit . eu vroiam sa se execute functia pentru fiecare cladire cam asa: getout(calea catre cladire);

totusi sunt incepator in flash si as3 :)
Push It <--- un site foarte interesant. Dati click sa va uitati.


Înapoi la “PHP & Flash”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 7 vizitatori