לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 29-09-2005, 20:32
  Paladin Paladin אינו מחובר  
 
חבר מתאריך: 03.09.05
הודעות: 116
איך אני ניגש ב multipyMC לכל אחד בנפרד

OK
יש לי שאלה.
אני בונה משחק ובו יש 2 סוגי MOVIE CLIPS
אני רוצה שברגע ש MOVIECLIP מקבוצה מסויימת נניח והיא קבוצה א' יגע באחד מקבוצה ב' יקרה משהו
עכשיו, יש לי 2 MC מקוריים
אחד שהוא הבסיס של קבוצה א' והשני של קבוצה ב'
ה MOVIECLIPS המקוריים הללו מכפילים את עצמם ומופיעים רנדומלית על המסך וכך יוצרים בעצם את שתי הקבוצות
הבעיה שלי היא לדעת איך אני יכול לשלוט בכל אחד מהם אינדוידואלית
כי שאני מכפיל את ה movieclip אז נניח שכל קבוצה א' קוראים mNUMBER ולכל קבוצה ב fNUMBER כ ש NUMBER משתנה כל הזמן
ואני צריך לדעת מתי משהו מקבוצה m נוגע במשהו מקבוצה f בעזרת hittest
אני בטוח שאפשר לעשות את זה כי זה טיפשי שלא תהיה אפשרות כזו.
ואני גם צריך שתהיה לי אפשרות לגרור אותם בעזרת startdrag ואני לא יכול לגשת אליהם כי הם נוצרים בלי סוף ואני לא יכול ליצור בלי סוף פקודה של
קוד:
instancename.onPress = function () { startdrag(): }

שוב, בגלל שיש אין סוף

אני אודה לכם אם תוכלו לעזור לי
תודה.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 29-09-2005, 21:19
  -FoxyBrain- -FoxyBrain- אינו מחובר  
 
חבר מתאריך: 03.09.05
הודעות: 2,857
אם הבנתי נכון
בתגובה להודעה מספר 1 שנכתבה על ידי Paladin שמתחילה ב "איך אני ניגש ב multipyMC לכל אחד בנפרד"

יש לך רק בעיה אחת בעצם, לישם פעולה על כל mcClip שמשתכפל.

מה שאתה צריך לעשות בעצם זה לבדוק בכל זמן נתון האם אחד האובייקטים מקבוצה א' פגע באחד האובייקטים מקבוצה ב'.
כדי לעשות זאת אתה זקוק לפקודה שתרוץ על כל האובייקטים.
הפקודה הזאת נקראת "לולאות"

במקרה שלך אתה צריך להשתמש ב"לולאות מקוננות", כלומר לולאה בתוך לולאה.
כך שמה שזה יעשה זהדבר כזה- זה יבדוק אובייקט מקבוצה א' באמצעות לולאה "1" ולאחר מכן יכנס ללולאה "2" ויבדוק האם אובייקט א'1 נגע באיזשהו אובייקט מקבוצה ב', ברגע שדבר כזה קורה הוא יעבור לאובייקט א'2 ויבדוק גם עליו את כל האובייקטים של קבוצה ב' וכו'.

