נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: איך להריץ שתי פורצדורות בו זמנית(C)?

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
זיל
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 21 November 2008 בשעה 17:30 | IP רשוּם
ציטוט זיל

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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 21 November 2008 בשעה 20:48 | IP רשוּם
ציטוט נמרוד

אי-אפשר לעשות דו-זמנית שני דברים..

אפשר לעשות משהו שקרוב לזה עם THREADS אשר הם לא עוזרים לך בסביבת DOS (TURBO C עובד ב-DOS)..

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

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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 21 November 2008 בשעה 22:19 | IP רשוּם
ציטוט אנילעזר

היי,

קודם כל נמרוד אתה לא מדייק, לעשות חישובים באותו הזמן זה אפשרי רק דרושה חומרה שתואמת כגון multi-processors וכמובן הנפוצה יותר multi-core,
ובנוסף תמיכה תוכנתית.

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

1. קרא קלט (פעולה שמזהה את המקשים האחרונים שנלחצו, בדר"כ ללא עצירה כמו ב-read).
2. AI (שלב שבו מבצעים חישוב של שחקני המחשב).
3. בדיקת לוגיקת המשחק (שלב שבו בודקים את חוקי המשחק, לדוגמא אם הגוף פגע בקיר אז זו פסילה)
4. מיקום מחדש של הגופים. (שלב זה הוא רק מתן ערכים חדשים למיקום הגופים על המסך).
5. ציור הגופים (שלב הציור לפי הנתונים החדשים).
6. טיפול בסאונד (השמעת צלילים לפי הנתונים החדשים).
7. חזור לצעד 1.



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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 22 November 2008 בשעה 09:48 | IP רשוּם
ציטוט נמרוד

אנילעזר, THREADS על מערכות אלה (מה שאמרת) עושים מה שאמרתי..

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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 22 November 2008 בשעה 13:49 | IP רשוּם
ציטוט זיל

איפה אני משתמש ב-THREADS איפה אני שם אותו בדיוק??
חזרה לתחילת העמוד הצג את כרטיס החבר של זיל חפש הודעות אחרות של זיל בקר בדף הבית של זיל
 
נמרוד
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 22 November 2008 בשעה 18:23 | IP רשוּם
ציטוט נמרוד

THREADS לא יעזרו לך פה, THREADS עוזרים לדברים אחרים.

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

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

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 22 November 2008 בשעה 19:35 | IP רשוּם
ציטוט shoshan

נמרוד כתב:

THREADS לא יעזרו לך פה, THREADS עוזרים לדברים אחרים.

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



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

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

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

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


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 

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

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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