Gå til innhold

Hvordan lager jeg et flash spill?


Anbefalte innlegg

Videoannonse
Annonse
  • 4 uker senere...

Hei, jeg har laget en del spill i flash før og kan sikkert hjelpe deg :) Men jeg vet jo ikke hvordan type spill du skal lage... plattformspill, skytespill, dressup/"lag en karakter" spill f.eks.... Kan poste noe actionscript koding her så du slipper å begynne helt fra starten av :)

Lenke til kommentar
Hei, jeg har laget en del spill i flash før og kan sikkert hjelpe deg :) Men jeg vet jo ikke hvordan type spill du skal lage... plattformspill, skytespill, dressup/"lag en karakter" spill f.eks.... Kan poste noe actionscript koding her så du slipper å begynne helt fra starten av :)

Tusen takk :D . Hvilket program bruker du?

Lenke til kommentar
Hei, jeg har laget en del spill i flash før og kan sikkert hjelpe deg :) Men jeg vet jo ikke hvordan type spill du skal lage... plattformspill, skytespill, dressup/"lag en karakter" spill f.eks.... Kan poste noe actionscript koding her så du slipper å begynne helt fra starten av :)

Tusen takk :D . Hvilket program bruker du?

Jeg bruker Macromedia Flash 8, men tror ikke det har noe å si hvilken verson du bruker av flash. Det funket fint på Macromedia Flash MX Professional som jeg brukte før :)

Lenke til kommentar

Jeg har forklart det veldig enkelt, men du må bare si ifra hvis du ikke skjønner helt :)

Slik lager du et enkelt plattform spill:

 

Først åpne ny fil i Flash og start med å tegn en ball. Så merker du av ballen og gjør den om til et movieclip (F8).

Når du har gjort det kan du klikke på ballen, og da skal det være en blå ramme rundt den.

 

Når du har klikket på ballen, så trykker du på "Properties" og skriver inn "CIRCLE" på "Instance name".

Så går du inn på "Actions" og skriv inn (lim inn) dette:

onClipEvent (load) {
   fall = false;
   _name = "circle";
   jump = 0;
   speed = 8;
   jumpheight = 18;
   maxfall = -54;
}
onClipEvent (enterFrame) {
   xmin = getBounds(_root).xMin;
   xmax = getBounds(_root).xMax;
   ymin = getBounds(_root).yMin;
   ymax = getBounds(_root).yMax;
   if (Key.isDown(Key.SPACE) && fall == false && jump == undefined) {
       fall = true;
       jump = jumpheight;
   }
   if (jump<>undefined) {
       if (jump>maxfall) {
           jump--;
       }
       _y -= jump;
   }
}
onClipEvent (enterFrame) {
   if (Key.isDown(Key.LEFT)) {
       _x -= speed;
   }
   if (Key.isDown(Key.RIGHT)) {
       _x += speed;
   }
}

 

 

Nå skal du tegne firkanter, lange eller korte, det bestemmer du selv, også lager du en bane av det. Gjør om de firkantene du vil at ballen ikke skal kunne gå igjennom (bakken eller plattformer den kan hoppe på) til et movie clip (fortsatt ved å trykke F8 :p).

Nå skal du lime inn dette på Actions:

onClipEvent (load) {
   activated = false;
   down = false;
}
onClipEvent (enterFrame) {
   _root.report.text = Math.round(_root.circle.yMax)+" "+Math.round(yMin);
   xmin = getBounds(_root).xMin;
   xmax = getBounds(_root).xMax;
   ymin = getBounds(_root).yMin;
   ymax = getBounds(_root).yMax;
   if (_root.circle.xMax>xMin && _root.circle.xMin<xMax && _root.circle.yMax<yMin) {
       if (_root.circle.yMax-_root.circle.jump*2>yMin) {
           _root.circle._y = ymin-_root.circle._height/2;
           _root.circle.jump = undefined;
           _root.circle.fall = false;
           activated = true;
       }
   }
   if (Math.round(_root.circle.yMax)>Math.round(yMin)) {
       if (hitTest(_root.circle) && _root.circle.xmax<xmin) {
           _root.circle._x -= _root.circle.speed;
       }
       if (hitTest(_root.circle) && _root.circle.xmin>xmax) {
           _root.circle._x += _root.circle.speed;
       }
       if (hitTest(_root.circle) && _root.circle.ymin>ymax && _root.circle.jump>-1) {
           _root.circle.jump = -1*(_root.circle.jump);
       }
   }
   if (activated == true && not hitTest(_root.circle) && _root.circle.jump == undefined) {
       _root.circle.jump = 0;
       activated = false;
   }
   if (hitTest(_root.circle) && _root.circle.ymax>ymin && _root.circle.jump<>undefined && _root.circle._y<_y) {
       _root.circle._y = ymin-_root.circle._height/2;
       _root.circle.jump = undefined;
       _root.circle.fall = false;
       activated = true;
   }
   if (_root.circle.ymax-_root.circle.jump>ymin && _root.circle.xMin<xMax && _root.circle.xMax>xMin && _root.circle.jump<>undefined && _root.circle._y<_y) {
       _root.circle._y = ymin-_root.circle._height/2;
       _root.circle.jump = undefined;
       _root.circle.fall = false;
       activated = true;
   }
}

 

Det er veldig viktig at du limer inn dette i hver enkelt firkant, for hvis du lager ETT movieclip av hele banen så vil selvfølgelig ballen bare rulle oppå hele banen, uten å være i kontakt med firkantene:P

 

 

Da er du ferdig :D

Du kan bare forandre litt på det scriptet jeg skrev i CIRCLE (ballen). Du kan f.eks bytte på graviteten, hastigheten eller hvor høyt ballen kan hoppe.

 

Enjoy :) Du styrer med piltastene og hopper med space, og du har nettopp laget ditt første Flash spill ;) lek deg litt med dette først, så kan jeg forklare deg litt mer om hvordan du lager f.eks skytespill eller dressup's :)

Lenke til kommentar

Jeg har gjort alt dette nå, og lagde en svart sirkel som skal lande på en grønn firkant. Jeg velger Test Movie, og styrer ballen litt rundt. Ballen lander på den grønne firkanten som du sier. Kan flytte ballen til venstre og høyre uten problem. Men problemet som dukker opp er at når jeg trykker Space for å hoppe, og når ballen lander igjen, så går den gjennom den grønne firkanten.

 

Noen løsninger på dette?

 

edit: Lagde den grønne firkanten som ballen lander på, tykkere, og da funka det.

 

Hvordan tilordner jeg andre knapper på tastaturet, slik at ballen gjør ting da? For eksempel å få ballen til å eksplodere ved å trykke på Shift-knappen?

Endret av BorN
Lenke til kommentar
Hvordan tilordner jeg andre knapper på tastaturet, slik at ballen gjør ting da? For eksempel å få ballen til å eksplodere ved å trykke på Shift-knappen?

 

Da må du dobbelt-klikke på ballen å lage en ny frame med et movieklip som inneholder animasjonen av at ballen eksploderer og endre litt i scriptet. Jeg antar at du må legge inn en ny "onClipEvent (Key.isDown(Key.SHIFT) {" og sette inn en "nextFrame ();" under. Er ikke helt sikker da, men jeg kommer ikke på noen andre løsninger.

Lenke til kommentar
  • 4 uker senere...
  • 1 måned senere...
  • 1 måned senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...