Avatar billede zed_one Praktikant
21. juni 2001 - 09:05 Der 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

\0

-Zed

Avatar billede zed_one Praktikant
21. juni 2001 - 09:06 #1
sprite 10 = bolden
sprite 6 = pladen
Avatar billede kanding Nybegynder
21. juni 2001 - 10:01 #2
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.
Avatar billede zed_one Praktikant
21. juni 2001 - 10:24 #3
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
Avatar billede zed_one Praktikant
21. juni 2001 - 10:26 #4
sig til hvis du lige vil ha tilsendt et kopi af \"spillet\"...det kan ik måj enndnu og er grimt da det stadig er i test fasen :)
Avatar billede kanding Nybegynder
21. juni 2001 - 11:44 #5
2. ahhhh dobbelt arbejde. Argumentet stinker ;-)
Du må da godt sende det til john@kanding.dk, måske kan jeg se på det og komme med et forslag.
Avatar billede lingoman Nybegynder
23. juni 2001 - 18:17 #6
Hej Zed-One,

Fik du løst dit problem eller har du stadig brug for lidt hjælp?

mvh Geo
Avatar billede zed_one Praktikant
25. juni 2001 - 07:47 #7
tjaa..kanding er ik kommet med et forslag endnu :)...så du må da gerne komme med et forslag:)
Avatar billede kanding Nybegynder
25. juni 2001 - 08:58 #8
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.

john
Avatar billede kanding Nybegynder
25. juni 2001 - 09:26 #9
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.

john
Avatar billede zed_one Praktikant
25. juni 2001 - 10:18 #10
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 ;)
Avatar billede zed_one Praktikant
25. juni 2001 - 10:19 #11
du får sgu også lige de point :)
Avatar billede kanding Nybegynder
25. juni 2001 - 10:29 #12
Kan du ikke skrive til john@kanding.dk, når du vil have filmen, hvis du lige vil forsøge at løse opgaven selv først.
Avatar billede zed_one Praktikant
25. juni 2001 - 10:49 #13
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester