21. juni 2001 - 09:05Der er
12 kommentarer og 1 løsning
arkanoid klon
er ved at lave en arkanoid klon..eller ihvertfald teste vodden den kan laves men er løbet ind i et problem med vordan bolden opfører sig når den rammer pladen. Først skal det lige siges at den måde jeg kontrolere bolden er med 4 variabler, de 2 første er om bolden skal plusse til i horizontal/verticalt eller minus´e, de 2 andre er ja hvad kan man kalde dem..multipliere?..altså at hvis den ene er 7 og den anden er 3 gir det en hvis vinkel. Har så forsøgt virtuelt at dele det 100 pixel brede bræt op i 10 dele som så alt efter hvilken del bolden rammer skal den blive tildelt en hvis vinkel via de to multipler variabler....problmet er bare det virker ik hehe..det ser ud til at jeg hele tiden får sammme vinkel...anyway..her er scriptet på pladen/brædtet (har et framescript som sørger for at opdatere skærmen 25 gange i sekundet med de nye koordinater):
on exitframe global ball_multiV, ball_multiH, ballV, ballH,speed if sprite(10).intersects(6) then ballV=\"-\" if sprite(10).left >= sprite(6).left And sprite(10).left < (sprite(6).left+10) then ballH = \"-\" ball_multiV=7+speed ball_multiH=3+speed else if (sprite(10).left+10) >= sprite(6).left And sprite(10).left < (sprite(6).left+20) then ballH = \"-\" ball_multiV=6+speed ball_multiH=4+speed else if (sprite(10).left+20) >= sprite(6).left And sprite(10).left < (sprite(6).left+40) then ballH = \"-\" ball_multiV=5+speed ball_multiH=5+speed else if (sprite(10).left+30) >= sprite(6).left And sprite(10).left < (sprite(6).left+40) then ballH = \"-\" ball_multiV=4+speed ball_multiH=6+speed else if (sprite(10).left+40) >= sprite(6).left And sprite(10).left < (sprite(6).left+50) then ballH = \"-\" ball_multiV=3+speed ball_multiH=7+speed else if (sprite(10).left+50) >= sprite(6).left And sprite(10).left < (sprite(6).left+60) then ballH = \"+\" ball_multiV=7+speed ball_multiH=3+speed else if (sprite(10).left+60) >= sprite(6).left And sprite(10).left < (sprite(6).left+70) then ballH = \"+\" ball_multiV=6+speed ball_multiH=4+speed else if (sprite(10).left+70) >= sprite(6).left And sprite(10).left < (sprite(6).left+80) then ballH = \"+\" ball_multiV=5+speed ball_multiH=5+speed else if (sprite(10).left+80) >= sprite(6).left And sprite(10).left < (sprite(6).left+90) then ballH = \"+\" ball_multiV=4+speed ball_multiH=6+speed else if (sprite(10).left+90) >= sprite(6).left And sprite(10).left < (sprite(6).left+100) then ballH = \"+\" ball_multiV=3+speed ball_multiH=7+speed end if end if end
1.ballH = \"+\". Hvad bruger du den til? ball_multiV & ball_multiH skal i sig selv regnes ud til hvad bolden skal rykkes ad gangen. I dit script lægger du hele tiden til, men hvis bolden intersecter battet skal ball_multiV & ball_multiH i teorien ændres til negative. Jeg går udfra at dit script tester for hvor på battet du rammer. Udfra dit script vil jeg sige at ball_multiH skal være negativ op til de 30. Prøv at leg lidt med at trække fra. Jeg ville nu bruge rect funktionen istedet tror jeg, men jeg har tid lige nu til at komme med et eks. Måske vender jeg tilbage. ---------------------------------- 2.Så snart man skriver det samme mere end et par gange er det en god ide\' at smide dem i et par variabler. bold = sprite(10), bat = sprite(6). Det gør også koden lettere at læse og du skal kun rette et sted hvis du flytter dem til andre sprites.
1: ballh får feks strengen \"+\" hvis at værdien ball_multih skal opfattes som positiv og omvendt med \"-\" (ball_multih og v er altid positive tal)..på den måde er det nemmere når speed skal plusses til da jeg ellers skal bruge flere linier hvis ball_multih er negativ 2: ja det ved jeg godt:)..men plejer typisk i starten indtil scriptet det virker at bygge det op således..rydder op i det bagefter normalvis
Hej zed-one ! Jeg er lige kommet hjem. Når jeg kigger på filmen, så kører bolden ikke i samme retning. Det er da en forbedring. Det du vil have nu er at vinklen bliver ændret ikke?. Jeg kigger på det i løbet af dagen, så kan det jo være at du får 2 forslag hvis lingoman også er i gang.
Jeg skulle selvfølgelig lige kigge med det samme. Jeg har kun director 8 installeret, så hvis jeg skulle lave noget skal det copy/pastes over i din film. En ting som ihverttilfælde er galt, er, at du i den første exitframe sætter ballV=\"-\" & ballH=\"+\", så er det lige meget hvad den bliver sat til på baren, den bliver ændret. Hvis lingoman er igang, så er der ingen grund til at jeg fortsætter. Jeg ville have lavet det på en anden måde, no hard feelings. Jeg kan sende dig en version jeg har, så kan du kigge på den og vurdere hvad der passer dig bedst.
hehe kanding..vinklen virker nu..lol..havde byttet om på de tal der skulle være i + delen af det script længere oppe hehe men anyway..lingoman er ikke igang...og jeg vil meget gerne se dit forslag da jeg tror du har en del mere erfaring i at lave spil end mig :)
..nå nu skal jeg igang med at lave de plader ssom bolden kan ramme..og nu har jeg fire steder at ta højde for i min programering for når bolden rammer dem...well tjaa...altid sjovt at forsøge at løse et problem ;)
jow..det er en deal...så kan jeg lave det på min måde og sammenligne med din og derved se hvad jeg har gjort galt eller gjort besværligt for mig selv
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.