ABA


"כיוונון קנה התותח במשחק שלי"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15774 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15774
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   13:45   21.03.10   
אל הפורום  
  כיוונון קנה התותח במשחק שלי  
 
   היי חברה, אני מתקשה בלכוונן את התותח במשחק שלי:
יש לי וקטור של התותח(this.position), וקטור של האויב(enemy.Position). כאשר התותח מצביע במקור למעלה עם ROTATION שכוון לפאי חלקי 2.

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


direction = enemy.Position - this.position;
double tan = direction.X / direction.Y;
this.rotation = (float)Math.Atan(tan);

direction הוא גם כן Vector2 ,שיצרתי, על מנת לחשב את הכיוון.

זה לא בדיוק עשה מה שציפתי מימנו לעשות(לסובב את התותח לכיוון האויב):

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

מישהו יכול לעזור לי בקשר לזה? תודה


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  מכתב ronen333  22.03.10 17:18 1
     אני דווקא לא חושב שזו דרך מכוערת Net_Boy  23.03.10 23:29 2

       
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   17:18   22.03.10   
אל הפורום  
  1. מכתב  
בתגובה להודעה מספר 0
 
   הצלחתי לפתור את זה בדרך מאוד מגעילה, אשמח אם מישהו בכל זאת יתן לי נוסחא שתיהיה תקפה לסיבוב הקנה למקום המתאים.


זה מה האילתור שלי בנתיים:


direction = enemy.Position - this.position;
double tan = direction.X / direction.Y;

if (enemy.PositionY < this.PositionY)
this.rotation = -(float)Math.Atan(tan);
else
{
if (enemy.PositionY > this.PositionY)
{
this.rotation =(float)((Math.Atan(-tan))+Math.PI);
}
else
this.rotation = (float)Math.Atan(tan);
}

וזה עובד סבבה:

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   23:29   23.03.10   
אל הפורום  
  2. אני דווקא לא חושב שזו דרך מכוערת  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 23.03.10 בשעה 23:55 בברכה, Net_Boy
 
דרך יותר אלגנטית לדעתי
היא לחשב בערך מוחלט את הזוית ואז לפי הרביע במעגל לקבוע את המיקום.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net