Autor | Zpráva | ||
---|---|---|---|
Max Profil |
#1 · Zasláno: 18. 6. 2005, 10:22:32
Zkouším vytvořit hru závody aut,ale mám takový menší problém.Chtěl jsem vytvořit ohraničení jízdní trati tak,aby se od něj auto odrazilo.Podařilo se mi to jen,když to ohraničení mělo přesný tvar (objekt tvaru čtverce,kruhu apod),což je poměrně nevýhodné,protože bych tu trať musel složit z kousků.A tak jsem to chtěl udělat z jednoho objektu,do kterého bych "vyřízl" tvar té trati.(dutý objekt)Pak jsem z toho udělal movie klip a tomu autu nadefinoval:
} if (this.hitTest(_root.ohranicenitrati) & speed>0) { speed -=10; } Jenom že ten objekt,do něhož je vyřízlá ta trať, je brán jako jeden objekt i s tou "dírou" v něm.A tak bych potřeboval poradit,jak to udělat,aby v tom objektu nebyla zahrnuta plocha toho vyříznutého otvoru.Jsem opravdu začátečník a tak je můj dotaz možná triviální,nicméně za odpověď předem děkuji... |
||
Hanz Profil |
#2 · Zasláno: 18. 6. 2005, 11:30:13 · Upravil/a: Hanz
Max
} if (this.hitTest(_root.ohranicenitrati._x,_root.ohranicenitrati._y, true) & speed>0) { speed -=10; } Ale nejsem si jist. |
||
Max Profil |
#3 · Zasláno: 19. 6. 2005, 00:21:02
Díky za radu,ale tenhle skript bohužel funguje tak,že se ten objekt (auto) odráží od prostředka toho movie klipu a né od jeho "stěn"...
|
||
Hanz Profil |
#4 · Zasláno: 19. 6. 2005, 08:21:50
Max
Tak to zkus ještě takto: } |
||
Max Profil |
#5 · Zasláno: 19. 6. 2005, 11:41:57
Díky moc,myslim,že tohle bude s malou úpravou to ono...:)
|
||
Max Profil |
#6 · Zasláno: 19. 6. 2005, 12:42:17
Ikdyž to má přecijen malý háček.Vyřešilo to tu "děravost" toho objektu,co představuje to ohraničení,ale zas prozměnu se to auto odrazí svým středem.To znamená,že svou půlkou vjede do toho ohraničení a pak teprve se odrazí.Tak že problém s odrážením od středu stále zůstává...
|
||
Hanz Profil |
#7 · Zasláno: 19. 6. 2005, 16:42:00
Max
Tak to zkus ještě takhle: _root.ohranicenitrati.hitTest(this, true); Ale asi to nepůjde. |
||
Max Profil |
#8 · Zasláno: 19. 6. 2005, 23:38:19
Tak to jsem taky už zkoušel,ale bohužel to taky nejde...
|
||
Časová prodleva: 12 dní
|
|||
Sitnarf Profil |
#9 · Zasláno: 1. 7. 2005, 20:41:12 · Upravil/a: Sitnarf
Ten předešlý příklad nefunguje, protože pokud nepužiješ ja parametry souřadnice(_x,_y) místo MovieClipu, tak Flash počítá kolizi pouze s bounding boxem okruhu (takový ten rámeček kolem movieClipu). Jeden ze způsobů:
V tomto případě se počítá kolize při jíždě dopředu, při zpátečce jednoduše vyměníš znaménka. |
||
Časová prodleva: 14 dní
|
|||
Billy Bob Bean Profil * |
#10 · Zasláno: 15. 7. 2005, 08:44:33
Nej jednodušší je si trať rozdělit na vnitřní a vnější část, potom stačí napsat:
if (_root.vnitrni.hitTest(this)) { rychlost *=0.7; _x -=2; } if (_root.vnejsi.hitTest(this)) { _rychlost *=0.7; _x +=2; } Tohle zaručeně fungovat bude... |
||
Časová prodleva: 2 měsíce
|
|||
Max Profil |
#11 · Zasláno: 31. 8. 2005, 23:57:53
Tak jsem zkoušel ten skript:
if (_root.okruh.hitTest(this._x+_width/2, this._y+_height/2, true)) { speed= -speed; } celkem by to fungovalo,ale objevuje se tam malý problém.Funguje to v případě,že to ohraničení má přesný tvar.Například když jsem vymezil hrací plochu obdelníkem představujícím ty hranice,do kterého jsem vyřízl obdelníkový otvor,v němž se to auto pohybuje... Problém nastal,když jsem v tom otvoru vytvořil další omezující překážky.Jednak některé z nich byly zřejmě moc úzké,a tak jimi to auto projelo, ale to bych snad nějak vyřešil, ale závažnější věc nastala,když to auto narazilo na roh některé z těch překážek,které se nacházely v tom vymezeném prostoru.Auto tím projelo a začalo se chovat,jako by ta bariera byla tím prostorem,kde se má pohybovat...Nevím,čím to je,že to nebere všechny hrany těch barier... Pro představu o té trati,vypadá asi takto: ----------------------------------------- - - - ---------------------- - - - - - - ---------------------- - - - - -------------------- - - - ----------------------------------------- ty čáry představují bariery,od nichž se auto odráží.S tím rámcem kolem není problém,ten funguje,ale ty příčky uvnitř právě dělají výše zmíněný problém... |
||
Max Profil |
#12 · Zasláno: 1. 9. 2005, 00:02:22
Aha,pokus o nástin se nepovedl.Prostě to uvnitř tvoří trať přibližně ve tvaru písmene "S"...
|
||
Timy Profil |
#13 · Zasláno: 1. 9. 2005, 06:40:07 · Upravil/a: Timy
zkus se podívat na tohle http://www.flashland.sk/flash.php?id=157&fileswf=t1.swf (zdroják), třeba to pomůže
|
||
Časová prodleva: 2 měsíce
|
|||
4JOKE Profil * |
#14 · Zasláno: 28. 10. 2005, 10:49:41
...presne takyto problem mam aj ja....
...jedine funkcne uzitocne co som v tejto teme nasiel je link od Timyho... ...pozeral som si zdrojovy kod tej animacie, lenze je tam toho tak vela ze vobec tomu nexapem, ono sa tam aj vypocitava ako sa ma ta lopta odrazit a to ja nepotrebujem, stacilo by mi len ako je ta kolizia spravena. Mohol by mi to niekto vysvetlit? alebo na akom principe to pracuje??? Moc dik. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0