[ anarchistforever @ 18.06.2013. 10:40 ] @
Pozdrav, znaci kao sto je prikazano na slici, imam jedan krug, i hocu da se pri svakom pokretanju programa nalazi na nekom drugom mestu, ali da ne udara u zidove ili bude van zidova, kako to da uradim?
[ MenOfHonor @ 18.06.2013. 15:22 ] @
Prvo što treba da utvrdiš jeste pozicija zida kao i debljina svake linije. Ako se on nalazi na ivicama stage-a i ako je širina svake linije 10px onda će minimalne x i y pozicije lopte biti 10. Da bi pri svakom pokretanju swf-a prikazao loptu na različitoj poziciji onda ćeš koristiti random() metodu Math klase, koja vraća vrednost između 0 i 1, pa da bi dobio broj koji ćeš moći da koristiš kao poziciju moraš tu vrednost da pomnožiš sa 100. Da bi od te izabrane slučajne vrednosti dobio ceo broj upotrebi round() metodu koja odseca decimalni deo i vraća ceo broj. Ostaje ti još da ispitaš da li je generisani broj veći od 10 (koliko je širina zida), kako za poziciju na x tako i za poziciju na y osi. Evo ti jedno brzo rešenje:

Code:
stage.addEventListener(Event.ENTER_FRAME, prikazLopte);

function prikazLopte(event:Event):void
{
    var xPozicija:int = Math.round(Math.random()*100);
    var yPozicija:int = Math.round(Math.random()*100);
    if(xPozicija > 10 && yPozicija > 10){
        loptaMC.x = xPozicija;
        loptaMC.y = yPozicija;
    } else {
        loptaMC.x = 10;
        loptaMC.y = 10;
    }
    
    stage.removeEventListener(Event.ENTER_FRAME, prikazLopte);
}


U ovom slučaju je minimalna pozicija lopte na x i y osi 10, a maksimalna je 100. Ukoliko ti je oblast unutar zida veća od 100 onda treba da dodaš ostatak kako bi lopta mogla da se prikažena svim površinama unutar zidova. Najbolje bi bilo da postaviš taj FLA da bih mogao konkretnije da ti objasnim.