לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #1  
ישן 29-09-2009, 00:19
  dodush dodush אינו מחובר  
 
חבר מתאריך: 29.09.07
הודעות: 136
למישהו יש משו יותר מהיר, לבדיקת מגע...

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

קוד:
function ci(collision){ collision=false; var ri:Number = _root.mc1._y-(_root.mc1._height/2); var ti:Number = _root.mc1._x-(_root.mc1._width/2); for(i=1+ri;i<_root.mc1._height+ri;i++) for(j=1+ti;j<_root.mc1._width+ti;j++) if(_root.mc1.hitTest(j,i,true)&&_root.mc2.hitTest(j,i,true)) collision=true; if(collision) trace("a collision has acured"); } coize = setInterval(ci,1);


הבעיה שהיא הייתה נורא איטית תקעה את הפלאש כזה הקפיאה אותו לכמה שניות
אז ניסיתי את זה:
קוד:
function ci(collision){ collision=false; var ri:Number = _root.mc1._y-(_root.mc1._height/2); var ti:Number = _root.mc1._x-(_root.mc1._width/2); for(i=1+ri;i<_root.mc1._height+ri;i++) for(j=1+ti;j<_root.mc1._width+ti;j++) if(_root.mc1.hitTest(j,i,true)&&_root.mc2.hitTest(j,i,true)) collision=true; if(collision) trace("a collision has acured"); } function cio(){ if(_root.mc1.hitTest(_root.mc2)){ ci(); } } coize = setInterval(cio,1);

אבל גם זה לא משו למישהו יש דרך יותר טובה? (ראיתי משו על bitmap data או משו כזה אבל לא ממש הבנתי איך זה עובד!)

בבקשה תעזרו לי...
_____________________________________
"ואני אומר - ששנים דרושים למשחק!"

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 04-10-2009, 18:46
  dodush dodush אינו מחובר  
 
חבר מתאריך: 29.09.07
הודעות: 136
מצאתי את זה בהקשר של bitmapdata
בתגובה להודעה מספר 1 שנכתבה על ידי dodush שמתחילה ב "למישהו יש משו יותר מהיר, לבדיקת מגע..."

קוד:
var redRect:Rectangle = redClip.getBounds(this); var redClipBmpData = new BitmapData(redRect.width, redRect.height, true, 0); redClipBmpData.draw(redClip); var blueRect:Rectangle = blueClip.getBounds(this); var blueClipBmpData = new BitmapData(blueRect.width, blueRect.height, true, 0); blueClipBmpData.draw(blueClip); addEventListener(Event.ENTER_FRAME, enterFrame); function enterFrame(e:Event):void { blueClip.x = mouseX; blueClip.y = mouseY; if(redClipBmpData.hitTest(new Point(redClip.x, redClip.y), 255, blueClipBmpData, new Point(blueClip.x, blueClip.y), 255 )) { trace("hit"); redClip.filters = [new GlowFilter()]; } else { redClip.filters = []; } }

האם מישו מבין מה קורה פה? באתר שמימנו הבאתי את הקוד יש דוגמא (http://www.mikechambers.com/blog/20...sion-detection/)
אם מישו יכול לסבר לי את האזן כי ניסיתי וניסיתי אבל זה לא ממש מצליח...
_____________________________________
"ואני אומר - ששנים דרושים למשחק!"

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 07:26

הדף נוצר ב 0.03 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2025 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר