Archief - collisiondetection in 2D fighter

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

wivi

Legacy Member
yuuuu

Ik heb een probleem. Ik moet tegen morgen een 2D fighter afmaken en ik weet niet hoe aan de collisiondetection te beginnen!!!:help:

ik zit er nu al een tijdje op te zoeken maar ik zit gewoon vast:doh:

Need help!! :help:

pieta

Legacy Member
1) taal?
2) wat soort fighter? 2 mannekes tegen elkaar of met een vliegtuig,..
3) coordinaten vergelijken
4) veel geluk

wivi

Legacy Member
het gaat over de fighter Darkstalkers uit 1997 (dus 2 mannekes)
en ik zou gewoon ne practice mode moete kunne maken

pieta

Legacy Member
mm in zo een games ligt da wel moeilijker , moogt ge een engine gebruiken? dacht dat er een mugen for java engine was...

en hoe ver staat ge? want als da tegen morgen moet af moet zijn...

wivi

Legacy Member
moet voor morgen af zijn en we hebben een gameengine van de leerkracht gerkegen
de zij hebbe geschreve in visual studio

blackrabbit

Legacy Member
Misschien had ge er wat vroeger moeten aan beginnen..

Anyway, er zijn verschillende manieren om zoiets aan te pakken, maar veel hangt af van de reeds beschikbare code/interfaces. En om dat op 1 dag af te krijgen...



Das blijkbaar een fighter zoals Mortal Kombat ofzo?
Anyway, een collision =~= 'overlapping'. Detecteer tijdens tick T overlapping in tick T+1.
Hoe? Daar zijn verschillende manieren voor, de ene al efficienter dan de andere.

Fraggie

Legacy Member
Heel basic zou je kunnen zeggen elke actor heeft een bouding box zo groot als zijn maximale hoogte en breedte. Indien er een collision is tussen zo'n bouding box van actor 1 en actor 2, ga je specifieker gaan kijken (= meer CPU tijd nodig), zo niet, niets doen. Vervolgens deel je je char op 10tallen boxen die zijn contouren voorstelt en ga je de collision tussen deze twee nagaan met een simpele test.

wivi

Legacy Member
i know khad maar wa vroeger moete beginne kwas wel op tijd begonne maar aangezien ik nieuw ben in programming ben ik teveel tijd verloren door dit te lang te hebben laten liggen en ik heb et gewoon al onderschat.

anyway.
ik ben ondertussen ook aan een 2de game bezig waar ik fysische verschijnselen moet impliceren. daar is het probleem dat mijn character door de grond zakt (er is volgens mij dus iets mis met de collision detection) doordat mijn zwaartekracht hem er door trekt

Toch bedankt gaste :D

ravenslayer

Legacy Member
urgh, de game engine van hoefman heeft hitregions die zelfs voor jou adhv je bitmap deze gaan genereren.

bool Create(int type, const Bitmap* bmpPtr, COLORREF cTransparent = RGB(255, 0, 255), COLORREF cTolerance = 0);

HitRegion * m_HitIneedtostartdoingmycrapafewmonthsearlierPtr;

m_HitIneedtostartdoingmycrapafewmonthsearlierPtr = new Hitregion();

m_HitIneedtostartdoingmycrapafewmonthsearlierPtr->Create(3, m_MybitmapNamePtr, tranparancycolorinRGB);


en daarop kunde dan een hittest doen.
Nu ik zie dit niet meer inorde komen als je zoiets basic nog niet in je game hebt zitten.

SavaB

Legacy Member
1. Begin wat vroeger aan uw projecten, want op 1 dag (nacht?) dit afwerken gaat niet lukken.

2. Uw fysics game, daar hebt ge normaal zelfs voorbeelden in de les van gekregen.

zoals ravenslayer al zei: begin al maar te oefenen voor uw herexamen, want dit komt toch niet goed.

@Mee: het gaat over een custom C++ engine, dus XNA gaat hij niets aan hebben.

wivi

Legacy Member
thanx anyway kheb nog nooit programming gehad dus vandaar da ik nog redelijk wat te leren heb. het ding is het interreseert mij echt dus ik wil bijleren ook al heb ik zoiets basisch nog ni onder de knie

en voor wa herexames betreft ben ik al mentaal voorbereid ik wist da ik er vant jaar ging ebbe sedus...

SavaB

Legacy Member
Bwa, nog nooit is veel gezegd he. Je hebt er nu sowieso al een jaartje op zitten, waarbij je toch iets geleerd moet hebben ;).

Ik wens je veel succes toe, maar weet dat het 2de jaar nog heel wat moeilijker wordt. Maar zolang je je physics en math cursus wat bij de hand houdt, zouden zo'n dingen uiteindelijk niet al te moeilijk mogen zijn.

Cycloon

Legacy Member
wivi zei:
het ding is het interreseert mij echt dus ik wil bijleren ook al heb ik zoiets basisch nog ni onder de knie

Er zijn precies nog enkele basiszaken die je niet onder de knie hebt.

Snap

Legacy Member
Zowiezo zou je dit op een dag en een nacht nooit klaargekregen hebben, zelfs al had je meer dan 'basisch' kennis, als je hetzelfde gaat doen als herexamen gaat er best wel wat tijd in kruipen.

Bitmap collision detection zoals ravenslayer zei is niet echt goed voor een fightgame aangezien uw fighter moet bestaan uit enkele hitzones, namelijk waar is hij kwetsbaar, waar is hij aan het blocken, waar is een aanval actief. Als je dat allemaal met bitmaps gaat doen ga je op de Hoefman engine met lange laadtijden zitten voor iets wat anders simpeler en efficiënter kan.

Zowat alle Capcom fightgames waaronder Darkstalkers werken enkel met hitboxes. Kijk eens naar deze link, het is voor Street Fighter maar het werkt op identiek dezelfde manier voor Darkstalkers.
Guide to understanding Hit Boxes in Street Fighter : EventHubs.com
En dit gaat u misschien ook helpen
YouTube - ‪Vampire Savior Hitbox Viewer: Lei-Lei and Felicia‬‏

Voor elke animatie van uw character ga je de positie, grootte etc van die hitboxes moeten instellen, niet echt moeilijk maar wel iets waar wat tijd in kruipt.

ravenslayer

Legacy Member
true dat het zo een pak efficiënter en accurater zou zijn :)
maar efficiëntie is nu niet direct wat waar je op afgerekend wordt in het eerste jaar

The easy way out zou gewoon actionstates bijhouden zijn en die vergelijken als er collision is tussen de characters.

Fodbaddun

Legacy Member
Hij heeft het volgens mij niet over de hoefmanengine, maar over de AMP-engine die Bart geschreven heeft. Die is nieuw in het eerste jaar, volgens mij is die heel wat beter dan de Hoefman engine om zo'n games te schrijve ;)

wivi

Legacy Member
het ging wel degelijk over de hoefmanengine maar de amp-engine is inderdaad nieuw en daardoor ben ik beide beginnen door elkaar gooien wa mij nog meer problemen opleverde

nu ben ik voor men 2de zit bezig en ik doe alles in de amp-engine zodaik die ni opnieuw doorheen gooi

wivi

Legacy Member
jo gaste

kzit nu vo mijn 2e zit bezig en ik heb mijn character da ni op den eerste collisionmesh blijft staan ma wel op den tweede die ik der (per ongeluk) had bijgemaakt en die onder mijn eigenlijk level ligt (meerbepaald op de grens van zen respawnpoint). gevolg: hij zakt eerst door de vloer (met collisionmesh) en blijft daarna stilstaan op die 2e mesh. zou iemand wete waar men fout zou ligge???
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan