Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
otto90x
Advanced Member
Posts: 349
Joined: Mon Aug 27, 2007 9:00 pm
Location: Lapinjärvi, Finland
Contact:

Re: Tyhmät kysymykset

Post by otto90x » Fri Sep 26, 2008 2:31 pm

Nähdäkseni vika on siinä että kun sinulla on ehtolause

Code: Select all

If kenttä = 2 Then Gosub map2
niin tämähän on tosi vaikka se olisi kerran suoritettu, eli jollet muuta kenttä muuttujaa niin ohjelma lataa tässä kohtaa aina kakkoskentän uudestaan ja poistaa kaikki vihut ja lataa ukon poistamatta vanhaa. Eli voit vaikka pistää tuohon map2: jälkeen että kenttä = 1
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.

SuojelusPerkele
Newcomer
Posts: 37
Joined: Tue Sep 09, 2008 4:17 pm

Re: Tyhmät kysymykset

Post by SuojelusPerkele » Fri Sep 26, 2008 4:13 pm

Tyhmä kysymys, mutta tässäpä olisi: Miten saan laitettua että jos vihu koskee räjähdystä niin se poistetaan? Kokeillut olen vaikka millä keinolla vaan ei meinaa luonnistua..
Blooddrunk Game Industry [BGI] :

Unlimited 1.0 = 100%
-Päivityksiä suunnitteilla

Kollaa kestää!
-Suunnitteluvaiheessa
-Tower defence -tyylinen, torju kommunistivyöryt kannaksella
_____
Vertos

User avatar
MAVmaggot
Advanced Member
Posts: 468
Joined: Fri Aug 31, 2007 10:18 pm
Location: bitspace

Re: Tyhmät kysymykset

Post by MAVmaggot » Fri Sep 26, 2008 4:19 pm

Riippuu vähän miten teet rähäjdyksen, jos teet sen objektina, niin laita että: If ObjectsOverLap(räjähdys, vihu) Then DeleteObject vihu

SuojelusPerkele
Newcomer
Posts: 37
Joined: Tue Sep 09, 2008 4:17 pm

Re: Tyhmät kysymykset

Post by SuojelusPerkele » Fri Sep 26, 2008 4:55 pm

MAVmaggot wrote:Riippuu vähän miten teet rähäjdyksen, jos teet sen objektina, niin laita että: If ObjectsOverLap(räjähdys, vihu) Then DeleteObject vihu
Kokeilin tuotakin jossain välissä mutta ei toiminut..?
Blooddrunk Game Industry [BGI] :

Unlimited 1.0 = 100%
-Päivityksiä suunnitteilla

Kollaa kestää!
-Suunnitteluvaiheessa
-Tower defence -tyylinen, torju kommunistivyöryt kannaksella
_____
Vertos

User avatar
MAVmaggot
Advanced Member
Posts: 468
Joined: Fri Aug 31, 2007 10:18 pm
Location: bitspace

Re: Tyhmät kysymykset

Post by MAVmaggot » Fri Sep 26, 2008 5:20 pm

Koodissasi on jotain häikkää, pastee vaikka tänne.

SuojelusPerkele
Newcomer
Posts: 37
Joined: Tue Sep 09, 2008 4:17 pm

Re: Tyhmät kysymykset

Post by SuojelusPerkele » Sat Sep 27, 2008 7:40 am

Jees, tässä on ilman valikoita sun muita tämä koodinpätkäni. Eli neuvotteko tuon vihun poistamisen jos se koskee räjähdykseen?

Code: Select all

