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

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



  #1  
ישן 23-07-2005, 11:55
  Darakan Darakan אינו מחובר  
 
חבר מתאריך: 30.04.04
הודעות: 310
עזרה בפרוייקט משחק פלטפורמה - כיצד לייעל?

לאחר מספר חודשים שלא הייתי פה (צבא, חברה, וכשלון בפרוייקטים שניסיתי להכין, שהוציאו לי את החשק :] ), החלטתי לחזור לעסק ולהתחיל בבניית מעין משחק פלטפורמה מהיר.

ניסיתי בעבר ליצור מספר ממשקים ומנועי משחק פשוטים למשחק פלטפורמה, אבל תמיד הייתי מסתבך עם כמות Layers, פונקציות, ו-MC בשביל דמות אחת, שהייתי משתגע וזונח את הכל.

כך לדוגמה:
  1. הייתי משקיע מבחינה גרפית בדמות הראשית של השחקן, ומחלק את ה-MC שלו למספר Layers, כאשר כל אחת מכילה חלק אחר בגוף (שכבה לראש, שכבה ללסת, שכבה לכל אחד מהגפיים, שכבה לחלק עליון של הגוף, שכבה לחלק תחתון של הגוף וכדומה).
  2. לאחר שיצרתי את כל אחד מחלקי הגוף, הייתי מנפיש אותם בהתאם לתנועות של הגוף. בתוך ה-MC הראשי, הייתי מגדיר למשל, שמפריים 1 עד 10, זו ריצה, מפריים 11 עד פריים 15, זו קפיצה, מפריים 15 עד פריים 25, זו התקפה. כמובן שב-AS הייתי מגדיר שברגע שה-Timeline מגיע לסוף הפריים של האנימציה, הוא חוזר לאנימציית ה-Idel (עמידה) או עושה Loop של האנימציה (בהתאם לאנימציה...).
  3. בהגדרות ל-AS, הייתי משתמש בפונקציות. כך למשל: פונקציות שהייתה בודקת האםKeyIsPressed - הפונקציות היו מגדירות את מיקום ה-MC של הדמות, משנות את האנימציה בתוכו לאנימציה של התנועה, והייתה חוזרת על עצמה כל עוד המקש לחוץ. כל הפונקציות האלו, אילצו אותי להסתבך במלא פונקציות אחרות (מה קורה אם קופצים במהלך ריצה, איזה תנועות אסור לבצע במהלך תנועות אחרות וכדומה), כך שהסתבכתי במיליון פונקציות.
בסופו של דבר, התוצאה הייתה MC אחד כבד, שבתוכו 100 פריימים המחולקים לכ-10 תנועות שונות, וקוד מפוצץ רק ל-MC הבודד הזה... התוצאה = דינמיות ויעילות אפסית. בסופו של דבר נטשתי את הפרוייקטים מ-"סוג" זה...

דוגמה לפרוייקט שננטש, בו הדמות הראשית היא Zergling מהיקום של StarCraft:-

לצערי, קובץ ה-FLA של המשחק נמחק מהמחשב שלי (שכחתי לגבות אותו, טעות מפגרת...) וכל ההשקעה על הדמות הלכה. היה פוטנציאל לדעתי, אבל החובבניות שלי ב-AS די הרסה אותו...

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

המטרה שלי היא לבנות את הדמות מכמה אנימציות פשוטות: ריצה, "ריצה מיוחדת" (מגבירה את המהירות פלאים כל עוד השחקן לוחץ על כפתור מסויים), עמידה (Idle), קפיצה, קפיצה בתנועה.

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

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

של הדמות, ושל דמויות אחרות מסביבו.



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



-----------------------------


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

אשמח לעזרה,
תודה מראש.

נערך לאחרונה ע"י Darakan בתאריך 23-07-2005 בשעה 12:08.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 23-07-2005, 12:46
צלמית המשתמש של BugY
  BugY BugY אינו מחובר  
 
חבר מתאריך: 10.10.04
הודעות: 2,319
היי דארקן, אני זוכר אותך ואת המשחק שלך :)
בתגובה להודעה מספר 1 שנכתבה על ידי Darakan שמתחילה ב "עזרה בפרוייקט משחק פלטפורמה - כיצד לייעל?"

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

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

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

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

זאת דעתי לפחות

בכל מקרה, בהצלחה בהמשך ואל תתיאש
_____________________________________
BugYתמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
Animation & ActionScriptin


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

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

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

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

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



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

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

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

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