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

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



  #1  
ישן 02-08-2006, 21:51
  Costa Costa אינו מחובר  
 
חבר מתאריך: 03.07.06
הודעות: 195
כיצד ניתן להחביא את כל מה שמחוץ למסך?

היי, אני מחפש דרך להחביא את כל מה שלא מופיע במפה,
אני בונה משחק אסטרטגייה, ויש לי מפה לא קטנה בשלב ספציפי אחד, הרבה עצים (שנטענים ממקור 1 כמובן)
הרבה בתים (יש 3-4 סוגי מבנים שנטענים מהספרייה כמובן) וכ20 אוייבים (שמשתכפלים מאוייב אבא אחד).
כל זה במפה שהיא לא קטנה, כאשר מוליכים את הדמות לצד מסויים של המפה כמו בכל משחק אסטרטגיה
ניתן להזיז את המצלמה\המסך לכיוון שאליו רוצים להוליך את הדמות או סתם להסתכל בצד השני של המפה.
מה שכן זה שהמפה מופיעה תמיד גם החלקים שהמשתמש לא רואה כרגע,
כלומר, גם החלקים שמחוץ לגבולות המצלמה \ מסף, מה שמעלה את המאמץ של הCPU!

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

מקווה שהבנתם את כוונתי...

תודה.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #12  
ישן 03-08-2006, 21:21
  Costa Costa אינו מחובר  
 
חבר מתאריך: 03.07.06
הודעות: 195
אוקי, להגיד לך את האמת? זה אכן פיתרון אפשרי! מהסיבה
בתגובה להודעה מספר 11 שנכתבה על ידי coolroy שמתחילה ב "לא הייתי ממליץ לעשות את זה, זה מסבך את החיים, ובגדול..."

שניסיתי את זה, אומנם האובייקטים הווקטוריים מתעוותים, אבל לעומת זאת
כל מה שבגד IMAGEים ניראה לא רע בכלל, זה כאילו עשית לתמונה SHARPNESS בפוטושופ חחח
כאילו בוא נגיד שלא ממש שמים לב לשינוי, זה ניראה טוב, וזה הגביר את מהירות המשחק בצורה מטורפת!
כל הדמויות במשחק מהירות ההליכה שלהם הוא 6! כולל הדמות של השחקן הראשי, כשעשיתי איכות
נמוכה ואפילו מדיום, הכל עובד כ"כ מהר שהדמויות אוייב "רצות" על המפה חחח, וגם השחקן רץ בטיל
כאשר אני רק הולך איתו, ועם SHIFT תכלס הוא אמור לרוץ ברגיל, ועכשיו כשהאיכות נמוכה עם SHIFT
הוא פשוט טס חחח, כאילו יש לו NOS חחחח

בקיצר פיתרון אפשרי, רק שכל שלב אני אצטרך לשנות את ה_root speed וזה דיי מעצבן :-\

אה ומבחינת מאמץ הCPU דווקא בדקתי עכשיו וזה כמעת ולא שינה כלום בעעעע
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 03-08-2006, 21:47
  Costa Costa אינו מחובר  
 
חבר מתאריך: 03.07.06
הודעות: 195
תודה...
בתגובה להודעה מספר 13 שנכתבה על ידי coolroy שמתחילה ב "חח סבבה :)"

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

בקרוב אולי אני אעלה דמו או סרטון הדגמה איך ניראה המשחק, וככה תבינו פחות או יותר שלא מדובר בכלל
במשחק פלאש רגיל...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #20  
ישן 03-08-2006, 22:30
  Costa Costa אינו מחובר  
 
חבר מתאריך: 03.07.06
הודעות: 195
כן יש משהו בדברייך... פשוט אני עצמי לא חזק כ"כ בAS
בתגובה להודעה מספר 19 שנכתבה על ידי coolroy שמתחילה ב "חח טוב :)"

