Collision Detection

TerminalFrost

New member
Collision Detection

האם למישהו יש נסיון במימוש collision detection בעזרת observer/observable design pattern? אני עדיין לא בטוח אם הpattern הזה מתאים למשימה, למרות שעל פניו נראה שכן.
 

TerminalFrost

New member
אלגוריתם לנסיעה על מסלול

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

De-Panther

New member
ניסיתי למצוא בשבילך|זבנג|../images/Emo23.gif../images/Emo185.gif

משהו בגוגל אבל לא הצלחתי במקום זה מצאתי משהו שקצת קשור אבל מגניב ביותר http://togelius.blogspot.com יש שם כלמיני נושאים בין השאר של סימולציות של מרוצי מכוניות אבל אין שם התייחסות לתנאי שטח ומסלולים אלא בעיקר ליעדים שאליהם צריך להגיע(גם לא יצא לי לראות קטעי קוד אלא רק המון המון הסברים בכלמיני מקומות) אולי זה יוכל לתת לך כמה רעיונות... אבל אמכבר אז גרמת לי לנסות לחשוב מה צריך לבדוק באלגוריתם כזה... קודם כל - מה המסלול הכללי(השטח שהוגדר לנסיעה) איפה יש סיבובים - כדי להאט ולהסתובב לבדוק את היחס בין מכוניות אחרות - כדי לעקוף ולחסום מכוניות אחרות
 

TerminalFrost

New member
ישבתי על זה קצת

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

TerminalFrost

New member
היא נוסעת!!

היא הצליחה להשלים סיבוב שלם לבד! הבעיה היתה שלא נתתי לה בדיוק את אותם תנאים שנתתי לי כשנסעתי בעצמי... עכשיו היא מחכה בדיוק את מה שעשיתי. היא תהיה worthy opponent!
 

ahillel

New member
אל תשכח

לשלב רנדומליות- שלא תיסע במסלול מקובע.
 

TerminalFrost

New member
יצאתי בהצהרה מוקדם מדי

אמנם המכונית הצליחה לסיים סיבוב אחד, אבל אחרי זה היא התחרפנה שוב. אני חושב שפתרון יותר טוב יהיה שהמכונית לא תבצע בדיוק את מה שאני ביצעתי אלא היא תנסה לתקן את מצבה בהתאם למצב שאני הייתי בו כשהייתי באותה נקודה. הדוגמאות יהיו
300 400 15 3.4 301 400 15 3.5 301 401 17 3.6​
בפורמט:
[x-pos] [y-pos] [angle] [speed]​
כך המכונית תמצא את נקודת הX,Y הקרובה אליה ביותר, ותתקן את הזווית שלה לכוון הזווית הרשומה, ותוסיף/תוריד מהירות אל המהירות הרשומה. מה שמדהים אותי זה שקיים אלגוריתם כזה בכל משחקון פלאש טיפשי באינטרנט, אבל אי אפשר למצוא קוד להורדה. או שמוצאים עבודת PHD של מישהו מMIT, או שמוצאים מאמר ארוך ומייגע בלי טיפת קוד.
 

De-Panther

New member
לדעתי אתה יכול אולי|זבנג|../images/Emo23.gif../images/Emo185.gif

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