Toon posts:

[director] bal recht laten lopen ipv schuin

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig een spel te maken in Director, daarin heb ik een bal en een blokje. Het is de bedoeling dat de bal bestuurd word door de pijltjestoetsen, en wanneer de bal het blokje raakt krijgt deze een andere plaats toegekend (random). Alles hardstikke fijn en zo :P maar de bal loopt schuin ipv enkel horizontaal en verticaal...en ik weet niet hoe ik het veranderen kan....voor de rest werkt alles zo'n beetje (kleinigheidjes moet ik er nog in verwerken, maar het script compileert goed)

bestand is hier te vinden

Verwijderd

Heb de bron (nog) niet bekeken, maar vergeet je niet op het moment van keyboard-input de snelheid_X (of Y)weer op 0 te zetten?

Waarschijnlijk heb je twee variabeltjes voor de snelheid, snelheid over de X-as en Y-as (of in director termen, locV en locH :r :)) Op het moment van user-input moet ie gaan bewegen (bv. linkerpijl ingedrukt: we gaan naar links)

Zo op het eerste gezicht stel je inderdaad op zo'n moment wel de X-snelheid goed in, maar laat je de Y-snelheid gewoon op de oude waarde staan. Omdat die waarde geen 0 is, gaattie schuin ipv. recht.

oplossing in dit geval: de boel even op 0 zetten op het moment van keyboard-input.

Maar mischien zit ik er helemaal naast :)

Verwijderd

Juistum.
code:
1
2
3
4
5
6
7
8
on keyDown
  case (the keyCode) of
    123: xstap = -10
    124: xstap = 10
    125: ystap = 10
    126: ystap = -10
  end case
end keyDown

Hier krijgt het balletje in het geval van een ingedrukte 123 toets wel een xstap van -10, maar de ystap blijft vrolijk op 10 (of -10) staan. Da's nie goed nie.

Verwijderd

Topicstarter
Op zaterdag 02 maart 2002 16:09 schreef Atari_Junkie het volgende:
Juistum.
code:
1
2
3
4
5
6
7
8
on keyDown
  case (the keyCode) of
    123: xstap = -10
    124: xstap = 10
    125: ystap = 10
    126: ystap = -10
  end case
end keyDown

Hier krijgt het balletje in het geval van een ingedrukte 123 toets wel een xstap van -10, maar de ystap blijft vrolijk op 10 (of -10) staan. Da's nie goed nie.
dus meer zoiets dan:
code:
1
2
3
4
5
6
7
8
on keyDown
  case (the keyCode) of
    123: xstap = -10 && ystap = 0
    124: xstap = 10 && ystap = 0
    125: ystap = 10 && xstap = 0
    126: ystap = -10 && xstap = 0
  end case
end keyDown

ps: ik ben nog maar net begonnen in Director dus ik was allang blij dat deze code al werkte!!! whehe...stond er zelf van te kijken

Verwijderd

Ongeveer, maar toch ook weer niet.

&& is een 'string-concatenator' (schrijf je dat zo?) om twee strings aan elkaar te plakken.
In dit geval kun je de twee opdrachtjes gewoon achter elkaar zetten, dan worden ze allebei wel uitgevoerd. Geen rare stringconcatenators ertussen gaan smijten :) (zie voor dit soort dingen de lingo dictionary, staat het allemaal in)

123: xstap = 10
ystap = 0
124: xstap = -10
ystap = 0

Zwiets dus.

(Overigens vond ik de gameplay zo ook best OK. Een soort diagonale snake ;) )


[typo edit]

Verwijderd

Topicstarter
ja de gameplay was wel geinig maar het is de bedoeling dat dat doolhof niet geraakt mag worden en dat gaat dan moeilijk ;) plus dat de besturing niet helemaal klopte zo...
ik ga het ff proberen thanx

Verwijderd

Da's ook weer zo. Het testen van collisions met het doolhof zal waarschijnlijk trouwens nog niet zo heel makkelijk zijn. Een klassieke Pacman oplossing: gebruik een 2-dimensionale array (of linear list in Director) om een representatie van het doolhofje in nummers in op te slaan. Bv allemaal 1-en voor de muren, en 0-en voor de gangen. Check dan zodra je bal beweegt in die array wat er 'onder' het balletje komt te zitten in de volgende stap. Is het een 1? dan is het een muur en kan het balletje (pacman) niet verder, is het een nul dan issie OK en mag Pacman doorlopen.

bv:

1111111111111
1000000000001
1010110101101
1010110101101
1010111101101
1000000000001
1111111111111


voor een erg saai leveltje :)

Verwijderd

Topicstarter
hmmz...mijn docent had het erover dat ik dat doolhof als matte moest zetten, zodat alleen het zwarte als sprite erkend zou worden, en dan code neerzetten van if sprite(1) intersects sprite(2) ...blabla

werkt ook toch zeker?

Verwijderd

Oh ja, zoiets kan ook in Director natuurlijk |:(. Is idd wat makkelijker :)

(ik had zelf ooit op bovenstaande manier een pacman kloon gemaakt, maar dat was in C dus dan zou je die bit-masking (zoals in Director) zelf moeten maken. In zo'n geval is het level-arraytje wel handig. Ook is het wel leuk dat je dan nieuwe doolhoven kunt maken in een tekst-editor :))

Verwijderd

Topicstarter
hmmz...kep mijn doolhofje als matte gezet en een handler dat als het blokje het doolhof raakt, hij ergens anders moet gaan staan...maar director herkent nog steeds alles als doolhof en niet alleen de zwarte lijnen

>> file

wat doe ik nog fout?

Verwijderd

Je zou even kunnen kijken op http://www.director-online.com/
En dan via Quicklinks naar Game Quick Links,
Is heel handig als je een pacman style game wilt maken.

Verwijderd

Topicstarter
ja maar volgens mij doe je het zo moeilijker dan dat het ook kan...ik denk dat die matte - manier ook moet kunnen, alleen doe ik iets fout maar ik weet niet wat..

Verwijderd

Matte gaat alleen maar op voor het witte gedeelte aan de buitenkant van een sprite.

ik heb ff een slordig cirkeltje getekend in de paintwindow, en die op een blauwe stage gezet, en matte aangezet.

Dan kun je duidelijk zien dat alleen de buitenkant doorzichtig wordt.
Misschien kan je wel matte gebruiken als je zwart en wit omdraait van je doolhof. Dat weet ik niet zeker

Verwijderd

Nog even een aanvullinkje op m,n vorige post.

Je kunt denk ik toch wel matte gebruiken hiervoor.
Maar dan moet je doolhof niet gesloten zijn.

Als je een 1 px dik wit lijntje door de zijkant van je doolhof trekt wordt de binnenkant ook transparant.

Verwijderd

Topicstarter
geweldig zo werkt ie!!
thanx!
Pagina: 1