אני עוסק בגרפיקה כבר יותר מ10 שנים, מתעסק עם פלאש כבר מגרסא 4, לרוב אנימטור
וזהו, AS השתמשתי רק כשהייתי צריך לעשות עבודות WEB וזה אף פעם לא היה קשה מידי,
ופתאום בא לנו הג'נענע לבנות משחק (בשבילי אישית זה לא הראשון, כבר יש משחק פלאטפורמה
שבניתי אבל הקוד לא היה שלי בבסיסו, שיפרתי את המשחק המון אבל עדיין יש הבדל בין לכתוב מהתחלה
לבין לקחת קוד מוכן מFLASHKIT) בכל אופן בנוגע למשחק החדש שלנו - אני יודע שליטה על אובייקטים
רק לפי EVENTים, ולא דרך הפריים, והשכלנו המון בזמן העבודה על המשחק החדש, אז חבר שלי הגיע
למסקנה שחובה שהקוד יהיה בפריים. הוא תוכניתן בתכלס, ככה שמהר מאוד הוא הבין את הAS הרבה
יותר טוב ממני, וזה שילוב נהדר כשעובדים על משחק שיש אחד שחזק בתיכנות ואחד שחזק בגרפיקה.
רק שאני מניח שהמון דברים ישתנו במעבר לקוןד בפריים, כל מיני פונקציות מטורפות בטח במקום איבנטים...

בעעע כנראה שנצטרך לעשות את זה מתישהו כדיי לייעל את המשחק...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #25  
ישן 03-08-2006, 22:58
  -FoxyBrain- -FoxyBrain- אינו מחובר  
 
חבר מתאריך: 03.09.05
הודעות: 2,857
טוב תראה, אני מציע כמה אפשרויות...
בתגובה להודעה מספר 1 שנכתבה על ידי Costa שמתחילה ב "כיצד ניתן להחביא את כל מה שמחוץ למסך?"

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

אבל אני לא בטוח שהבעיה היא שם, כנראה אתה לא מוחק enterframes לא בשימוש ו\או מריץ לולאות לחינם.

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #26  
ישן 03-08-2006, 23:15
  Costa Costa אינו מחובר  
 
חבר מתאריך: 03.07.06
הודעות: 195
אוקי פוקסי תודה רבה רבה לך, חידשת לי המון!
בתגובה להודעה מספר 25 שנכתבה על ידי -FoxyBrain- שמתחילה ב "טוב תראה, אני מציע כמה אפשרויות..."

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

וכנראה שאתה צודק במה שאמרת:" כנראה אתה לא מוחק enterframes לא בשימוש ו\או מריץ לולאות לחינם. "

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

וגם לגבי ה-chachAsBitmap חידשת לי! איפה אני מגדיר את זה? בפריים למעלה וזהו?
(אגב כל השלב זה פריים1 בלבד) מציב לזה ערך TRUE וזהו?

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

ושוב המון תודות פוקסי חידשת לי וניראה לי שזרקת לי כמה כיוונים מאוד ייעלים בכדי שאוכל לייעל
את המשחק שלי.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #31  
ישן 04-08-2006, 07:25
  -FoxyBrain- -FoxyBrain- אינו מחובר  
 
חבר מתאריך: 03.09.05
הודעות: 2,857
לא, זה בסדר גמור.
בתגובה להודעה מספר 30 שנכתבה על ידי Costa שמתחילה ב "אוקי ובאשר ל- delete mcClip.onEnterFrame, מיקמתי את זה נכון?"

