Hogyan számolhatom ki ez?
Képzeljétek el hogy van egy 2d objektum kör vagy téglatest mindegy. Erre fogunk ráejteni köröket és téglatesteket.
Amikor ráesnek akkor kicsit túl esnek a felületén és csak ez után állnak meg. És én vissza akarom állítani ezeket a felületre. A az a pozíciót akarom kiszámolni a felületnek amit akkor kapok meg ha a túl esett tárgy mozgási irányát visszafordítom és visszafele mozgatom így megkapom a kívánt felületet ahol érintkeznek éppen de nincs már túl esve rajta. De hogyan számoljam ezt ki.
Csak ezeket használhatom:
mozgási irány pl: Vector2(0,1);
contact pontok
és az ütközött objektum pozícióinak külömbségvectora
Külömbség vec= RáesőObj.pos - Föld.pos
Na ha a fenti esetben ebbe az irányba 0,-1 elkezdem mozgatni(szal visszafele) az objektumot akkor lesz egy olyan pillanat amikor érintkeznek majd egymással de nincs túlmenve rajta sem az egyik sem a másik ez az a pozíció amit tudnom kell. Hogyan?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Se füle se farka.
Úgy látszik ez valami követelmény itt.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Ebben az egészben SEMMI nincs értelmesen leírva. Mi akar lenni a contact pont? Hogyan kell értelmezni az objektumok pozicióját? A középpontjuk pozíciójaként?
"A az a pozíciót akarom kiszámolni a felületnek amit akkor kapok meg ha a túl esett tárgy mozgási irányát visszafordítom és visszafele mozgatom így megkapom a kívánt felületet ahol érintkeznek éppen de nincs már túl esve rajta."
Akkor te most pozíciót vagy felületet akarsz?
Ebben az egészben semmi nem jön át azon kívül, hogy te *valamit* nagyon szeretnél megoldani.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
"Hogyan számolhatom ki ez?"
Gondolom ez "Hogyan számolhatom ki ezt?" akart volna lenni. Már ez sem sikerült.
"Képzeljétek el hogy van egy 2d objektum kör vagy téglatest mindegy."
A kör 2D objektum. A téglatest nem.
Már innen nincs értelme a kérdésnek.
"Erre fogunk ráejteni köröket és téglatesteket."
Mit jelent a ráejtés? Honnan, hogyan? Hogy ejtesz rá 2D-s valamire egy másik 2D-s valamit? Értelmetlen.
"Amikor ráesnek akkor kicsit túl esnek a felületén és csak ez után állnak meg."
Miért esnek túl? Minek a felületén? Mennyire esnek túl? Mikor állnak meg? Mi miatt állnak meg?
"És én vissza akarom állítani ezeket a felületre. A az a pozíciót akarom kiszámolni a felületnek amit akkor kapok meg ha a túl esett tárgy mozgási irányát visszafordítom és visszafele mozgatom így megkapom a kívánt felületet ahol érintkeznek éppen de nincs már túl esve rajta. De hogyan számoljam ezt ki."
Kérdő mondatok végére kérdőjelet kell írni a magyar nyelvben.
Mi ez a túlesés/visszaállítás marhaság? Csináld úgy, hogy ne "essen túl".
"Csak ezeket használhatom:
mozgási irány pl: Vector2(0,1);
contact pontok
és az ütközött objektum pozícióinak külömbségvectora
Külömbség vec= RáesőObj.pos - Föld.pos"
Miért csak ezeket? Mik ezek? Ki tiltja meg, hogy "mást" használj? Mi akar lenni a "Föld"?
"Na ha a fenti esetben ebbe az irányba 0,-1 elkezdem mozgatni(szal visszafele) az objektumot akkor lesz egy olyan pillanat amikor érintkeznek majd egymással de nincs túlmenve rajta sem az egyik sem a másik ez az a pozíció amit tudnom kell. Hogyan?"
Érintkező alakzatok pozícióit akarod kiszámolni? Akkor minek ez a sok bullshit köré?
Sok éves másokkal együtt dolgozott tapasztalatommal azt tudom javasolni, hogy ha valaki egy értelmes mondatot nem tud megfogalmazni és másoknak átadni annak nem szabad foglalkoznia a programozással. Fölösleges, haszontalan, káros.
A programozáshoz precizitás, absztrakciós készség, szigorú szabályoknak megfelelés szükséges.
Egyszerűen nem alkalmas mindenki erre, ahogy a fizikai munkát sem bírja mindenki.
Van 2 collider2d egyik a játékos objektumé másik a groundé amire ráugorhat vagy futkározhat rajta.
Ha a játékos objek ugrik akkor akkor elkezd hatni rá a gravitáció és ezért átmegy majd esésbe.
Ráesik for esni a ground ra de kicsit túl eshet a ground collider felületén ha gyors az esési sebessége és így a játékos beragad.
Erre a beragadás problémára akarok írni egy metódust. Képzeletében könnyű a amit akarok de megmondani ezt a számítógépnek már nem.
Én eltároltam az irányát a beragadó játékosnak. Irány alatt azt az irányt értem amilyen irányban haladt eggy kerettel az ütközés észlelése előtt.
Ennek az iránynak az ellentétes iránya az az irány amellyen az a pozíció található ahol a játékos először érintkezett a ground colliderrel mielőtt beleesett annyira hogy beleragadt, és ez a pozíció a térben egy olyan pontot jelöl ahol a ground collider és a játékos collider élei érintették egymást először. És ez kell nekem.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Bocs az előbbi elb#szott linkért, itt a helyes:
(A gyakori fejlesztőknek meg gratulálok hosszú szöveg formázás megoldásukhoz)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
"Képzeletében könnyű a amit akarok de megmondani ezt a számítógépnek már nem."
Nem csodálom, hiszen nekünk sem sikerül magyarul átadni.
A sebesség egy vektor és nem csak iránya, hanem nagysága van.
Egyébként szerintem borzasztóan nézne ki ha össze vissza rángatnád a karaktert, ha túl csúszik a platform szélén.
Úgy szokás ezt megoldani, hogy le lehet a platformról lógni valamennyit, teljesen fölösleges visszahúzogatni a karaktert.
Lásd: [link]
"Egyébként szerintem borzasztóan nézne ki ha össze vissza rángatnád a karaktert, ha túl csúszik a platform szélén.
Úgy szokás ezt megoldani, hogy le lehet a platformról lógni valamennyit, teljesen fölösleges visszahúzogatni a karaktert."
Nem ezt akarom ez nem okoz beragadást. Ez amit írtál természetes platformoknál és én is így akarom.
Olyan esetről beszélek amikor a játékos collidere bele megy a platform colliderének területébe és így bele ragad. Beleragadás akkor történik mikor két collider elkezdi metszeni egymást.bele esnek egymás területébe.
Ez akkor fordulhat elő ha nagy sebességen van mozgatva a játékos. És ha ez megtörténik én vissza akarom állítani egy megfelelő pozícióra.
Pl a linkelt képen képzeld el hogy a Márió ugyan ott áll ahol a képen is csak a lábai benne vannak annak a
ground collidernek a területében(szal nem a kerületén áll.) és ezért a játékos nem tudna vele tovább mozogni mert így bele van ragadva mintha fal venné körbe minden oldalról.
Ezért kell visszaállítani a tetejére ha a linkelt képet vesszük példának.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Alakul ez.
És ez olyan nehéz?
Az egyik objektum legszéle kisebb-/nagyobb-egyenlő koordinátán kell legyen, mint a másik objektum legszéle.
Itt ez a kép:
A nagy fehér kör és a hosszú fehér téglalap amin a játékosok állhatnak. A kisebb fehér négyzet és kör pedig a játékosok colliderjei. A zöld vonal az az iránt jelzi amely irányba a játékos mozgott mielőtt beragadt. Sárga alakzatok pedig azt a pozíciót mutassák ahová vissza kell állítani őket az az javított pozíciói a játékos colliderjeinek. És az a pont ahol a sárga és a talajnak vett colliderok érintkeznek az a pozíció kell nekem. Ez a pozíciót akarom kiszámolni a beragadásuk után hogy aztán vissza állíthassam őket.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!