Kezdőoldal » Számítástechnika » Programozás » Hol a hiba ebben a függvényben...

Hol a hiba ebben a függvényben? (Javascript ütközésvizsgálat) Rossz az elvem, vagy csak valami apró hibát nem látok?

Figyelt kérdés

A függvény feladata az lenne, hogy 2 objektumról (obj1 egy téglalap, obj2 egy kör [r sugárral]) eldöntse, hogy átlapolódnak-e. A baj vele, hogy egyáltalán nem érzékeli.


A kód:


function utkozik(obj1, obj2)

{

//ob1 teglalap, obj2 kor [r sugar]

var top1=obj1.x; //tegla

var right1=obj1.x+obj1.szel;

var top1=obj1.y;

var left1=obj1.x;

var bot1=obj1.x+obj1.mag;

console.log("1. right: "+right1+" Top: "+top1

+"left: "+left1+"bot: "+bot1);

//kor

var right2=obj2.x+obj2.r;

var top2=obj2.y-obj2.r;

var left2=obj2.x-obj2.r;

var bot2=obj2.y+obj2.r;

console.log("2. right: "+right2+" Top: "+top2

+" left: "+left2+" wbot: "+bot2);


if (bot1 < top2) return false;

if (top1 > bot2) return false;

if ( right1 < left2) return false;

if (left1 > rigth2 ) return false;

return true;

}



#javascript #játék #web #error #ütközés #collision #ütközésvizsgálat
2014. jan. 31. 16:16
 1/3 anonim ***** válasza:
Hát elég nehezen érthető a kód és nincs is túl sok értelme. Eleve ha már kört csinálsz, mért csak 4 fix pontra teszteled az ütközést mintha négyzet lenne? Meg mi az hogy ha a négyzet jobb pontja kisebb, mint a kör bal pontja akkor false, egyébként true? És ha a kör a téglalaptól balra helyezkedik el? Vagy a téglalap alatt elmegy jobbról balra? Ennek így semmi értelme.
2014. jan. 31. 16:45
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:

A körömnek a 4 fixpontja a vízszintes és merőleges átmérőknek a körvonallal vett metszéspontjai (felső, alsó, jobb és bal, mintha a köré írt legkisebb négyzet oldalait vizsgálnám).

A feltételeim valószínűleg tényleg értelmetlenek, át kellene jobban gondolnom.


Köszönöm a segítséged, írhat más is, ha tud valamit hozzátenni!

2014. jan. 31. 17:55
 3/3 anonim ***** válasza:

Az a gond, hogy a kört befoglaló négyzettel való közelítés miatt akkor is ütközést detektálnál, ha valójában még nem lenne ütközés.

Fenti kód ettől függetlenül is tartalmaz hibát, méghozzá az obj1 adatainak kiszámításánál. Eleve, top1-et kétszer számolod, de itt szerencsére jó eredménnyel csapod felül a rosszat. bot1-nél ugyanakkor x koordinátát használsz (mint az első top1-nél), amely ugye nyilván rossz...

2014. jan. 31. 20:15
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!