PELI:
  
   FrameLimit 45
  

    'tyypit ja niiden kentät
    Type zombis'nimi
        Field obj'objecti
        Field hp'energiat
        Field dmg'vahinko
        Field speed'nopeus
        Field score'pisteet
        Field id'minkälainen zombie on
      EndType
    Type bullets'ammukset
        Field obj
        Field hp
        Field dmg
        Field speed
        Field id
      EndType
    Type upgs'asepäivitykset
        Field obj
        Field hp
        Field id
    EndType
   Type c4s
      Field obj
      Field dmg
      Field speed
      Field id
      Field hp
    EndType
    
    'ladataan media
    gun_sound=LoadSound ("unlimited\media\thompson.wav")
    map=LoadMap("unlimited\media\cdm2.til","unlimited\media\tileset.bmp")
    hero=LoadObject("unlimited\media\soldier.bmp",72)
    pelimusa=PlaySound ("unlimited\media\HGW_BogA_Tankdefense_v1.mp3")
    zombi=LoadObject("unlimited\media\guy.bmp",72)
    cow=LoadObject("unlimited\media\cow.bmp",32)
    bullet=LoadObject("unlimited\media\bullet.bmp",32)
    enemy_sound=LoadSound ("unlimited\media\kuolema2.wav")
    enemy_sound2=LoadSound ("unlimited\media\kuolema.mp3")
    enemy_sound3=LoadSound ("unlimited\media\kuolema3.wav")
    c4=LoadObject("Unlimited\media\c4.bmp")
    heitto=LoadSound ("Unlimited\media\whip.wav")
    pamaus=LoadSound ("Unlimited\media\grenade.wav")
    explow=LoadAnimObject("unlimited\media\bang.bmp",32,32,0,8)
        ShowObject bullet,OFF
        ShowObject zombi,OFF
        ShowObject cow,OFF
        ShowObject c4,OFF 
        ShowObject explow,OFF 
        
    SetupCollision hero,map,1,4,2

    hp=500'sinun energiat
    powupg=12'Aseen aloitus teho
    speedupg=5'aseen aloitus nopeus


    Repeat''''''''''''''''''''''''''''''

   If SoundPlaying (pelimusa)=0 Then 
    pelimusa= PlaySound("unlimited\media\HGW_BogA_Tankdefense_v1.mp3")
   EndIf 
        
    If hp>0 Then 'jos on energiaa niin suritetaan kaikki
    CloneCameraPosition hero
    MoveObject hero,UpKey()*6-DownKey()*4
    TurnObject hero,LeftKey()*5-RightKey()*5
    LoopObject explow,0,8,0.2
    'Aseet''''''''''''''''''''''''''''''''''''''''
     If KeyHit (CBKEYx) Then 
        newc4.c4S= New(c4S)
            newc4\obj=CloneObject(c4)
            CloneObjectPosition newc4\obj,hero
            CloneObjectOrientation newc4\obj,hero
            newc4\hp=10
            newc4\speed=10
            newc4\dmg=150
            MoveObject newc4\obj,24   
            reload=15
     EndIf 
     
For ic4.c4S= Each c4S 

        If KeyHit(CBKEYz) And ic4\speed=0 Then ic4\hp=-1
        ic4\speed-1
        If ic4\speed<1 Then ic4\speed=0
        MoveObject ic4\obj,ic4\speed
        If ic4\hp<1 Then           
                CloneObjectPosition explow,ic4\obj'siirretään räjähdys samaan paikkaan c4n kanssa
                If KeyHit(CBKEYz) And ic4\speed=0 Then PlaySound pamaus
                explow_time=30'räjähdysaika
                ShowObject explow,ON'näytetään räjähdys
                DeleteObject ic4\obj
                Delete ic4           
        EndIf
    Next ic4
    If explow_time<0 Then ShowObject explow,OFF'jos räjähdysaika loppuu niin piilotetaan räjähdys
    explow_time-1
    
   
     
    If KeyDown(CBKEYspace) And reload<0
        PlaySound gun_sound,40
        newBullet.BULLETS= New(BULLETS)
        newBullet\obj=CloneObject(bullet)
        newbullet\dmg=powupg
        newbullet\speed=speedupg
        CloneObjectPosition newBullet\obj,hero
        CloneObjectOrientation newbullet\obj,hero
        MoveObject newBullet\obj,24
        reload=5
        SetupCollision newbullet\obj,map,1,4,2
    EndIf
        
    reload-1
    For iBullet.BULLETS= Each BULLETS
    If CountCollisions(ibullet\obj) Then ibullet\hp-32
    MoveObject iBullet\obj,6'likutetaan luotia
    Next iBullet
    'Asepäivitykset''''''''''''''''''''''''''''''''
   
   
    'zombit''''''''''''''''''''''''''''''''''''''''
    If luo>130'jos luonti on suurempi kuin 130, niin tehdään zombie
        newzombi.zombiS= New(zombiS)
        newzombi\obj=CloneObject(zombi)
        'Asetetaan vihollinen kohtaan missä ei ole törmäystä
        For y=1 To MapWidth()
        For x=1 To MapWidth()
            If GetMap2(2,x,y)=0 Then PositionObject newzombi\obj,Rand(-600,500),Rand(-600,600)
        Next x
        Next y
       
        newzombi\id=Rand(1,2)
        If newzombi\id =1'Ykkös zombi
            newzombi\hp=Rand(90,110):newzombi\dmg=Rand(1,3):newzombi\speed=Rand(2,3):newzombi\score=Rand(10,20)'Asetetaan zombielle kentät
        EndIf
        If newzombi\id =2'kakkos zombi
            PaintObject newzombi\obj,cow
            newzombi\hp=Rand(110,130):newzombi\dmg=Rand(2,4):newzombi\speed=Rand(1,2):newzombi\score=Rand(15,25)'toiselle myös
        EndIf
        SetupCollision newzombi\obj,map,1,4,2
        luo=0
    EndIf
    luo+1
    For izombi.zombiS= Each zombiS 'Aloitetaan zombien läpikäynti
    'Typerä tekoäly
    sidle=Rand(-20,20)
    If CountCollisions(izombi\obj) Then MoveObject izombi\obj,0,sidle 'jos kosketaan seinään, niin stepataan

    PointObject izombi\obj,hero'zombi tähtää pelaajaan
    If ObjectsOverlap(izombi\obj,hero) Then hp-izombi\dmg
    For ibullet.bullets=Each bullets
    If ObjectsOverlap(ibullet\obj,izombi\obj) Then izombi\hp-ibullet\dmg Then ibullet\hp=-1
    If Distance2(iBullet\obj,hero)>600 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus
       DeleteObject iBullet\obj
       Delete iBullet
     EndIf
   Next ibullet

    MoveObject izombi\obj,izombi\speed 'liikutetaan zombia nopeutensa verran

    if izombi\hp<0
  ääni=rand(1,3)
  select ääni 'soita ääni
    case 1
      playsound enemy_sound
    case 2
      playsound enemy_sound2
    case 3
      playsound enemy_sound3
  EndSelect

        score+izombi\score
        DeleteObject izombi\obj
        Delete izombi
    EndIf
    Next izombi
    EndIf

    DrawGame'ettei teksti jää kartan alle
    Color cbwhite
    Text 530,10,"FPS "+FPS() 'tulosta FPS
    Text 470,30,"(FPS limit = 45)"
    Text 10,10,"HP "+hp
    Text 10,20,"score "+score
    If score<50 Then Text 10,40,"rank: MAGGOT"
    If score>50 And score<150 Then Text 10,40,"rank: PRIVATE"
    If score>150 And score<300 Then Text 10,40,"rank: CORPORAL"
    If score>300 And score<500 Then Text 10,40,"rank: SERGEANT"
    If score>500 And score<750 Then Text 10,40,"rank: LIEUTENANT"
    If score>750 And score<1000 Then Text 10,40,"rank: CAPTAIN"
    If score>1000 And score<1300 Then Text 10,40,"rank: MAJOR"
    If score>1300 And score<1650 Then Text 10,40,"rank: COLONEL"
    If score>1650 And score<2000 Then Text 10,40,"rank: BRIGADIER"
    If score>2000 Then Text 10,40,"rank: GENERAL"
      
   DrawScreen

    Forever 
Last edited by SuojelusPerkele on Sat Sep 27, 2008 12:10 pm, edited 1 time in total.
Blooddrunk Game Industry [BGI] :

Unlimited 1.0 = 100%
-Päivityksiä suunnitteilla

Kollaa kestää!
-Suunnitteluvaiheessa
-Tower defence -tyylinen, torju kommunistivyöryt kannaksella
_____
Vertos

User avatar
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset

Post by rami123 » Sat Sep 27, 2008 11:39 am

tämä on aika tyhmä kysymys : miten tehdään vihuille healthi? :roll:

User avatar
KillBurn
Advanced Member
Posts: 339
Joined: Wed Aug 29, 2007 5:02 pm

Re: Tyhmät kysymykset

Post by KillBurn » Sat Sep 27, 2008 1:02 pm

rami123 wrote:tämä on aika tyhmä kysymys : miten tehdään vihuille healthi? :roll:
Tässä tekemässäni esimerkissä on energiat vihuilla katso siitä.siinä on paljon muutakin.

Code: Select all

    FrameLimit 40
    SCREEN 800,600
    'tyypit ja niiden kentät
    Type zombis'nimi
    Field obj'objecti
    Field hp'energiat
    Field dmg'vahinko
    Field speed'nopeus
    Field score'pisteet
    Field id'minkälainen zombie on
    EndType
    Type bullets'ammukset
    Field obj
    Field hp
    Field dmg
    Field speed
    Field id
    EndType
    Type upgs'asepäivitykset
    Field obj
    Field hp
    Field id
    EndType
    'ladataan media
    gun_sound=LoadSound("media\shot.wav")
    upg_sound=LoadSound("media\whip.wav")
    enemy_sound=LoadSound("media\sheep.wav")
    map=LoadMap("media\cdm2.til","media\tileset.bmp")
    hero=LoadObject("media\soldier.bmp",32)
    zombi=LoadObject("media\guy.bmp",32)
    cow=LoadObject("media\cow.bmp",32)
    bullet=LoadObject("media\bullet.bmp",32)
    upg=LoadObject("media\bullet.bmp")
    topower=LoadObject("media\fireball.bmp")
    tospeed=LoadObject("media\bigbullet.bmp")
    medikit=LoadObject("media\tatti.bmp")
        ShowObject topower,OFF
        ShowObject tospeed,OFF   
        ShowObject bullet,OFF
        ShowObject zombi,OFF
        ShowObject cow,OFF
        ShowObject medikit,OFF
       
    SetupCollision hero,map,1,4,2

    hp=500'sinun energiat
    powupg=12'Aseen aloitus teho
    speedupg=5'aseen aloitus nopeus

    Repeat''''''''''''''''''''''''''''''

    If hp>0 Then 'jos on energiaa niin suritetaan kaikki
    CloneCameraPosition hero
    MoveObject hero,UpKey()*6-DownKey()*4
    TurnObject hero,LeftKey()*5-RightKey()*5
    'Aseet''''''''''''''''''''''''''''''''''''''''
    If KeyDown(CBKEYz) And reload<0
        PlaySound gun_sound,40
        newBullet.BULLETS= New(BULLETS)
        newBullet\obj=CloneObject(bullet)
        newbullet\dmg=powupg
        newbullet\speed=speedupg
        CloneObjectPosition newBullet\obj,hero
        CloneObjectOrientation newbullet\obj,hero
        MoveObject newBullet\obj,24
        reload=15
        SetupCollision newbullet\obj,map,1,4,2
    EndIf
    reload-1
    For iBullet.BULLETS= Each BULLETS
    If CountCollisions(ibullet\obj) Then ibullet\hp-32
    MoveObject iBullet\obj,6'llikutetaan luotia

    Next iBullet
    'Asepäivitykset''''''''''''''''''''''''''''''''
    If uusi>220
        newupg.upgS= New(upgS)'thdään uusi
        newupg\obj=CloneObject(upg)
        newupg\hp=100
        newupg\id=Rand(1,3)
        If Newupg\id=1 Then PaintObject newupg\obj,topower
        If Newupg\id=2 Then PaintObject Newupg\obj,tospeed 
        If Newupg\id=3 Then PaintObject Newupg\obj,medikit
        'Asetetaan tavara kohtaan missä ei ole törmäystä
        For y=1 To MapWidth()
        For x=1 To MapWidth()
            If GetMap2(2,x,y)=0 Then PositionObject newupg\obj,Rand(-600,500),Rand(-600,600)
        Next x
        Next y
       
        uusi=0
    EndIf
    uusi+1
    For iupg.upgS= Each upgS'aloitetaan kaikkien päivitysten käsittely
    If ObjectsOverlap(iupg\obj,hero) Then iupg\hp=-1'jos törmätään niin tuhotaan tavara
    If iupg\hp<0 Then'jos tuhotaan tavara
        PlaySound upg_sound'soitetaan ääni
        If iupg\id=1 Then powupg+1'lisätään aseen thoa
        If iupg\id=1 Then speedupg+1'nopeutta
        If iupg\id=3 Then hp+50'lisää energiaa
        DeleteObject iupg\obj'poistetaan tavara
        Delete iupg'ja sen jasen
    EndIf
    Next iupg
    'zombit''''''''''''''''''''''''''''''''''''''''
    If luo>130'jos luonti on suurempi kuin 130, niin tehdään zombie
        newzombi.zombiS= New(zombiS)
        newzombi\obj=CloneObject(zombi)
        'Asetetaan vihollinen kohtaan missä ei ole törmäystä
        For y=1 To MapWidth()
        For x=1 To MapWidth()
            If GetMap2(2,x,y)=0 Then PositionObject newzombi\obj,Rand(-600,500),Rand(-600,600)
        Next x
        Next y
       
        newzombi\id=Rand(1,2)
        If newzombi\id =1'Ykkös zombi
            newzombi\hp=Rand(90,110):newzombi\dmg=Rand(1,3):newzombi\speed=Rand(2,3):newzombi\score=Rand(10,20)'Asetetaan zombielle kentät
        EndIf
        If newzombi\id =2'kakkos zombi
            PaintObject newzombi\obj,cow
            newzombi\hp=Rand(110,130):newzombi\dmg=Rand(2,4):newzombi\speed=Rand(1,2):newzombi\score=Rand(15,25)'toiselle myös
        EndIf
        SetupCollision newzombi\obj,map,1,4,2
        luo=0
    EndIf
    luo+1
    For izombi.zombiS= Each zombiS'Aloitetaan zombien läpikäynti
    'Typerä tekoäly
    sidle=Rand(-20,20)
    If CountCollisions(izombi\obj) Then MoveObject izombi\obj,0,sidle'jos kosketaan deinään, niin stepataan

    PointObject izombi\obj,hero'zombi tähtää pelaajaan
    If ObjectsOverlap(izombi\obj,hero) Then hp-izombi\dmg

    For ibullet.bullets=Each bullets
    If ObjectsOverlap(ibullet\obj,izombi\obj) Then izombi\hp-ibullet\dmg Then ibullet\hp=-1
    If Distance2(iBullet\obj,hero)>600 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus
        DeleteObject iBullet\obj
        Delete iBullet
    EndIf
    Next ibullet

    MoveObject izombi\obj,izombi\speed'liikutetaan zombia nopeutensa verran

    If izombi\hp<0 Then 'jos zombin energiat loppuu, niin tapetaan se ja annetaan pisteet
        PlaySound enemy_sound
        score+izombi\score
        DeleteObject izombi\obj
        Delete izombi
    EndIf
    Next izombi
    EndIf

    DrawGame'ettei teksti jää kartan alle
    Text 10,10,"HP "+hp
    Text 10,20,"score "+score
    If hp<0 Then Text 350,300,"GAME OVER"
    DrawScreen

    Forever 
Jos et ymmärtänyt niin, type vihuun luodaan kenttä Hp ja vihua luotaessa se asetetaan tiettyyn arvoon.
Sumu Games: Sam, Ur eye!

User avatar
KillBurn
Advanced Member
Posts: 339
Joined: Wed Aug 29, 2007 5:02 pm

Re: Tyhmät kysymykset

Post by KillBurn » Sat Sep 27, 2008 1:05 pm

SuojelusPerkele wrote:Jees, tässä on ilman valikoita sun muita tämä koodinpätkäni. Eli neuvotteko tuon vihun poistamisen jos se koskee räjähdykseen?

Code: Select all

PELI:
  
   FrameLimit 45
  

    'tyypit ja niiden kentät
    Type zombis'nimi
        Field obj'objecti
        Field hp'energiat
        Field dmg'vahinko
        Field speed'nopeus
        Field score'pisteet
        Field id'minkälainen zombie on
      EndType
    Type bullets'ammukset
        Field obj
        Field hp
        Field dmg
        Field speed
        Field id
      EndType
    Type upgs'asepäivitykset
        Field obj
        Field hp
        Field id
    EndType
   Type c4s
      Field obj
      Field dmg
      Field speed
      Field id
      Field hp
    EndType
    
    'ladataan media
    gun_sound=LoadSound ("unlimited\media\thompson.wav")
    map=LoadMap("unlimited\media\cdm2.til","unlimited\media\tileset.bmp")
    hero=LoadObject("unlimited\media\soldier.bmp",72)
    pelimusa=PlaySound ("unlimited\media\HGW_BogA_Tankdefense_v1.mp3")
    zombi=LoadObject("unlimited\media\guy.bmp",72)
    cow=LoadObject("unlimited\media\cow.bmp",32)
    bullet=LoadObject("unlimited\media\bullet.bmp",32)
    enemy_sound=LoadSound ("unlimited\media\kuolema2.wav")
    enemy_sound2=LoadSound ("unlimited\media\kuolema.mp3")
    enemy_sound3=LoadSound ("unlimited\media\kuolema3.wav")
    c4=LoadObject("Unlimited\media\c4.bmp")
    heitto=LoadSound ("Unlimited\media\whip.wav")
    pamaus=LoadSound ("Unlimited\media\grenade.wav")
    explow=LoadAnimObject("unlimited\media\bang.bmp",32,32,0,8)
        ShowObject bullet,OFF
        ShowObject zombi,OFF
        ShowObject cow,OFF
        ShowObject c4,OFF 
        ShowObject explow,OFF 
        
    SetupCollision hero,map,1,4,2

    hp=500'sinun energiat
    powupg=12'Aseen aloitus teho
    speedupg=5'aseen aloitus nopeus


    Repeat''''''''''''''''''''''''''''''

   If SoundPlaying (pelimusa)=0 Then 
    pelimusa= PlaySound("unlimited\media\HGW_BogA_Tankdefense_v1.mp3")
   EndIf 
        
    If hp>0 Then 'jos on energiaa niin suritetaan kaikki
    CloneCameraPosition hero
    MoveObject hero,UpKey()*6-DownKey()*4
    TurnObject hero,LeftKey()*5-RightKey()*5
    LoopObject explow,0,8,0.2
    'Aseet''''''''''''''''''''''''''''''''''''''''
     If KeyHit (CBKEYx) Then 
        newc4.c4S= New(c4S)
            newc4\obj=CloneObject(c4)
            CloneObjectPosition newc4\obj,hero
            CloneObjectOrientation newc4\obj,hero
            newc4\hp=10
            newc4\speed=10
            newc4\dmg=150
            MoveObject newc4\obj,24   
            reload=15
     EndIf 
     
For ic4.c4S= Each c4S 

        If KeyHit(CBKEYz) And ic4\speed=0 Then ic4\hp=-1
        ic4\speed-1
        If ic4\speed<1 Then ic4\speed=0
        MoveObject ic4\obj,ic4\speed
        If ic4\hp<1 Then           
                CloneObjectPosition explow,ic4\obj'siirretään räjähdys samaan paikkaan c4n kanssa
                If KeyHit(CBKEYz) And ic4\speed=0 Then PlaySound pamaus
                explow_time=30'räjähdysaika
                ShowObject explow,ON'näytetään räjähdys
                DeleteObject ic4\obj
                Delete ic4           
        EndIf
    Next ic4
    If explow_time<0 Then ShowObject explow,OFF'jos räjähdysaika loppuu niin piilotetaan räjähdys
    explow_time-1
    
   
     
    If KeyDown(CBKEYspace) And reload<0
        PlaySound gun_sound,40
        newBullet.BULLETS= New(BULLETS)
        newBullet\obj=CloneObject(bullet)
        newbullet\dmg=powupg
        newbullet\speed=speedupg
        CloneObjectPosition newBullet\obj,hero
        CloneObjectOrientation newbullet\obj,hero
        MoveObject newBullet\obj,24
        reload=5
        SetupCollision newbullet\obj,map,1,4,2
    EndIf
        
    reload-1
    For iBullet.BULLETS= Each BULLETS
    If CountCollisions(ibullet\obj) Then ibullet\hp-32
    MoveObject iBullet\obj,6'likutetaan luotia
    Next iBullet
    'Asepäivitykset''''''''''''''''''''''''''''''''
   
   
    'zombit''''''''''''''''''''''''''''''''''''''''
    If luo>130'jos luonti on suurempi kuin 130, niin tehdään zombie
        newzombi.zombiS= New(zombiS)
        newzombi\obj=CloneObject(zombi)
        'Asetetaan vihollinen kohtaan missä ei ole törmäystä
        For y=1 To MapWidth()
        For x=1 To MapWidth()
            If GetMap2(2,x,y)=0 Then PositionObject newzombi\obj,Rand(-600,500),Rand(-600,600)
        Next x
        Next y
       
        newzombi\id=Rand(1,2)
        If newzombi\id =1'Ykkös zombi
            newzombi\hp=Rand(90,110):newzombi\dmg=Rand(1,3):newzombi\speed=Rand(2,3):newzombi\score=Rand(10,20)'Asetetaan zombielle kentät
        EndIf
        If newzombi\id =2'kakkos zombi
            PaintObject newzombi\obj,cow
            newzombi\hp=Rand(110,130):newzombi\dmg=Rand(2,4):newzombi\speed=Rand(1,2):newzombi\score=Rand(15,25)'toiselle myös
        EndIf
        SetupCollision newzombi\obj,map,1,4,2
        luo=0
    EndIf
    luo+1
    For izombi.zombiS= Each zombiS 'Aloitetaan zombien läpikäynti
    'Typerä tekoäly
    sidle=Rand(-20,20)
    If CountCollisions(izombi\obj) Then MoveObject izombi\obj,0,sidle 'jos kosketaan seinään, niin stepataan

    PointObject izombi\obj,hero'zombi tähtää pelaajaan
    If ObjectsOverlap(izombi\obj,hero) Then hp-izombi\dmg
    For ibullet.bullets=Each bullets
    If ObjectsOverlap(ibullet\obj,izombi\obj) Then izombi\hp-ibullet\dmg Then ibullet\hp=-1
    If Distance2(iBullet\obj,hero)>600 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus
       DeleteObject iBullet\obj
       Delete iBullet
     EndIf
   Next ibullet

    MoveObject izombi\obj,izombi\speed 'liikutetaan zombia nopeutensa verran

    if izombi\hp<0
  ääni=rand(1,3)
  select ääni 'soita ääni
    case 1
      playsound enemy_sound
    case 2
      playsound enemy_sound2
    case 3
      playsound enemy_sound3
  EndSelect

        score+izombi\score
        DeleteObject izombi\obj
        Delete izombi
    EndIf
    Next izombi
    EndIf

    DrawGame'ettei teksti jää kartan alle
    Color cbwhite
    Text 530,10,"FPS "+FPS() 'tulosta FPS
    Text 470,30,"(FPS limit = 45)"
    Text 10,10,"HP "+hp
    Text 10,20,"score "+score
    If score<50 Then Text 10,40,"rank: MAGGOT"
    If score>50 And score<150 Then Text 10,40,"rank: PRIVATE"
    If score>150 And score<300 Then Text 10,40,"rank: CORPORAL"
    If score>300 And score<500 Then Text 10,40,"rank: SERGEANT"
    If score>500 And score<750 Then Text 10,40,"rank: LIEUTENANT"
    If score>750 And score<1000 Then Text 10,40,"rank: CAPTAIN"
    If score>1000 And score<1300 Then Text 10,40,"rank: MAJOR"
    If score>1300 And score<1650 Then Text 10,40,"rank: COLONEL"
    If score>1650 And score<2000 Then Text 10,40,"rank: BRIGADIER"
    If score>2000 Then Text 10,40,"rank: GENERAL"
      
   DrawScreen

    Forever 
If objectsoverlap (explow,izombie\obj) then izombie\hp=-1

siis noin.Tuon laitat For izombi.zombiS= Each zombiS alle.
Tuplapostaus...Ja vielä molemmat liittyi mun räiskintäpeli esimerkkiin
Sumu Games: Sam, Ur eye!

SuojelusPerkele
Newcomer
Posts: 37
Joined: Tue Sep 09, 2008 4:17 pm

Re: Tyhmät kysymykset

Post by SuojelusPerkele » Sat Sep 27, 2008 1:23 pm

Kiitoksia tuosta, Killburn. Neuvoosi liittyen tiedätkö miten saan korjattua sellaisen bugin, että kun tuo c4 on räjähtänyt ja mahdollisesti listinyt kasan vihuja, niin senkin jälkeen kun vihut juoksee siihen kohtaan jossa se on räjähtänyt aiemmin, niin ne kuolevat yhä?
Blooddrunk Game Industry [BGI] :

Unlimited 1.0 = 100%
-Päivityksiä suunnitteilla

Kollaa kestää!
-Suunnitteluvaiheessa
-Tower defence -tyylinen, torju kommunistivyöryt kannaksella
_____
Vertos

User avatar
KillBurn
Advanced Member
Posts: 339
Joined: Wed Aug 29, 2007 5:02 pm

