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

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



  #2  
ישן 14-04-2009, 16:25
צלמית המשתמש של בן אור
  בן אור בן אור אינו מחובר  
 
חבר מתאריך: 24.02.05
הודעות: 17,595
שלח הודעה דרך ICQ אל בן אור שלח הודעה דרך MSN אל בן אור Facebook profile Follow me...
בתגובה להודעה מספר 1 שנכתבה על ידי i_love_everyone שמתחילה ב "הקפאת משחק מתוך קוד ActionScript"

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

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

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 15-04-2009, 17:36
  i_love_everyone i_love_everyone אינו מחובר  
 
חבר מתאריך: 14.06.05
הודעות: 34
לא הבנתי לגמרי
בתגובה להודעה מספר 2 שנכתבה על ידי בן אור שמתחילה ב "בכל מקום שאתה מגדיר אינטרוול..."

קודם כל, תודה על העזרה.

דבר שני, אני מניח שהאינטרוול שאתה מדבר עליו הוא המתודה שדואגת לבצע את התזוזה, הירייה וכו', ובמקרה הנ"ל מדובר על אירוע enterFrame.

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

פתרון אפשרי שמצאתי בפורומים בחו"ל הוא ליצור State-Machine ע"י יצירת מחלקה תואמת, שבכל enterFrame תקפיץ Event, ומכאן כל המתודות שמשתמשות ב-enterFrame יאזינו לאירוע שמקפיצה המחלקה המדוברת, במקום להאזין ל-enterFrame עצמו. כאשר יידרש המשחק להעצר, המחלקה תפסיק את הקפצת ה-Event בעת enterFrame וכך יושפע כל המשחק מהשינוי.

רק חבל שכל שאינטרוולים שמושפעים מטיימרים יצטרכו תנאים אישיים משלהם... :-/

אולי אני אעלה על פתרון גם להם ביצירת המחלקה. אולי מימוש אישי לטיימר שבעת עצירת המשחק ידע לעשות לעצמו Stop, ובעת חידוש לבצע Start מחדש.


מה דעתך?

יש הצעות טובות יותר?
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 16-04-2009, 01:16
צלמית המשתמש של בן אור
  בן אור בן אור אינו מחובר  
 
חבר מתאריך: 24.02.05
הודעות: 17,595
שלח הודעה דרך ICQ אל בן אור שלח הודעה דרך MSN אל בן אור Facebook profile Follow me...
בתגובה להודעה מספר 3 שנכתבה על ידי i_love_everyone שמתחילה ב "לא הבנתי לגמרי"

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

הפתרון שלהם יותר נכון מבחינת OOP, ולפיתרון שלי אני רגיל עוד מימי as2, שניהם יעבדו.

אם אתה משתמש בטיימר(Timer) יש לו אפשרות לעצירה
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/Timer.html#stop()
שאולי תתאים לך.


אישית אני מעדיף להשתמש בTimer רק כתחליף ל ENTER_FRAME, ואז יש שליטה שלא קשורה לפריימים.
ואת הטיימרים ליצור עצמאית כפי שהצעת.



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

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

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

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

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

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



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

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

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

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