mit "væg" problem

Tags:    programmering

hej. jeg har et problem.jeg har tænkt mig at lave bounds i mit flash spil. altså vægge som den bil man styre ikke kan køre igennem.

fordi at den by bilen skal kunne køre rundt i, er så stor, er det i stedet for bilen, byen der rykker sig og bilen står stille, når man køre.

så jeg har dette drejnings actionscript til bilen:

onClipEvent (enterFrame) {
if (Key.isDown(Key.RIGHT)) {
_rotation = 90;
}
if (Key.isDown(Key.LEFT)) {
_rotation = 270;
}
if (Key.isDown(Key.UP)) {
_rotation = 0;
}
if (Key.isDown(Key.DOWN)) {
_rotation = 180;
}
if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP)) {
_rotation = 45;
}
if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP)) {
_rotation = 315;
}
if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN)) {
_rotation = 135;
}
if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN)) {
_rotation = 225;
}
}


til at byen skal kunne rykke sig med piltasterne, har jeg puttet dette script i byens movieclip:

onClipEvent (load) {
speed = 7;
}
onClipEvent (enterFrame) {
if (key.isdown(key.LEFT)) {
_x += speed;
}
if (key.isdown(key.RIGHT)) {
_x -= speed;
}
if (key.isdown(key.DOWN)) {
_y -= speed;
}
if (key.isdown(key.UP)) {
_y += speed;
}
}


så nu kommer det endelige spørgsmål:

hvordan kan jeg stoppe byens hastighed, hvis bilen rammer det tredje movieclip (altså boundsne)


bilens instance name: bil

byens instance name: character

lad os sige at bounds instance name er: bounds

vil meget gerne have actionscriptet til det...

tak, og farvel så længe

-Michael Hald




4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Kan du bruge dette til noget?:
http://www.tonypa.pri.ee/tbw/tut05.html

Ellers kan man anvende hitTest():
http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary534.html

Eventuelt ved at flytte banen 1px modsat retning af piltasternes retning, når hitTest() er lig true.





Eventuelt ved at flytte banen 1px modsat retning af piltasternes retning, når hitTest() er lig true.


ja. men kan ik lave et AS til den funktion. jeg har prøvet med hittest men det er svært når 2 ting kanl ramle ind i hinanden og stoppe en tredje ting.

jeg har prøvet med den klassiske:

(dette er inde i landets movieclip, den normale speed er 2)

onClipEvent (enterFrame) {
if (bil.hitTest(_root.bounds)) {
speed = 0.5
}
}

men vil helst ha en kode så bilen slet ikke ka køre henover bygningen...

din 1px ide er glimrende :D

nu mangler jeg bare et action script :(




Nu ved jeg godt at du vil have kode, men stødte lige på et link mere... hvis du ikke har set den.:
http://www.flashkit.com/tutorials/Games/Driving_-Matthew_-825/index.php

Godt nok virker koden ikke, og hvis man forsøger at få den til at virke... ja så virker den langt fra optimalt :)
Men ideen er der.
Når der opstår kollision mellem bilen og en bygning, vil hastigheden ændres til negativ, så bilen (eller banen) bliver skubbet modsat retning.
Problemet er bare at hitTest metoden tager udgangspunkt i bilens centrum, og bilen kan derfor køre halvvejs ind i bygningen før den bliver smidt tilbage.



Jeg har prøvet det script allerede, jeg kan ikke lave det med det. :(

Kan du det nøjagtige script eller en side der vider det nøjagtige? Tak



t