הדרך הטובה ביותר לעשות זאת לפי דעתי זה להכניס את הבדיקה הזאת לתוך פונקציה שרצה כל הזמן בעזרת setInterval.
קוד:
function hitTester() { for(var i = 0;i<=SomeNum;i++) { for(var j = 0;j<=SomeNum;j++) { if(_root["m"+i].hitTest._root["f"+j]) { //code } } } } interval=setInterval(hitTester,100);



בקשר לשאלה השניה, זה בערך אותו הדבר רק שזה צריך לרוץ רק פעם אחת וצריך בשביל זה רק לולאה אחת.

קוד:
for(var k = 0;k<=SomeNum;k++) { _root["f+k].startDrag(); _root["m+k].startDrag(); }

*SomeNum אם תהית, מיצג את מספר האובייקטים.
אני בטוח שתבין את זה לאחר שתקרא את ההסבר על הלולאות שנתתי קודם לכן.

ד"א, אני ממליץ לך לעבוד עם attachMovie במקום duplicatMovieClip
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה


נערך לאחרונה ע"י -FoxyBrain- בתאריך 29-09-2005 בשעה 21:29.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #12  
ישן 01-10-2005, 06:27
  -FoxyBrain- -FoxyBrain- אינו מחובר  
 
חבר מתאריך: 03.09.05
הודעות: 2,857
יש פיתרון לכל דבר...
בתגובה להודעה מספר 11 שנכתבה על ידי Paladin שמתחילה ב "קודם כל, תודה רבה רבה דבר..."

צפיתי את הבעיה, פשוט חיכיתי שתענה כי לא רציתי "להעמיס" עליך הכל בהודעה אחת.

קודם כל, גם בשיטה הזאת לא יתפספס לך כלום, אבל כדי לא לרוץ סתם על יותר מידי מוביקליפים שלא קיימים (גזילת משאבים) לחינם אתה יכול להשתמש במערך.
בכל פעם שמוביקליפ נמחק פשוט "תדחוף" את כל אלה שמעליו, תא אחד אחורה.
הלולאה פשוט תרוץ על המערך...

להריץ פקודת startdrag באופן רציף זה נראה לי הדבר הכי לא נכון לעשות.
זה פשוט יגזול ממך המון משאבים, שלא לדבר על זה שפשוט לא עושים את זה, תחשוב איזה בזובוז זה, הפקודה היא בין המועטות הניתנות להגדרה פעם אחת בלבד, כדאי לנצל את זה .

מה שאתה צריך לעשות בעצם זה להגדיר פונקציה של הstartdrag (בלחיצה תתחיל לגרור, בשיחרור תפסיק) וכך בעצם, בכל פעם שמוביקלים נוצר "תצמיד" לו את הפונקציה... אפילו אין צורך בלולאה

אני חושב שהלינק הזה יעזור לך פה

אם תצטרך עזרה או הדגמה קלה, אל תהסס להשיב...
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה


נערך לאחרונה ע"י -FoxyBrain- בתאריך 01-10-2005 בשעה 06:44.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #15  
ישן 02-10-2005, 20:33
  Paladin Paladin אינו מחובר  
 
חבר מתאריך: 03.09.05
הודעות: 116
בתגובה להודעה מספר 14 שנכתבה על ידי -FoxyBrain- שמתחילה ב "אתה לא מבין."

נראה לי הבנתי למה אתה מתכוון אבלאני לא בטוח אם הבנת למה אני מתכוון
בשאתה מכניס את הפקודה שקובעת משתנה ל movieclip בשנוצר ומעניקה לו פקודה משלו, startdrag
הפקודה תתבצע בלחיצה עליו אבל עד שילחצו עליו אז המשתנה כבר יכיל בתוכו movieclip בשם שונה כי הם נוצרים יותר מהר משלוחצים עליהם, השאלה היא אם פלאש מסוגל לשמור "בזכרון שלו" את זה שלmovieclip הספציפי הקודם שכבר לא מוגדר בתוך המשתנה עדיין יש את הפקודות שהמשתנה הגדיר להם
כי אם כן זה ממש סבבה

בנוגע לשינוי instance name שאלתי את זה בגלל שאמרת שברגע שנמחק לי movieclip אני יכול להעלות את כל השאר תא אחד למעלה
בבעלאה מתבטאת בשינוי השם של ה movieclip לאות שלפניו ומספר אחד פחות. בגלל זה שאלתי איך אני משנה לו את ה Instance name בצורה דינאמית
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #29  
ישן 18-10-2005, 12:07
  Paladin Paladin אינו מחובר  
 
חבר מתאריך: 03.09.05
הודעות: 116
בתגובה להודעה מספר 28 שנכתבה על ידי -FoxyBrain- שמתחילה ב "סבבה, תעשה את שניהם..."

היי sorry שלקח לי זמן להגיב אבל אני רוצה לנסות את זה לבד לפני שאני מדביק את הקוד
אני בטוח שאם אני אצליח להתגבר על זה לבד אני אלמד מזה יותר
אבל יש לי בכל זאת שאלה כללית שכזו..

יש לי 2 מערכים.
אחד בשם maleArray והשני femaleArray
בתוך כל אחד מהם ישנם שמות של movieclips שקיימים באותו הרגע הנתון על המסך
בניתי לולאה שבודקת את אפשרות הפגישה של mc מתוך maleArray עם אחד מ femaleArRAY
השורה המרכזית היא

קוד:
maleArray[i].hitTest(femaleArray[j])


וזה לא מחזיר לי כלום למרות שישנה פגיעה
אז ניסיתי להכניס את זה ל trace כדי שיראה לי מה זה נותן וזה מחזיר שגיאה, לא true ולא false

שאלה נוספת

אני צריך בבקשה שמישהו יסביר לי על appnding
כלומר שאם אני יוצר movieclips על המסך בעזרת attachMovieClip ואני רוצה שלכולם תהיה תכונה מסויימת
נגיד שלכולם היה את התכונה של גרירה על ידי לחיצה
איך אני עושה את זה פעם אחת ולאמר לכולם שתהיה את התכונה הזו?
תודה רבה!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #30  
ישן 18-10-2005, 12:25
  -FoxyBrain- -FoxyBrain- אינו מחובר  
 
חבר מתאריך: 03.09.05
הודעות: 2,857
תשובה
בתגובה להודעה מספר 29 שנכתבה על ידי Paladin שמתחילה ב "היי sorry שלקח לי זמן להגיב..."

בקשר לשאלה הראשונה, אני מאמין שהשורה הזאת ממוקמת בתוך שתי לולאות מקוננות.
זה נראה בסדר בסך הכל (לפי איך שאני מדמיין את זה).

מה שאתה צריך לבדוק זה :

  • האם באמת המערכים כוללים רפרנס של כל המוביקליפים (תוכל לבדוק את זה בעזרת טרייסים למערכים)
  • תבדוק גם, כמו שאמרת, האם באמת מתבצעת חפיפה (יכול להיות שהשגיאה נובעת מזה שחסר סוגר אחד, זה קצת מבלבל במצב הזה)
קוד לטירייס נכון :
קוד:
trace(maleArray[i].hitTest(femaleArray[j]))


בקשר לשאלה השנייה, הדרך הכי קלה היא לשמור רפרס בתוך משתנה אשר יחזיק אותו באופן זמני (עד שהמוביקליפ הבא יכנס אליו) ועליו לישם את האיבנט שלך:
קוד:
var mcClip:MovieClip = this.attachMovie(......) mcClip.onPress=function() { this.startDrag() }
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 10:24

הדף נוצר ב 0.08 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר