Kezdőoldal » Számítástechnika » Programozás » C# Formban készített játékban...

C# Formban készített játékban hogy tudom jól működően megcsinálni az ütközésvizsgálatot?

Figyelt kérdés

Például ha sok objektum van az ablakban, és én csak egy karaktert mozgatok, akkor az objektumokra ne menjen rá, tehát ne menjen tovább.

Az túl sok számítást vesz igénybe, hogyha minden egyes lépésnél végigvizsgálom az objektumokat, hogy koordináta szerint egymásba érnek-e.

Van erre valami jó megoldás?


2013. máj. 20. 17:32
 1/3 SimkoL ***** válasza:
Thread vagyis szál. Minden objektum külön szálon.
2013. máj. 20. 21:06
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:
A szál szerintem is jó lehet. Egyébként ha ilyen jellegű programot készítesz, akkor ne form-ot, hanem wpf-et használj inkább. Látványosan gyorsabb.
2013. máj. 20. 21:29
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:

Nézz utána a geometriai alapú ütközésvizsgaaltnak (boundingbox és boundingsphere, vagyis te esetedben boundingcircle :) ). Az ütközésérzékelés piszok erőforrás igényes folyamat, ha pixel szinten akarod végezni, és a legtöbb esetben ennyire pontosnak lenni fölösleges. Egyszerűen azt vizsgáld meg, első lépésnek, hogy az adott objektumnak van-e egyáltalán esélye ütközni - ezt egy egyszerű távolságszámítással megteheted, ami pár összeadás és szorzás, ergo milliós nagyságrendben is pár ms időt vesz csak igénybe.


Aztán ha van olyan objektum, ami elég közel van, akkor annál az egynél lehet végezni finomabb, akár pixelszintű ütközésérzékelést.

2013. máj. 21. 17:40
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!