עבור לתוכן

שאלה לגבי אופן הפעולה של משחק סנייק שבניתי..

Featured Replies

פורסם

שלום,

לפני שבוע לערך בניתי משחק סנייק מאוד בסיסי ב-C++.

זה המשחק הראשון שאני בונה ב-C++ שמצריך תזוזה כלשהי.

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

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

איך אני יכול לעשות שהוא לא יהבהב?

עריכה:

1. הנה המשחק אם זה יעזור לכם: http://www.fileflyer.com/view/I8VLoAa (מקשים: WASD).

.2 במחשב שלי זה עובד בסדר אבל במחשבים של בית ספר זה עבד על הפנים.

פורסם

אני ממש לא מכיר את כל הגרפיקה של הc++, אבל בגלל שזה סנייק, אני מניח שהנחש בנוי מסוג-של קוביות.

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

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

פורסם

^^ מחזק.

בעקרון אתה רוצה שהתוכנה תצטרך כל פעם לצייר רק את השינויים.

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

פורסם
  • מחבר

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

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

פורסם

אתה עובד באיזושהי סביבה גרפית? (SDL/Allegro/DirectX...)

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

פורסם
  • מחבר

אני עדיין לא עובד עם סביבה גרפית..

האם multi-threading יכול לעזור לי?

פורסם

אני עדיין לא עובד עם סביבה גרפית..

מה זאת אומרת? אתה עובד במצב טקסט?

האם multi-threading יכול לעזור לי?

אני בספק רב.

פורסם
  • מחבר

כן אני עובד עם טקסט.. יש כל כך הרבה אופציות שאני לא יודע עם מה להתחיל.. (SDL, MFC, Direct X, Open GL)

פורסם

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

פורסם

SDL ו- Allegro הן די נחמדות.

ראיתי ש- Microsoft דוחפת קצת את ה- Dark GDK שיכול להיות גם מוצלח אבל לא נכנסתי אליו לעומק.

בכל אופן, עם OpenGL אל תסתבך לפני שאתה יודע קצת 3D, ו- DirectX גם לא כזה נוח.

Flash, אגב, היא דווקא פלטפורמה מאוד נוחה, ושמעתי לאחרונה המון דברים טובים על ה- ActionScript 3.0 שבה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים