uusi projecti

Jaa meneillään olevat projektisi tai valmiit pelit muun yhteisön kanssa täällä.
Post Reply
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

uusi projecti

Post by skorpioni-cb »

Code: Select all

Type BULLETS
    Field obj
End Type


FrameLimit 40

map= LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject map,0,0,0.5

ObjAuto=LoadObject("media/car.bmp",72)
SetupCollision ObjAuto,map,2,4,1


guy=LoadObject("Media\guy.bmp",72)
SetupCollision guy,map,2,4,2

bullet=LoadObject("Media\bullet.bmp")
ShowObject bullet,OFF

AddText "Tää on minun oma tekemä."

    Obj=guy

    autossa=False

Repeat 

nopeus#=1.2

If UpKey() Then nopeus = nopeus + 0.1

If LeftKey() Then  TurnObject obj,5
If RightKey() Then  TurnObject obj,-5
If UpKey() Then MoveObject obj,2
If DownKey() Then MoveObject obj,-2

        If autossa=False And KeyDown(28) Then 'Jos painetaan enteriä
       
            PointObject guy,ObjAuto ' Osoitetaan kohti ObjAutoa
            MoveObject guy,5 'Liikutetaan objektia pelaaja kohti autoa
           
            RotateObject guy,GetAngle2(guy,ObjAuto) 'Käännetään pelaaja auton kulmaan
           
            If ObjectsOverlap (guy,ObjAuto) And KeyHit(28) Then 'Jos pelaaja ja auto objekti koskettavat toisiaan
                CloneObjectPosition guy,ObjAuto 'niin kloonataan pelaajan paikka auton paikkaan
                ShowObject guy,OFF ' ja piilotetaan pelaaja
                Obj=ObjAuto
                autossa=True
                ClearKeys
            EndIf
        EndIf
       
        If autossa=True And KeyHit(28) Then
            autossa=False
            CloneObjectPosition guy,Obj
            ShowObject guy,ON
            Obj=guy
            ClearKeys
        EndIf

    'Shoot?
    If KeyDown(cbkeyspace) And reload=0
    
        newBullet.BULLETS= New(BULLETS)
        newBullet\obj=CloneObject(bullet)
        CloneObjectPosition newBullet\obj,ObjAuto
        CloneObjectOrientation newBullet\obj,ObjAuto
        'put the bullet at the end of the barrel
        MoveObject newBullet\obj,24 
    
        reload=4
    EndIf
    
    'Update all BULLETS (move them forward)
    i=0
    For iBullet.BULLETS= Each BULLETS
        
        MoveObject iBullet\obj,6 'speed=6
        
        'delete bullet from collection if it
        'gets too far away
        If Distance2(iBullet\obj,ObjAuto)>200 Then 
            DeleteObject iBullet\obj
            Delete iBullet
        EndIf
        
        i=i+1
        
    Next iBullet
    
    'Update reloading
    If reload>0 Then reload=reload-1
    
    Text 30,30,"Bulets to update: "+i


CloneCameraPosition obj


DrawScreen 

Until EscapeKey()   
jos tässä on virhe niin sanokaa
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
Ris
Active Member
Posts: 142
Joined: Wed Jul 02, 2008 8:27 pm

Re: uusi projecti

Post by Ris »

Eh, ikävä sanoa mutta koodi on aikalailla copypastea. Tuossa koodissa on pieni pätkä tekemästäni autoon menemisestä, joka löytyy seuraavasta linkistä: viewtopic.php?f=10&t=1234&p=19603#p19603

Hyvä kuitenkin että siitä on ollut hyötyä, vaikka koodisi onkin copypastea. Mutta copypastella et tule oppimaan, vaan manuaalia lukemalla ja esimerkkikoodeja katsomalla.

Toki esimerkkikoodeja saa katsoa, mutta copypastetus on aina pahasta, koska siten ei opi mitään, jos ei sisäistä sitä koodia ja lue sitä. Tietysti pitää tietää mitä mikäkin komento tekee. Suositeltavaa olisi myös mainita esimerkkikoodin tekijä jos tekijä niin vaatii. Itse en sitä kuitenkaan vaadi.

Mielestäni tärkeintä on lukea ensin manuaalista: CoolBasic ohjelmointikieli. Niin ja vähän kerrallaan opetella niitä komentoja. Kukaan ei tietenkään voi 1 kerralla oppia kaikkia komentoja.

Itse aloitin lukemalla vähän kerrallaan manuaalia, komento komennolta. Myös niitä manuaalissa olevia tehtäviä kannattaa tehdä, kun tietää mitä tietty komento tekee. Niin ja suosittelisin että et julkistaisi ensimmäisiä pelejäsi koska yleensäkkin kannattaa ensin opetella kunnolla ohjelmointia ja vasta sitten miettiä pelin tekemistä.

Omasta mielestäni projektia tehdessä on tärkeintä miettiä lopputulosta ja sitä mihin omat taidot riittää. Mutta pienestä
on kuitenkin aloitettava. Jokainen on joskus ollut aloittelija. Lisäksi kannattaa testata itse pelin toimivuus, että kaikki toimii niin kuin pitää.

Lisättäköön vielä että kannattaa lukea seuraava posti: viewtopic.php?f=10&t=1228&p=19485#p19485

Niin ja huonosta palautteesta ei kannata ikinä lannistua, vaan kannattaa ottaa opiksi ja yrittää korjata ne tekemänsä virheet. Jokainen tekee virheitä ja virheet kuuluu ihmisyyteen.
Last edited by Ris on Fri Dec 26, 2008 4:03 pm, edited 1 time in total.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: uusi projecti

Post by Koodiapina »

Jaa, että projecti...

Kyllähän tuo jonain tekniikkademona kävisi ihan hyvin, ja varmaan opetti sinulle paljon koodin pastettamisesta. Tuo vasemman yläkulman teksti oli kuitenkin hieman hämäävä kun otetaan huomioon, että koodi ja grafiikat olivat osittain muiden tekemää.

Parannusehdotuksia:
  • Tyhjän auton ei tarvisi osata ampua. Vaikuttaa vähän hassulta ja turhalta "ominaisuudelta".
  • Pelihahmon ei ehkä pitäisi pystyä teleporttaamaan auton katolle?
  • Auton törmäysalue voisi olla pienempi kuin itse ukon. Niiden grafiikatkin kun ovat eri kokoisia.
Post Reply