Drag and Drop fluekrukke
Lille eksempel på samle-op-spil, som kan udbygges med flere baner.
Bemærk:
_ Animationen (passer lige til fluer), som er opnået ved hjælp af en enkelt ‘easing’ -teknik, gående ud på:
Flue-clip har et par animerede flakse frames
for hver frame – regnes afstanden ud mellem mål og objekt og divideres med speed-værdien. Afstanden reduceres således hele tiden, og objektet virker bremset. Når afstanden blir minimal, tildeles objektet et nyt random mål.
_ button-event-functions er indlejret i den igang-sættende funktion, for ikke at skulle gentage samme actionscript mange gange for hvert objekt.
_ Der er ikke vinder eller taber scenarier (andet end en tekst der forandres)
Splash-siden:
stop ();
this.lydloop.spiller = false;
this.flue.onRelease = function () {
this._parent.gotoAndStop ("spil");
};
this.lydloop.onRelease = function () {
if (this.spiller == false) {
this.gotoAndStop ("bzz");
this.spiller = true;
} else if (this.spiller == true) {
this.gotoAndStop ("shh");
this.spiller = false;
}
};
Selve spil-scenariet:
stop ();
/*----------------------------------*/
/********* START VARIABLES **********/
/*----------------------------------*/
var stageWidth = Stage.width;
var stageHeight = Stage.height;
var speed = 7;
var antalFluer = 5;
var antalFlyv = 0;
var fuldKrukke = false;
flue1.targetx = Math.random () * stageWidth;
flue1.targety = Math.random () * stageHeight;
/*----------------------------------*/
/********* FUNCTIONS ***************/
/*----------------------------------*/
function FLYV (clip) {
clip.targetx = Math.random () * stageWidth;
clip.targety = Math.random () * stageHeight;
if (clip.fri == false || clip.fri == undefined) {
this.antalFlyv += 1;
clip.fri = true;
}
clip.onEnterFrame = function () {
if ((Math.abs (clip.targetx - clip._x)) && (Math.abs (clip.targety - clip._y)) <= 3) {
clip._x = clip.targetx;
clip._y = clip.targety;
clip.targetx = Math.random () * stageWidth;
clip.targety = Math.random () * stageHeight;
}
clip._x += (clip.targetx - clip._x) / speed;
clip._y += (clip.targety - clip._y) / speed;
this._parent.COUNT ();
};
clip.onPress = function () {
this.startDrag ();
delete this.onEnterFrame;
this._parent.krukke.gotoAndPlay ("lidoff");
this._parent.knaplyd.gotoAndPlay ("fang");
};
clip.onRelease = clip.onReleaseOutside = function () {
this.stopDrag ();
if (this.hitTest (this._parent.krukke)) {
this._alpha = 30;
this._parent.krukke.gotoAndPlay ("lidon");
if (this.fri == true) {
this.fri = false;
this._parent.antalFlyv -= 1;
}
this._parent.COUNT ();
} else {
this._alpha = 100;
this._parent.knaplyd.gotoAndPlay ("fri");
this._parent.FLYV (this);
}
};
}
function COUNT () {
if (fuldKrukke == false) {
if (antalFlyv > 0) {
this.countBox.text = "Der skal fanges: " + antalFlyv + " fluer.";
} else if (antalFlyv == 0) {
this.fuldKrukke = true;
}
}
if (fuldKrukke == true) {
if (antalFlyv < antalFluer) {
this.countBox.text = "Der er befriet: " + antalFlyv + " fluer.";
} else if (antalFlyv == antalFluer) {
fuldKrukke = false;
}
}
}
/*----------------------------------*/
/********* START COMMANDS ************/
/*----------------------------------*/
FLYV (flue1);
FLYV (flue2);
FLYV (flue3);
FLYV (flue4);
FLYV (flue5);
Created: 15 March 2007 • by admin
Categories: as2
Comments: none yet • add one!
