הגעת למגבלת הצפייה למשתמשים שאינם רשומים באתר
  • נשמח אם תצטרפו לקהילה שלנו. הרשמה לאתר תקנה לכם את האפשרות לשאול שאלות ולהגיב לשרשורים באתר ללא כל עלות
  • טופס ההרשמה לאתר נמצא כאן למטה ולוקח פחות מ-30 שניות למלא אותו (כן, בדקנו עם סטופר 🤓)

צריך עזרה קטנה בפרויקט

Dave Grohl

משתמש משקיע
2,033
4
נק' מוניטין:
5,423
2,033
4
לצערי הרב יש לי איזה פרויקט מגעיל שאני צריך בשביל היג'. כתוב בשפת JAVA.
אני בונה משחק Tank Wars מאמין שהרוב יכירו דבר כזה או אחר (כמו GunBound) שפשוט 2 טנקים יורים אחד על השני.
תמונה להמחשה:
tankwars.jpg

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

הבעיה שנתקלתי בה היא כשאני יורה, אני מצייר בעצם פצצה סוג של שהולכת החל מהטנק, ולפי הזווית ועוצמה יש לה מסלול קבוע (נו, זריקה אופקית).
הבעיה היא שאין לי שמץ של מושג מתי היא תפגע בדשא. אין לי דרך לזהות.
אני רוצה לדעת אם יש דרך שבה אני אוכל לזהות צבע על המסך, שעות של חיפושים בגוגל לא עזרו חח. ניסיתי גם כל מיני דרכים עם זיהוי component אבל בגלל שזה לא משהו שציירתי בתוך הJAVA אלא ציור חיצוני אני לא מצליח לזהות את זה. למישהו יש פתרון איך לזהות דבר כזה?
תודה ✌️
 
אתה צריך לשמור במערך את גובה פני השטח, כלומר לכל פיקסל על ציר ה x אתה צריך לשמור את מס הפיקסל שבו מסתיימת האדמה ומתחילים השמיים (ציר y). ואז כשאתה יורה כדור, אתה רץ על ציר ה x ומוצא את הערך הראשון שבו מיקום הכדור בציר ה y קטן מערך פני השטח ששמרת במערך. כך אתה יודע איפה פגעת. התצוגה על המסך היא בד"כ הפלט, ואתה לא אמור "לקחת" נתונים מהמסך.​
 
  • פותח/ת השרשור
  • #4
כן, יכול לשנות כח או זוויות.

ומשועמם כן, הרעיון עצמו הוא רעיון נחמד שכבר עלה במוחי, אבל מכיוון ואני יוצר "חורים" במסך (הורס שטח לאחר פגיעה של קליע) יוצא מצב שפני השטח בעצם הם דינאמיים, מה גם שבשיטה הזאת אני לא אוכל לשמור צורות עגולות (עיגול = אינסוף נקודות) ובכללי אם אני אעשה את זה, אני אצטרך לצייר את השטח וזה רק בעזרת DrawPolygon מהמחלקה Graphics שזאת תהיה צורה די בעלת שפיץ (הכל תלוי כמה נקודות יהיו לי)
אני מנסה להמנע מהדרך הזאת לעת עתה. אני משוכנע ב100% שיש דרך "לדגום" צבע מהמסך, הרי זו פעולה שאפילו הצייר הפשוט מסוגל לעשות, איך זה לא קיים בJAVA?

למישהו יש עוד רעיונות..?
 
כל פעם שיש חור אתה מעדכן את המערך לפי נוסחת המעגל (y=sqrt(r^2-x^2.

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

או לחילופין, אתה יכול לשמור מערך דו מימדי של כל המסך בזכרון (0-אדמה, 1- שמיים, 2-טנק וכו) וכך בעצם לשמור את תמונת המסך, ואליה תוכל לגשת בקלות. הבעיה היא שזה תופס הרבה זיכרון, אך במחשבים מודרניים זו לא בעייה
 
  • פותח/ת השרשור
  • #6
אני לא צריך את כל המסך, במידה ואני אשמור את זה אני אשמור מערך דו מימדי של האדמה בלבד. זה כבר יסדר לי את הכל פיקס
וכן ברורה לי עדכון נוסחת המעגל אני עדיין מוצא את זה כאב ראש.

חחחחחחח בקשר לדום 1 אני לא כל כך זוכר, אני הייתי יותר ילד של דום 2 ;).
בכל אופן כן, אני יותר ויותר משתכנע שאין מנוס מלעשות את זה חחח
טוב, תודה רבה ✌️
 
שימו לב! השרשור ישן: לא היו תגובות בשרשור מעל 90 יום.

ייתכן שהתוכן בשרשור כבר אינו רלוונטי ולכן עדיף לפתוח שרשור חדש.
Back
למעלה תחתית