לא, האמת שזה לא טוב.
onEnterFrame ו(onClipEvent(enterFrame זה משהו אחר. זו שיטה אחרת של עבודה.
כעיקרון, תמיד מומלץ להשתמש בonEnterFrame, יש לו כמה יתרונות. דבר ראשון, כפי שראית, אפשר למחוק אותו. דבר שני, הוא לא מוגבל ל-scope מסוים. כלומר, אפשר (ורצוי) להפעיל אותו מחוץ למוביקליפ. ודבר שלישי, תוכל להצמיד לו פונקציות שהגדרת מראש- וזו בעצם הדרך הכי נכונה לעבוד. יתרון אחד של הדרך הזאת זה שהיא מאפשרת לך להחזיר את הenterframe בקלות לאחר שמחקת אותו.
כך אתה מצמיד פונקציה חדשה לonEnterFame:
קוד:
mcClip.onEnterFrame = function(){ trace(this._name); }
וכך אתה מצמיד פונקציה מוכנה מראש:
קוד:
mcClip.onEnterFrame = myFunc; function myFunc(){ trace(this._name); }
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #33  
ישן 04-08-2006, 12:38
  -FoxyBrain- -FoxyBrain- אינו מחובר  
 
חבר מתאריך: 03.09.05
הודעות: 2,857
יפה...
בתגובה להודעה מספר 32 שנכתבה על ידי Costa שמתחילה ב "אוקי הבנתי, הסבר טוב :)"

ציטוט:
המטרה הסופית שלי זה לשלוט על כל האובייקטים על הבמה דרך הFRAME ולא שלכל אחד
יהיה קוד משלו
המטרה נכונה...
את המשתנים אתה יכול להגדיר פשוט מחוץ לפונקציה:
קוד:
var sMyString:String = "SomeString";

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

קוד:
var nMyNum:Number = 2; trace("number before :" + nMyNum)//before the function myFunc(); trace("number after :" + nMyNum)//after the function trace("random outside :" + nRandom)//outside the function function myFunc(){ var nRandom:Number = random(10); trace("random inside :" + nRandom)//inside the function nMyNum += nRandom; }

מה שקורה כאן זה:
  • הגדרה של משתנה בשם nMyNum לפני הקריאה לפונקציה.
  • הצגת הערך שלו.
  • קריאה לפונקציה שמחברת מספר רנדומלי עם המשתנה nMyNum. המספר הרנדומלי מוחזק בתוך משתנה בשם nRandom המוגדר בתוך הפונקציה, גם הוא מוצג.
  • הצגת המשתנה nMyNum לאחר החיבור.
  • הפעם הצגה של המשתנה nRandom מחוץ לפונקציה (הוא כבר לא קיים)
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #35  
ישן 06-08-2006, 22:30
  Costa Costa אינו מחובר  
 
חבר מתאריך: 03.07.06
הודעות: 195
ואם כבר האשכול הוקפץ, שאלה לי אלייך...
בתגובה להודעה מספר 33 שנכתבה על ידי -FoxyBrain- שמתחילה ב "יפה..."

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

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

תודה.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #37  
ישן 06-08-2006, 23:01
  Costa Costa אינו מחובר  
 
חבר מתאריך: 03.07.06
הודעות: 195
טוב הגיוני מטבע הדברים...
בתגובה להודעה מספר 36 שנכתבה על ידי אקונה מטטה שמתחילה ב "מה זאת אומרת פעם אחת? הוא..."

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

כמובן ש2 סוגי האוייבים משוכפלים דרך קוד כדי למנוע עומס על המשחק.
וגם האנימציות (הליכה) שלהם ממש קלילות גם כדי לא להכביד.
בקיצר עשיתי הכל כדי שהמשחק יהיה קליל, אבל כל הה-onClipEvents האלה שיוצרים לולאות
מטורפות ומיותרות גורמות לCPU להשתגע, לכן אני חייב למצוא דרך שתעקוף את זה,
או פשוט לגרום לאיבנטים מסויימים (כמה שפחות כאלה) לרוץ, וכל שאר הדברים רק לפי איבנטים
חד פעמיים או משהו
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #40  
ישן 07-08-2006, 18:26
  Costa Costa אינו מחובר  
 
חבר מתאריך: 03.07.06
הודעות: 195
אוקי תודה לכם , אגב מצאתי מה בסוף גרם לCPU להתאמץ כ"כ!!!
בתגובה להודעה מספר 39 שנכתבה על ידי -FoxyBrain- שמתחילה ב "לא הבנתי איך זה מתקשר"

זה האובייקט מצלמה VCAM !!! הפונקצייה שיש שם ה-camControl
רצה בלולאה מטורפת, עד שהגבלתי אותה לרוץ רק כאשר אני מגיע עם סמן העכבר
לקצוות המסך ואז המסך זז לכיוון מסויים, או כאשר אני מזיז את המסך עם המקשים,
קיצר בגלל שהפונקציה רצה כל הזמן בלופ מטורף זה הכביד על המשחק!!!!!
ברגיל המשחק בלי המצלמה לוקח גג 11-15 אחוז מהCPU! לצורך הבדיקה ניקיתי את
כל ה- onClipEvents וצמצמתי אותם בכל האובייקטים! ובודדתי כל אובייקט שחשבתי שהוא מכביד
לקוץ חדש בלי שאר האובייקטים (רקע גרפי, מבנים, עצים וכו')
ולאט לאט הוספתי את הגבולות, רקע, והמצלמה, כשהרצתי עם המצלמה הבנתי שהבעיה איתה!
ואז הסתכלתי בקוד שלה, דיבגתי וראיתי שהפונקציה רצה שם ללא סוף... אז אני מטפל בבעיה,
בנתיים הולך טוב

אה ותודה לכל העוזרים פה, אחלה אנשים ואחלה חבר'ה!
כל הכבוד!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

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

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

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