Tyhmät kysymykset (II/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (II/2009)

Post by koodaaja »

Omallakin koneella tuo toimii hyvin mutta ongelma on silti tiedossa: piirrät näytön ulkopuolelle. (tai siis, zero piirtää)

Code: Select all

SCREEN 640,480

AddText "Press any key to copy..."

'First make a gradient 
For i=0 To 240
    Color 0,i+15,0
    Line 0,i,640,i
Next i

DrawScreen OFF

WaitKey

'Lock screen 
Lock SCREEN()

'make 154 481 iterations, copy each pixel 
For y=1 To 240
For x=0 To 639
    PutPixel2 x,480-y,GetPixel2(x, y)
Next x
Next y

'Unlock screen 
Unlock SCREEN()

DrawScreen

WaitKey
Tuon pitäisi toimia. PutPixel2:lla ei siis saa piirrellä kuin (0, 0) - (w-1, h-1), tässä oli (0, 240) - (w, h) käytössä. Toisten koneet ovat herkempiä kyseiselle ongelmalle.
11v
Member
Posts: 73
Joined: Wed Jun 10, 2009 10:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by 11v »

Thanks...
Black city peleistä parhain
qwetyone
Member
Posts: 50
Joined: Tue Oct 07, 2008 6:39 pm

Re: Tyhmät kysymykset (II/2009)

Post by qwetyone »

Hei, Minulla on tässä pelin alku. Ongelmana on että kun tässä on kaksi pelaaja, he eivät voi ampua samaan aikaan. Haluaisin myös että siihen ampumiseen tulisi " cooldown ", eli että jos on ampunut kerran, ei voi ampua esim. sekunnin ajan. Sekunnin päästä ase on taas ladattu ja voi ampua kerran jne.

Code: Select all

'--------------------- Ikkunan koko -----------------------'

SCREEN 1100, 550

' ------------------ Max FPS ------------------------------'

FrameLimit 40

' -------------------- Split Screenin Mahdollistaminen '

Include "cbVirtualScreen.cb"

' ------------------------ Kartan Luonti---------------------------'

kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,1

' ------- Luodaan ammusluettelo -----------------------------' 'En tajuu Type - komennosta mitään... ---'

Type AMMUS
    Field obj
End Type 

'------------------------ Objectit ---------------------'

ukko1=LoadObject("Media/guy.bmp",360)
ukko2=LoadObject("Media/guy.bmp",360)

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

'---------------------- Split Screenit---------------------'

s1 = VSCreate(500, 500)
s2 = VSCreate(500, 500)

'---------------------- Kamerat Seuraa ------------------------'

VSCameraFollow(s1, ukko2, 10)
VSCameraFollow(s2, ukko1, 10) 

'----------------------- Törmäykset ------------------------------'

SetupCollision ukko1, kartta, 1, 4, 2
SetupCollision ukko2, kartta, 1, 4, 2
SetupCollision ukko1, ukko2, 2, 2, 2
SetupCollision ukko2, ukko1, 2, 2, 2

'---------------------- Objectien Sijoitus -----------------------'

PositionObject ukko1, 400,440
PositionObject ukko2, -400,-400

' --------------------------- Silmukka alkaa -------------------'

Repeat

'----------------------- Päivitetään Split Screenit ------------'  ' MIKSI PÄIVITETÄÄN? En tosiaan tiedä...'

VSUpdateAll()

' -------------------- Ukkojen Ohjaus -------------------------------'

    If LeftKey() Then TurnObject ukko2,5
    If RightKey() Then TurnObject ukko2,-5
    If UpKey() Then MoveObject ukko2,5
    If DownKey() Then MoveObject ukko2,-5
    
    If KeyDown(17) Then MoveObject ukko1,5
    If KeyDown(31) Then MoveObject ukko1,-5
    If KeyDown(30) Then TurnObject ukko1,5
    If KeyDown(32) Then TurnObject ukko1,-5
    
  ' -------------- Ukko1 Ammus sydeeemi ----------------'  
    
        'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyLControl) And reload=0 Then    
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko1                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,ukko1           
        reload=5 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1

    'Päivitä kaikki ammukset
    For luoti.AMMUS = Each AMMUS

        MoveObject luoti\obj,20
        If ObjectX(luoti\obj)<-32180 Or ObjectX(luoti\obj)>18440 Or ObjectY(luoti\obj)<-13044 Or ObjectY(luoti\obj)>13440 Then
            'ammus ylittää rajan -> tuhoa se                
            DeleteObject luoti\obj 'poista objekti
            Delete luoti 'poista luoti kokonaan´
            
        EndIf        
    Next luoti
    
' -------------------- Ukko2 Ammus systeeni ---------------------'   
     
     'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyRControl) And reload=0 Then    
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko2                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,ukko2           
        reload=5 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1

    'Päivitä kaikki ammukset
    For luoti.AMMUS = Each AMMUS

        MoveObject luoti\obj,20
        If ObjectX(luoti\obj)<-32180 Or ObjectX(luoti\obj)>18440 Or ObjectY(luoti\obj)<-13044 Or ObjectY(luoti\obj)>13440 Then
            'ammus ylittää rajan -> tuhoa se                
            DeleteObject luoti\obj 'poista objekti
            Delete luoti 'poista luoti kokonaan´
            
        EndIf        
    Next luoti
    
   
' ---------------- Piirretään Split Screenit ------------------------'

    VSDrawScreen(s1, 20, 20)
    VSDrawScreen(s2, 550, 20)

' -------------- TÄRKEIN KOMENTOOOOOOOOOOOOOOOOOOOO..!------------------'

DrawScreen 

Forever
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by Jonez »

En suosittele tuollaista eri koodien copy-pastettamista, kuten olet tehnyt, mm. seuraavista syistä:
- Opit 1000% paremmin kun _kirjoitat_ koodin, et copy-pasteta.
- Koodit ovat väistämättä tarkoitettu hieman erilaisiin systeemeihin, joten ne eivät toimi keskenään. Tästä seuraa turhia virheitä.

Pelissäsi pelaaja voi ampua aina kun muuttuja reload = 0. Tämä on se sinun hakemasi cooldown, mutta se ei tosin toimi sekuntien mukaan. Tee molemmille pelaajille oma reload-muuttuja, esim. reload ja reload2. Pelaaja 1 voi ampua kun reload = 0, ja pelaaja 2 voi ampua kun reload2 = 0.

Saat reload-muuttujan toimimaan sekuntien mukaan näin:
Koodissa on kohta ... "And reload < Timer() - 1000" ...
Se tarkoittaa suunnilleen: "kun edellisestä ampumisesta on mennyt ainakin 1 sekunti". 1000 tarkoittaa 1000 millisekuntia, eli yhtä sekuntia. Näin ollen 2000 tarkoittaa kahta sekuntia jne. Muuta lukua "1000" sen mukaan, kuinka nopean ampumisen haluat (suurempi luku on siis hitaampi).

Code: Select all

If KeyDown(cbKeyLControl) And reload < Timer() - 1000 Then
    //Ammutaan

    //päivitetään reload:
    reload = Timer()
EndIf 
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Panzur
Newcomer
Posts: 32
Joined: Sat Jun 06, 2009 6:26 pm

Re: Tyhmät kysymykset (II/2009)

Post by Panzur »

Miten saan tasohyppely peliini vastustajia jotka liikuvat tiettyä rataa ja miten saan että kun pelaaja menee piikkien päälle niin kenttä alkais alusta?
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (II/2009)

Post by Awaclus »

Panzur wrote:Miten saan tasohyppely peliini vastustajia jotka liikuvat tiettyä rataa ja miten saan että kun pelaaja menee piikkien päälle niin kenttä alkais alusta?
Data-kerroksella.
qwetyone
Member
Posts: 50
Joined: Tue Oct 07, 2008 6:39 pm

Re: Tyhmät kysymykset (II/2009)

Post by qwetyone »

Itse innostuin teko-äly aiheesta ja tein tämmöisen

Ongelmana on että en saa paukkuja tuhoutumaan seinään osuessaan. Kokeilin ObjectsOverlap komentoa mutta sillä katosivat heti.
Ja vielä se että, miten saan vihollisen/pelaajan spawnaamaan jossakin missä ei ole seiniä.
Mulla on tämmönen käytössä. Mutta se ei vain tee sitä mitä haluan. Liian monesti menee seinän sisään.

Code: Select all

PositionObject ukko, Rand(-300,300), Rand(-300,300)

Code: Select all

SCREEN 1000, 800

FrameLimit 40

DrawToWorld ON 

kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
ObjectPickable kartta, ON 
PlayObject kartta,0,0,1

Type AMMMMUS
Field obj
End Type

Type AMMMUS
Field obj
End Type

Type AMMUS
Field obj
End Type

ukko=LoadObject("Media/guy.bmp",360)

vihu=LoadObject("Media/guy.bmp",360)
ObjectPickable vihu, ON 

vihu2=LoadObject("Media/guy.bmp",360)
ObjectPickable vihu2, ON 

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

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

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

SetupCollision ukko, kartta, 1, 4, 2

SetupCollision vihu, kartta, 2, 4, 2

SetupCollision vihu2, kartta, 2, 4, 2

PositionObject ukko, 50, 0

PositionObject vihu, -300, -320

PositionObject vihu2, -300, 320

AddText "WASD-näppäimillä liikkuu, CTRL=ampuu"
AddText "Voit poistaa tekstit aina, painamalla Q - kirjainta"


Repeat 

If Distance2 (vihu2, ukko)>700 Then PositionObject vihu2, -300, 320

If Distance2 (vihu, ukko)<700 Then MoveObject vihu, 0
If ObjectSight (vihu, ukko) Then PointObject vihu, ukko

If KeyDown(30) Then TurnObject ukko, 5
If KeyDown(32) Then TurnObject ukko, -5
If KeyDown(17) Then MoveObject ukko, 5
If KeyDown(31) Then MoveObject ukko, -5

DrawGame

ObjectPick ukko
e=PickedObject()

If e=vihu Then
Color cbMagenta
Circle PickedX()-4,PickedY()+4,8,OFF
EndIf

If e=vihu2 Then
Color cbMagenta
Circle PickedX()-4,PickedY()+4,8,OFF
EndIf

If e=kartta Then
Color cbGreen
Circle PickedX()-4,PickedY()+4,8,OFF    
EndIf

If Distance2 (vihu, ukko)<150 Then MoveObject vihu, -3

If ObjectsOverlap (vihu, ukko, 3) Then PositionObject ukko, Rand(-300,300), Rand(-300,300)

If ObjectX(vihu)<350 Then MoveObject vihu, 3
If ObjectX(vihu)>340 Then RotateObject vihu, 180
If ObjectX(vihu)<-300 Then RotateObject vihu, 0
If ObjectX(vihu2)<350 Then MoveObject vihu2, 3
If ObjectX(vihu2)>340 Then RotateObject vihu2, 180
If ObjectX(vihu2)<-300 Then RotateObject vihu2, 0

If ObjectSight (vihu2, ukko) Then PointObject vihu2, ukko 

If KeyDown(cbKeyLControl) And reload=0 Then
luotti.ammmus = New(AMMMUS)
luotti\obj=CloneObject(pati2)
CloneObjectPosition luotti\obj, ukko
CloneObjectOrientation luotti\obj, ukko
reload=5
EndIf

If reload>0 Then reload=reload-1
For luotti.AMMMUS = Each AMMMUS
MoveObject luotti\obj, 15
If ObjectsOverlap (luotti\obj, vihu, 1) Then
DeleteObject luotti\obj
Delete luotti
AddText " Tapoit vihollisen! "
PositionObject vihu, -300, -320
CloneObjectOrientation vihu, pati
EndIf 
Next luotti

If reload>0 Then reload=reload-1
For luotti.AMMMUS = Each AMMMUS
MoveObject luotti\obj, 15
If ObjectsOverlap (luotti\obj, vihu2, 1) Then
DeleteObject luotti\obj
Delete luotti
AddText " Tapoit vihollisen! "
PositionObject vihu2, -300, 320
CloneObjectOrientation vihu2, pati
EndIf 
Next luotti


If Distance2 (vihu, ukko)>700 Then PositionObject vihu, -300, -320

If Distance2 (vihu, ukko)<300 And ObjectSight (vihu, ukko)  And reload=0 Then
luoti.ammus = New(AMMUS)
luoti\obj=CloneObject(pati)
CloneObjectPosition luoti\obj, vihu
CloneObjectOrientation luoti\obj, vihu
reload=5
EndIf 

If reload>1 Then reload=reload-1
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj, 10
If ObjectsOverlap (luoti\obj, ukko, 1) Then
DeleteObject luoti\obj
Delete luoti
AddText " Sait Osuman "
PositionObject ukko, Rand(-300,300), Rand(-300,300)
EndIf 
Next luoti 

If Distance2 (vihu2, ukko)<250 And ObjectSight (vihu2, ukko) And reload=0 Then
luottti.AMMMMUS = New(AMMMMUS)
luottti\obj=CloneObject(pati3)
CloneObjectPosition luottti\obj, vihu2
CloneObjectOrientation luottti\obj, vihu2
reload=5
EndIf 

If reload>0 Then reload=reload-1
For luottti.AMMMMUS = Each AMMMMUS
MoveObject luottti\obj, 10
If ObjectsOverlap (luottti\obj, ukko, 1) Then
DeleteObject luottti\obj
Delete luottti
AddText " Sait Osuman "
PositionObject ukko, Rand(-300,300), Rand(-300,300)
EndIf 
Next luottti



If KeyHit(16) Then ClearText 


CloneCameraPosition ukko
DrawScreen   
Forever 

Ai niin, ja Jonez, kiitos tosta vastauksesta.

PS, voiko CBssä tehdä niin ettei kulmien taakse näy. Ainoastaan näkyy jos on Sight
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by valscion »

qwetyone wrote:Itse innostuin teko-äly aiheesta ja tein tämmöisen

Ongelmana on että en saa paukkuja tuhoutumaan seinään osuessaan. Kokeilin ObjectsOverlap komentoa mutta sillä katosivat heti.
Ja vielä se että, miten saan vihollisen/pelaajan spawnaamaan jossakin missä ei ole seiniä.
Mulla on tämmönen käytössä. Mutta se ei vain tee sitä mitä haluan. Liian monesti menee seinän sisään.

Code: Select all

PositionObject ukko, Rand(-300,300), Rand(-300,300)
Voit tarkistaa GetMap komennolla, onko koordinaateissa törmäyskerrosta (eli seinää). Tähän malliin:

Code: Select all

Repeat // pääsilmukan SISÄÄN, eli sisäkkäinen silmukka :)
    // Arvo uudet koordinaatit
    randx = Rand(-300, 300)
    randy = Rand(-300, 300)
    
    If GetMap( 2, randx, randy ) = 0 Then
        // Jos koordinaateissa ei ole törmäystä...
        // ...aseta objekti koordinaatteihin...
        PositionObject joku_objekti, randx, randy
        // ...ja poistu silmukasta.
        Exit 
    EndIf
Forever
EDIT:

qwetyone wrote:PS, voiko CBssä tehdä niin ettei kulmien taakse näy. Ainoastaan näkyy jos on Sight
Pikaisella haulla löysin tällaisen vastauksen: viewtopic.php?p=11749#p11749[/edit]
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
DTK

Re: Tyhmät kysymykset (II/2009)

Post by DTK »

Mitenkä saisi korjattua ongelman jossa, CB ilmoittaa että edellinen suoritettu ohjelma on vielä päällä vaikka ei ole. Aikaisemmin tullut vain asennettua koko CB uusiksi, mutta löytyisikö heelpompaa keinoa?
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset (II/2009)

Post by Koodiapina »

Jos käytät Vistaa niin suorita CoolBasic järjestelmänvalvojana. Jos se et tai ongelma jatkuu edelleen, sulje cbrun.exe tehtävienhallinnan prosessilistasta.
qwetyone
Member
Posts: 50
Joined: Tue Oct 07, 2008 6:39 pm

Re: Tyhmät kysymykset (II/2009)

Post by qwetyone »

Kiitti Vesku, sain ainakin korjattua Spawni-ongelmani.

Mutta entäs miten saisin tekstin näkymään? Se ei näy kartan läpi näköjään, mutta jos menee mapin reunalle niin se texti näkyy siellä mustalla alueella.

Code: Select all

Text 600,0, Tapot
Noviisi
Newcomer
Posts: 11
Joined: Thu Sep 10, 2009 11:51 pm

Re: Tyhmät kysymykset (II/2009)

Post by Noviisi »

qwetyone wrote:Mutta entäs miten saisin tekstin näkymään?
Näin vasta-alkajana en tiedä, onko tämä paras tai ainoa tapa, mutta DrawGame-komennolla tuon pitäisi kaiketi onnistua. Tarkemmat ohjeet löytyvät CoolBasic-ohjekirjasta kyseisen komennon kohdalta grafiikkakomentojen ryhmästä.
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (II/2009)

Post by skorpioni-cb »

Noviisi wrote:
qwetyone wrote:Mutta entäs miten saisin tekstin näkymään?
Näin vasta-alkajana en tiedä, onko tämä paras tai ainoa tapa, mutta DrawGame-komennolla tuon pitäisi kaiketi onnistua. Tarkemmat ohjeet löytyvät CoolBasic-ohjekirjasta kyseisen komennon kohdalta grafiikkakomentojen ryhmästä.
Löytyy myös OBJEKTIT-sivusta.
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.
Someday coder
Active Member
Posts: 106
Joined: Wed Jul 30, 2008 5:04 pm

Re: Tyhmät kysymykset (II/2009)

Post by Someday coder »

Mistä löytäisi valmiita ukkoja peleihin? Samanlaisia sivusta kuvattuja juoksevia möllejä kuin cb:ssä tulee se yksi mukana.
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (II/2009)

Post by skorpioni-cb »

Someday coder wrote:Mistä löytäisi valmiita ukkoja peleihin? Samanlaisia sivusta kuvattuja juoksevia möllejä kuin cb:ssä tulee se yksi mukana.
Käyppä huviksesi täällä.
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.
User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 2:40 pm
Location: Lempäälä

Re: Tyhmät kysymykset (II/2009)

Post by kaneli2000 »

Öh, koetan koodissa poistaa kloonatun objektin, kun ammus koskee siihen. Jos ruudula on yksi ammus, onnistuu. Jos enemmän, mavaa. Osaisiko kukaan auttaa?

Code: Select all

    For iEnemy.ENEMIES = Each ENEMIES
        If iEnemy\kind$ = "dummy" And iEnemy\obj Then
            PointObject iEnemy\obj,ship
            //TurnObject iEnemy\obj,1
            MoveObject iEnemy\obj,1
        EndIf
    Next iEnemy
    
    For iEnemy.ENEMIES = Each ENEMIES
        For bBullet.BULLETS = Each BULLETS
            If bBullet\x > ObjectX(iEnemy\obj) - ObjectSizeX(iEnemy\obj)/2 And bBullet\x < ObjectX(iEnemy\obj) + ObjectSizeX(iEnemy\obj)/2 And bBullet\y > ObjectY(iEnemy\obj) - ObjectSizeY(iEnemy\obj)/2 And bBullet\y < ObjectY(iEnemy\obj) + ObjectSizeY(iEnemy\obj)/2 Then
                DeleteObject iEnemy\obj
                Delete iEnemy
                Delete bBullet
            EndIf
        Next bBullet
    Next iEnemy
I see the rainbow rising
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (II/2009)

Post by koodaaja »

Delete bBulletin jälkeen Exit niin pitäisi toimia.
User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 2:40 pm
Location: Lempäälä

Re: Tyhmät kysymykset (II/2009)

Post by kaneli2000 »

koodaaja wrote:Delete bBulletin jälkeen Exit niin pitäisi toimia.
Kiitos, nyt toimii. Koodissa oli tosin muutakin häikkää, mutta sain korjattua.
I see the rainbow rising
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (II/2009)

Post by skorpioni-cb »

Missä on muka syntaksi-virhe?

koodi:

Code: Select all

Function PäättymätönMusa(musiikki-polku$)

 If SoundPlaying(musa)=True Then 
    ääni=ON 
 Else 
    ääni=OFF 
 EndIf 
 
 If ääni=OFF Then 
  musa=PlaySound(musiikki-muuttuja)
 EndIf 

EndFunction 
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.
User avatar
Substance
Active Member
Posts: 234
Joined: Fri Mar 14, 2008 5:48 pm

Re: Tyhmät kysymykset (II/2009)

Post by Substance »

skorpioni-cb wrote:Missä on muka syntaksi-virhe?

koodi:

Code: Select all

Function PäättymätönMusa(musiikki-polku$)

 If SoundPlaying(musa)=True Then 
    ääni=ON 
 Else 
    ääni=OFF 
 EndIf 
 
 If ääni=OFF Then 
  musa=PlaySound(musiikki-muuttuja)
 EndIf 

EndFunction 
Vaihda miinuksen tilalle vaikka alaviiva.
Substance aka LittleGreen
Red Encounter - shoot'em uppia - lataus
Locked