Re: Tyhmät kysymykset

Post by KillBurn » Sat Sep 27, 2008 1:33 pm

Siinä:
If objectsoverlap (explow,izombie\obj) and explow_time>0 then izombie\hp=-1
Nyt tarkistetaan että räjähdys on päällä.
Sumu Games: Sam, Ur eye!

SuojelusPerkele
Newcomer
Posts: 37
Joined: Tue Sep 09, 2008 4:17 pm

Re: Tyhmät kysymykset

Post by SuojelusPerkele » Sat Sep 27, 2008 1:43 pm

KillBurn wrote:Siinä:
If objectsoverlap (explow,izombie\obj) and explow_time>0 then izombie\hp=-1
Nyt tarkistetaan että räjähdys on päällä.

Kiitos! Mihin minä joutusin jos ette olisi neuvomassa.. :)
Blooddrunk Game Industry [BGI] :

Unlimited 1.0 = 100%
-Päivityksiä suunnitteilla

Kollaa kestää!
-Suunnitteluvaiheessa
-Tower defence -tyylinen, torju kommunistivyöryt kannaksella
_____
Vertos

User avatar
Ozcar
Advanced Member
Posts: 439
Joined: Mon Aug 27, 2007 8:43 pm
Location: Helsinki

Re: Tyhmät kysymykset

Post by Ozcar » Sat Sep 27, 2008 1:48 pm

Code: Select all

        If KeyHit(CBKEYz) And ic4\speed=0 Then ic4\hp=-1
        ic4\speed-1
        If ic4\speed<1 Then ic4\speed=0
        MoveObject ic4\obj,ic4\speed
        If ic4\hp<1 Then           
                CloneObjectPosition explow,ic4\obj'siirretään räjähdys samaan paikkaan c4n kanssa
                If KeyHit(CBKEYz) And ic4\speed=0 Then PlaySound pamaus
                explow_time=30'räjähdysaika
                ShowObject explow,ON'näytetään räjähdys
                DeleteObject ic4\obj
                Delete ic4           
        EndIf
    Next ic4
    If explow_time<0 Then ShowObject explow,OFF'jos räjähdysaika loppuu niin piilotetaan räjähdys
    explow_time-1

Arvaapa kahdesti, tarkoittaako piilottaminen ja poistaminen samaa asiaa ;). Se räjähdys on yhä siellä, zombirukat vain eivät pysty moista enää näkemään. Eli siis suosittelen enemmän tekemään emäräjähdysobjektin, jonka kloonaat aina uuden posahduksen paikalle, ja kun explowtime kuluu loppuun, niin poistat tämän räjähdyskopion. Jos mahdollisuutena on pudotella useampia seenelosia kerralla räjäytettäväksi, niin kannattaa tehdä räjähdyskin typeillä tai vähintään taulukoilla, ellet halua luoda 20 eri muuttujan purkkaviritelmiä.
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.

Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.

User avatar
anttimoi
Newcomer
Posts: 25
Joined: Mon Aug 11, 2008 7:33 pm

Re: Tyhmät kysymykset

Post by anttimoi » Sat Sep 27, 2008 2:50 pm

On päässy unohtuun miten sai ohjelman sulkemisen escistä pois.
Coolbasic roguelike-projekti menossa 8)
Progress bar @@@@@10%@@@@@
Pahasti jäätymässä...

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Tyhmät kysymykset

Post by Koodiapina » Sat Sep 27, 2008 2:50 pm

Code: Select all

SafeExit 0
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 3:40 pm
Location: Lempäälä

Re: Tyhmät kysymykset

Post by kaneli2000 » Sat Sep 27, 2008 2:56 pm

Voisiko joku selittää miten CommandLine() komentoa käytetään? Coolbasicissa kun ei ole siitä esimerkkiä.
I see the rainbow rising

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Tyhmät kysymykset

Post by Koodiapina » Sat Sep 27, 2008 3:13 pm

Code: Select all

if instr(commandline(),"-tulosta_helloworld") then
  print "Hello, world!"
  waitkey
endif
Tuo koodi tulostaa "Hello world", jos ohjelma on käynnistetty esim.

Code: Select all

munpeli.exe -tulosta_helloworld
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja » Sat Sep 27, 2008 3:19 pm

Grandin oivaan esimerkkiin lisäyksenä, että testatessaan tämmöisiä voi CB:n editorilla asettaa käynnistysparametrit: Project->Program Command Line...

User avatar
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset

Post by rami123 » Sat Sep 27, 2008 4:00 pm

KillBurn wrote:
rami123 wrote:tämä on aika tyhmä kysymys : miten tehdään vihuille healthi? :roll:
Tässä tekemässäni esimerkissä on energiat vihuilla katso siitä.siinä on paljon muutakin.

