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

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



  #1  
ישן 29-12-2011, 00:38
  MaTaN252 MaTaN252 אינו מחובר  
 
חבר מתאריך: 29.01.07
הודעות: 49
שלח הודעה דרך MSN אל MaTaN252
הכללה בין אובייקטים למען יעילות

קודם כל אני אני חייב לציין שאני לא מנוסה כל כך בתכנות בפלאש..

אני מכין משחק חשיבה בו יש לוח עץ שעליו ישנם 30 חורים ו20 כדורים..

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

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

קוד:
on (press){ this.startDrag(); this.beingDragged = true; } on (release){ this.stopDrag(); this.beingDragged = false; }


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

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 29-12-2011, 17:37
  robi90 robi90 אינו מחובר  
 
חבר מתאריך: 24.07.09
הודעות: 74
בתגובה להודעה מספר 1 שנכתבה על ידי MaTaN252 שמתחילה ב "הכללה בין אובייקטים למען יעילות"

לפני הפתרון הנה דרך יעילה שבה תוכל לגרום לכול כדור להיגרר או להשתחרר בקוד אחד:
תריץ לולאה שתבדוק על כול הכדורים אם הם נגררים. (כול הקוד למטה) - אני גם יכליל FLA. (קובץ הפלאש).

הנה פתרון שעשוי לעזור לבעיה שלך:
תריץ שני לולאות (אחת בתוך השנייה) כך ש:
תעבור על כל חור ותעבור על כל כדור.
לאחר מכן תבדוק אם יש נגיעה, אם יש תשים את אותו הכדור בX וב Y של החור.
דוגמא לכך יכולה להיות בערך כך: (נניח שלכול חור יש שם: hole1, hole2... וכו' ולכול כדור יש שם ball1, ball2... וכו'.

קוד:
var Release:Boolean; onEnterFrame = function(){ for(var i = 1; i <= 20; i++){ _root["ball"+i].onPress = function(){ Release = false; this.startDrag(this); } _root["ball"+i].onRelease = function(){ Release = true; this.stopDrag(); } } for(var k:Number = 1; k <= 30; k++){ for(var j:Number = 1; j <= 20; j++){ if(_root["ball"+j].hitTest(_root["hole"+k]) && Release){ _root["ball"+j]._x = _root["hole"+k]._x; _root["ball"+j]._y = _root["hole"+k]._y; } } } }

הנה הקובץ:

https://2011-uploaded.fresh.co.il/2...29/67992392.fla
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 29-12-2011, 20:01
  MaTaN252 MaTaN252 אינו מחובר  
 
חבר מתאריך: 29.01.07
הודעות: 49
שלח הודעה דרך MSN אל MaTaN252
בתגובה להודעה מספר 2 שנכתבה על ידי robi90 שמתחילה ב "לפני הפתרון הנה דרך יעילה שבה..."

קודם כל שאפו על ההשקעה, תודה רבה!

אני עדיין רציתי להגיע לרמת יעילות יותר גבוהה למה ככה רצים על כל החורים ועל כל חור בודקים כל כדור האם נגע.. זה 600 בדיקות סך הכל רק בשביל לבדוק אם הכדור נגע בחור..
חשבתי על רעיון אחר..
אני יודע שכאשר לוחצים על העכבר אני גורר תכדור.. וכדי לעזוב תכדור אני משחרר תלחיצה..
עכשיו למה שאני לא אעשה כך:
כל פעם שאני לוחץ על כדור מסוים אני אשמור הצבעה אליו או את הINSTANCE NAME שלו או משהו כזה.. זה יהיה המשתנה ששומר את הכדור הנגרר הנוכחי..
ואז בכל חור יהיה קוד שיבדוק האם המשתנה שהוא ההצבעה או השם של הכדור הנגרר, האם החור הנוכחי נוגע בכדור הנגרר הנוכחי.. אני משער שהמשתנה ההצבעה הזה יהיה גלובלי..
נראלי לי הרבה יותר יעיל..
רק עכשיו אני מעונין לדעת איך עושים זאת.. אם אפשר או אם יש דרך יותר יעילה או יותר נכונה

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

תודה!
_____________________________________
יום טוב.


נערך לאחרונה ע"י MaTaN252 בתאריך 29-12-2011 בשעה 20:13.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.04 שניות עם 10 שאילתות

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

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