26-06-2005, 09:57
|
|
|
|
חבר מתאריך: 09.10.04
הודעות: 2,319
|
|
אהה סליחה, לא ראיתי שהגבת :)
אתה יכול לעשות את זה בצורה הבאה:
קוד:
var startIt=false;
var stopIt=true;
function hit ()
{
trace(p)
if(_root.m.hitTest(_root.oger))
{
if(stopIt==true)
{
_root.p ++ ;
stopIt=false;
startIt=true;
}
}
else if(startIt)
{
stopIt=true;
startIt=false;
}
}
h= setInterval (hit,10);
בדרך זו אין צורך להפסיק את האינרטבל.
עכשיו נעבור להסבר קצר
אוקי, בשני התנאים המקוננים למעלה זה בעצם שואל, אם מתבצעת פגיעה והמשתנה stopIt שווה true קדם את המשתנה p בנקודה, הגדר את השמתנה stopIt כ false ואת השמתנה startIt כtrue (תכף נדבר על startIt)
כך שבפעם הבאה שתופעל הפונקציה, התנאי "אם stopIt שווה לtrue" לא יהיה נכון ואז הוא לא יקדם עוד את המשתנה...
התנאי השני (else if) קודם כל, נשאל רק כאשר לא מתבצע hitTest (מפני שזה else).
התנאי אומר בעצם- אם לא מתבצעת פגיעה והמשתנה startIt שווה true תגדיר את המשתנה stopIt כtrue (כך שכשתתבצע פגיעה בפעם הבאה זה יאפשר לתנאי הראשון לקדם את המשתנה p ) ואת startIt כ false (כדי שהוא לא יכנס כל הזמן אל התנאי ויגדיר את המשתנים שוב ושוב)
מקווה שהבנת
_____________________________________
BugY
Animation & ActionScriptin
נערך לאחרונה ע"י BugY בתאריך 26-06-2005 בשעה 10:17.
|