Code: Select all

    FrameLimit 40
    SCREEN 800,600
    'tyypit ja niiden kentät
    Type zombis'nimi
    Field obj'objecti
    Field hp'energiat
    Field dmg'vahinko
    Field speed'nopeus
    Field score'pisteet
    Field id'minkälainen zombie on
    EndType
    Type bullets'ammukset
    Field obj
    Field hp
    Field dmg
    Field speed
    Field id
    EndType
    Type upgs'asepäivitykset
    Field obj
    Field hp
    Field id
    EndType
    'ladataan media
    gun_sound=LoadSound("media\shot.wav")
    upg_sound=LoadSound("media\whip.wav")
    enemy_sound=LoadSound("media\sheep.wav")
    map=LoadMap("media\cdm2.til","media\tileset.bmp")
    hero=LoadObject("media\soldier.bmp",32)
    zombi=LoadObject("media\guy.bmp",32)
    cow=LoadObject("media\cow.bmp",32)
    bullet=LoadObject("media\bullet.bmp",32)
    upg=LoadObject("media\bullet.bmp")
    topower=LoadObject("media\fireball.bmp")
    tospeed=LoadObject("media\bigbullet.bmp")
    medikit=LoadObject("media\tatti.bmp")
        ShowObject topower,OFF
        ShowObject tospeed,OFF   
        ShowObject bullet,OFF
        ShowObject zombi,OFF
        ShowObject cow,OFF
        ShowObject medikit,OFF
       
    SetupCollision hero,map,1,4,2

    hp=500'sinun energiat
    powupg=12'Aseen aloitus teho
    speedupg=5'aseen aloitus nopeus

    Repeat''''''''''''''''''''''''''''''

    If hp>0 Then 'jos on energiaa niin suritetaan kaikki
    CloneCameraPosition hero
    MoveObject hero,UpKey()*6-DownKey()*4
    TurnObject hero,LeftKey()*5-RightKey()*5
    'Aseet''''''''''''''''''''''''''''''''''''''''
    If KeyDown(CBKEYz) And reload<0
        PlaySound gun_sound,40
        newBullet.BULLETS= New(BULLETS)
        newBullet\obj=CloneObject(bullet)
        newbullet\dmg=powupg
        newbullet\speed=speedupg
        CloneObjectPosition newBullet\obj,hero
        CloneObjectOrientation newbullet\obj,hero
        MoveObject newBullet\obj,24
        reload=15
        SetupCollision newbullet\obj,map,1,4,2
    EndIf
    reload-1
    For iBullet.BULLETS= Each BULLETS
    If CountCollisions(ibullet\obj) Then ibullet\hp-32
    MoveObject iBullet\obj,6'llikutetaan luotia

    Next iBullet
    'Asepäivitykset''''''''''''''''''''''''''''''''
    If uusi>220
        newupg.upgS= New(upgS)'thdään uusi
        newupg\obj=CloneObject(upg)
        newupg\hp=100
        newupg\id=Rand(1,3)
        If Newupg\id=1 Then PaintObject newupg\obj,topower
        If Newupg\id=2 Then PaintObject Newupg\obj,tospeed 
        If Newupg\id=3 Then PaintObject Newupg\obj,medikit
        'Asetetaan tavara kohtaan missä ei ole törmäystä
        For y=1 To MapWidth()
        For x=1 To MapWidth()
            If GetMap2(2,x,y)=0 Then PositionObject newupg\obj,Rand(-600,500),Rand(-600,600)
        Next x
        Next y
       
        uusi=0
    EndIf
    uusi+1
    For iupg.upgS= Each upgS'aloitetaan kaikkien päivitysten käsittely
    If ObjectsOverlap(iupg\obj,hero) Then iupg\hp=-1'jos törmätään niin tuhotaan tavara
    If iupg\hp<0 Then'jos tuhotaan tavara
        PlaySound upg_sound'soitetaan ääni
        If iupg\id=1 Then powupg+1'lisätään aseen thoa
        If iupg\id=1 Then speedupg+1'nopeutta
        If iupg\id=3 Then hp+50'lisää energiaa
        DeleteObject iupg\obj'poistetaan tavara
        Delete iupg'ja sen jasen
    EndIf
    Next iupg
    'zombit''''''''''''''''''''''''''''''''''''''''
    If luo>130'jos luonti on suurempi kuin 130, niin tehdään zombie
        newzombi.zombiS= New(zombiS)
        newzombi\obj=CloneObject(zombi)
        'Asetetaan vihollinen kohtaan missä ei ole törmäystä
        For y=1 To MapWidth()
        For x=1 To MapWidth()
            If GetMap2(2,x,y)=0 Then PositionObject newzombi\obj,Rand(-600,500),Rand(-600,600)
        Next x
        Next y
       
        newzombi\id=Rand(1,2)
        If newzombi\id =1'Ykkös zombi
            newzombi\hp=Rand(90,110):newzombi\dmg=Rand(1,3):newzombi\speed=Rand(2,3):newzombi\score=Rand(10,20)'Asetetaan zombielle kentät
        EndIf
        If newzombi\id =2'kakkos zombi
            PaintObject newzombi\obj,cow
            newzombi\hp=Rand(110,130):newzombi\dmg=Rand(2,4):newzombi\speed=Rand(1,2):newzombi\score=Rand(15,25)'toiselle myös
        EndIf
        SetupCollision newzombi\obj,map,1,4,2
        luo=0
    EndIf
    luo+1
    For izombi.zombiS= Each zombiS'Aloitetaan zombien läpikäynti
    'Typerä tekoäly
    sidle=Rand(-20,20)
    If CountCollisions(izombi\obj) Then MoveObject izombi\obj,0,sidle'jos kosketaan deinään, niin stepataan

    PointObject izombi\obj,hero'zombi tähtää pelaajaan
    If ObjectsOverlap(izombi\obj,hero) Then hp-izombi\dmg

    For ibullet.bullets=Each bullets
    If ObjectsOverlap(ibullet\obj,izombi\obj) Then izombi\hp-ibullet\dmg Then ibullet\hp=-1
    If Distance2(iBullet\obj,hero)>600 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus
        DeleteObject iBullet\obj
        Delete iBullet
    EndIf
    Next ibullet

    MoveObject izombi\obj,izombi\speed'liikutetaan zombia nopeutensa verran

    If izombi\hp<0 Then 'jos zombin energiat loppuu, niin tapetaan se ja annetaan pisteet
        PlaySound enemy_sound
        score+izombi\score
        DeleteObject izombi\obj
        Delete izombi
    EndIf
    Next izombi
    EndIf

    DrawGame'ettei teksti jää kartan alle
    Text 10,10,"HP "+hp
    Text 10,20,"score "+score
    If hp<0 Then Text 350,300,"GAME OVER"
    DrawScreen

    Forever 
Jos et ymmärtänyt niin, type vihuun luodaan kenttä Hp ja vihua luotaessa se asetetaan tiettyyn arvoon.
mitä nuo upgs asepäivitykset ovat? tässä toinen tyhmä kysymys : miten laitetaan tuollainen hyökkäys itsellekin? kuin zombeilla että kun huidotaan viikatteella vihollisia niin niiltä lähtee samalla lailla hp tä kuin viholliset tuossa esimerkissäsi törmäävät heroon? :roll:

SuojelusPerkele
Newcomer
Posts: 37
Joined: Tue Sep 09, 2008 4:17 pm

Re: Tyhmät kysymykset

Post by SuojelusPerkele » Sat Sep 27, 2008 4:19 pm

Koetin tuossa lisätä hiiren tilalle erilaista kursoria valikkoon ja onnistuin osittain. En osaa selittää kunnolla mikä on häikkänä mutta laitan screeniä:

Tässä mille hiiri näyttää kun sitä liikuttaa:
Image

Tämmönen sen pitäisi olla:
Image
Blooddrunk Game Industry [BGI] :

Unlimited 1.0 = 100%
-Päivityksiä suunnitteilla

Kollaa kestää!
-Suunnitteluvaiheessa
-Tower defence -tyylinen, torju kommunistivyöryt kannaksella
_____
Vertos

Locked