Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

Veldig god faktisk. Har selv syslet litt med det og har du energi/tid til å fullføre noe så klarer du det minst like lett i Delphi som i et annet språk.

 

Ta en titt på

 

http://www.crazyentertainment.net/index.php

 

for oppdaterte DirectX headere for Delphi.

 

http://turbo.gamedev.net/

 

har kanskje også noen tips og triks.

 

Ellers finnes det jo 'kiosk-vare' som f.eks. DelphiX som du kan ta en titt på...

 

-Vegar

Lenke til kommentar

Det tror jeg kommer helt an på hva slags spill du skal lage.

 

Det noe som heter 'kolisjons dektetering'. Det er et mer eller mindre avansert tema med flere varianter; Skal det testes på 3D figurer, er det kun snakk om 2D 'sprites' eller enda enklere, er brettet oppbygd som et rutenett hvor enkelte ruter er OK, mens andre er 'fy-fy'...

 

I det siste tilfellet, som er en vanlig for labyrinter, kan man ha hele labyrinten som et array:

 

Code:

0 1 2 3 4
0 |x|x|x|x|x|
1 |x| |x| |x|
2 |x| |x| | |
3 | | | | |x|
4 |x|x|x|x|x|

 

Celler med 'x' er vegger, mens de andre er åpne plasser. Holder man da hele tiden rede på hvor i labyrinten spilleren er, f.eks. [0,3], kan vi sjekke cellene rundt for å finne hvilke retninger det er tillatt å flytte i.

 

Søk på 'tile-' eller 'sprite based games' og se om du finner mer informasjon om dette temaet.

 

-Vegar

Lenke til kommentar
  • 1 måned senere...
trenger litt mer hjelp her.

Åssen får jeg til det du sa Format71?? (det med fy fy og det der)

Noen som kan hjelpe litt til med å få til en form for gravitasjon???

 

I et hvert spill har man gjerne en loop hvor man sjekker input, justerer ting deretter og tegner på nytt til skjerm.

 

Eks. 1 - labyrint sett oveni fra:

 

Har et objekt som representerer spilleren. Den har to properties som angir hvor i verden han er plassert.

Et annet objekt representerer labyrinten. Dette kan f.eks. være et array[x,y] som tidligere nevnt.

loopen blir da noe slikt:

 


   Sjekk input ()   //kan bruke onkeypress, onkeydown, DirectInput, getAsyncKey e.k.

   begin

     if pilvenstre and not labyrint[spiller.xposition - 1, spiller.yposition] then

         spiller.xposition := spiller.xposition - 1

     else if pilhøyre and not labyrint[spiller.xposition + 1, spiller.yposition] then

         spiller.xposition := spiller.xposition + 1

 

osv...

 

Eks 2 - 'stigespill/klassisk plattformspill'

 

Igjen et objekt som representerer spiller og et som representerer spillebrettet. Her kan man gjøre spillebrettet litt mer avansert og ha et array[x,y] av integer i stede for boolean. 0 kan være tomrom, 1 gulv og 2 stige f.eks.

 

Hvis brukeren da trykker pil-opp kan man sjekke om det finnes en stige i den posisjonen spilleren er før man flytter spilleren. Videre kan man sjekke om det er gulv der eller ikke. Hvis det ikke er gulv der kan man la brukeren falle ned en posisjon uavhengig av hva brukerinputen er.

 

Dette ble veldig kjapp saudokode, men du fårstår sikkert poenget skulle jeg tro.

 

-Vegar

Lenke til kommentar

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...