Tyhmät kysymykset (I/2011)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 3:18 pm

Re: Tyhmät kysymykset (I/2011)

Post by DJ-Filbe » Wed Jun 29, 2011 6:07 am

saamari wrote:Ongelmana on siis se, että miten saan haulikon latauksen toimimaan tyyliin: 2sec -> +1 hauli -> 2sec -> +1 hauli eli kahden sekunnin välein lisätään yksi hauli niin kauan, että niitä on kasassa kaksitoista kun on painettu R näppäintä. Myöskin, että jos tulee kiire tappaa niin latauksen voi keskeyttää vaikka yhden haulin lisäyksen jälkeen ja ampua sen?

Tällä hetkellä hoidan latauksen näin, joka siis "laittaa" kaikki kaksitoista haulia kerralla:

Code: Select all

    If haulikkoluodit=0 And KeyHit(cbKeyR) Then haulikkoluodit=haulikkoluodit+12
Tee muuttuja, joka kuvaa, ollaanko ampumassa. Tee myös toinen muuttuja, joka kuvaa, ollaanko lataamassa.
Systeeminhän pitäisi kait mennä niin että jos lataamisen aikana painat ampumisnappia niin sen hetkinen ladattava panos laitetaan vielä sisään ja sitten ammutaan suoraan. Koodaat siis ihan loogisia If -lausekkeita, jotka tarkistavat muuttujien avulla, missä tilassa ase on ja peli käsittelee aseen toimintoja sen mukaan. Jos painetaan R ja ammutaan samanaikaisesti, odotetaan ensin että senhetkinen ladattava panos on ladattu. Tähän kannattaa tehdä välimuuttuja, joka kertoo senhetkisen ladattavan panoksen järjestysluvun. Ja sitten

Code: Select all

If panokset = seuraavapanos Then
[ammutaan]
EndIf
Latausajan kanssa kannattaa tutustua Timer -funktioon. Neuvon sen kuitenkin pikaisesti esimerkin avulla:

Code: Select all

// Timer() on funktio, joka kertoo millisekunteina 
// tietokoneen käynnissäoloajan. Tätä voidaan
// käyttää ajan laskemiseen ohjelmissa, kun voidaan
// laskea kahden tapahtuman välillä mitattujen
// käynnissäoloaikojen erotus.


aloitusaika=Timer()

Repeat
	
	If KeyHit(28) Then // jos ENTERiä painetaan
		aloitusaika = Timer()
	EndIf
	
	kulunutaika = Timer() - aloitusaika
	Text 0,0, "Timer() = "+Timer()
	Text 0,20, "aloitusaika = "+aloitusaika
	Text 0,40, "Timer() - aloitusaika = kulunutaika = "+kulunutaika
	Text 0,60, "Paina ENTERiä nollataksesi laskurin"
	DrawScreen
Forever
saamari wrote: Ja toinen ongelma on se, että miten saisin "elämäpalkin" vähenemään aina tietyn verran kun törmää zombieen.

Tällä hetkellä energiapalkin teko menee näin koodissani:

Code: Select all

'Luodaan energiapalkki
    energia = ObjectFloat(player)
    DrawImageBox imgenergia, 10, 540, 0, 0, Float(ImageWidth(imgenergia))/(100.0)*energia, 20
Kerro ensin, jaa sitten. Lopputulos on silloin tarkempi. Jos haluat vastaukseksi desimaalilukuja, muuttujissa tulee käyttää desimaalilukumääritystä (# -merkki muuttujan nimen perään ensimmäisellä kerralla, kun muuttuja esiintyy koodissa)
Esim.
energia# = 100

User avatar
Akuji
Member
Posts: 60
Joined: Fri Oct 08, 2010 5:59 pm
Location: Turku
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Akuji » Wed Jun 29, 2011 9:39 am

Olen muuttanut tätä räiskintärunkoa niin, että toinen vihollinen on erilainen. Nyt ainoana ongelmana on se, että miten saan "vihu-soldierin" kuollessaan huutamaan eri tavalla? Kun siis punaiselle vihulle on ladattu scream1-ääni, niin soldierille on scream2.

Code: Select all

    SCREEN 800,600,0,1
    FrameLimit 40

    playerpoints = 0
    font = LoadFont("Verdana",32,1,1)
    SetFont font

    // Luodaan tyyppikokoelma ammuksia varten
    Type BULLETS
        Field obj
    End Type

    // Ladataan media
    GoSub LoadMedia

    // Määritetään tyyppikokoelma vihollisille ja luodaan pari vihollista
    Type ENEMIES
        Field obj
        Field energy
    End Type
    GoSub MakeEnemies


    /////// PÄÄSILMUKKA ///////
    Repeat
        GoSub CheckButtons
        GoSub EnemyAI
        GoSub CheckBullets
        GoSub DrawGUI
           
        // Siirretään kameraa pelaajan mukana
        CloneCameraPosition player
       
        // Tarkistetaan onko taustamusiikki pysähtynyt ja käynnistetään tarvittaessa uudelleen
        If SoundPlaying(backgroundmusic) = 0 Then
            backgroundmusic = PlaySound("Media\SK_Battle2.mp3", 40)
        EndIf
       
        DrawScreen

    Until EscapeKey()


    /////// ALIOHJELMAT ///////
    // Aliohjelma jossa ladataan pelissä tarvittava media
    LoadMedia:
        // Ladataan kartta ja animoidaan se
        map = LoadMap("Media\cdm2.til", "Media\Tileset.bmp")
        PlayObject map,0,0,0.5
       
        // Ladataan panosobjektin grafiikat ja piilotetaan objekti
        bulletobject = LoadObject("Media\bullet.bmp", 72)
        ShowObject bulletobject, OFF
       
        // Ladataan pelaaja ja asetetaan törmäyksentunnistus kartan seinien ja pelaaja välille
        player = LoadObject("Media\soldier.bmp", 72)
        SetupCollision player,map,2,4,2
       
        // Ladataan vihollinen ja piilotetaan objekti
        enemyobject = LoadObject("Media\guy.bmp", 72)
        ShowObject enemyobject, OFF
        
        enemyobject2=LoadObject("media\soldier.bmp",72)
        ShowObject enemyobject2,OFF
       
        // Ladataan äänet
        backgroundmusic = PlaySound("Media\SK_Battle2.mp3", 40)
        shot = LoadSound("Media\gun 1.wav")
        scream = LoadSound("Media\scream1.wav")
        scream2 = LoadSound("media\scream2.wav")
    Return

    // Aliohjelma joka tarkistaa näppäinpainallukset
    CheckButtons:
        If UpKey() Then MoveObject player,4
        If DownKey() Then MoveObject player,-4
        If LeftKey() Then TurnObject player,5
        If RightKey() Then TurnObject player,-5   
       
        // Tarkistetaan painetaanko ampumisnäppäintä ja jos,
        // niin luodaan ammus ja törmäystunnistus sille
        If KeyHit(cbkeyrcontrol) Then
            PlaySound shot, 40
            blt.BULLETS = New(BULLETS)
            blt\obj = CloneObject(bulletobject)
            CloneObjectPosition blt\obj, player
            CloneObjectOrientation blt\obj, player
            MoveObject blt\obj,15
            SetupCollision blt\obj,map,2,4,1
            ResetObjectCollision blt\obj
        EndIf
    Return

    // Aliohjelma, jossa tehdään viholliselle alkeellinen tekoäly
    EnemyAI:
        For enem.ENEMIES = Each ENEMIES
            // Tarkistetaan näkeekö vihollisobjekti pelaajaobjekti ja
            // jos näkee niin aloitetaan liikuttamaan pelaajaa kohti
            If ObjectSight(enem\obj,player) Then
                PointObject enem\obj, player
                MoveObject enem\obj, 2
            EndIf
        Next enem
    Return

    // Aliohjelma, jossa läpikäydään ammukset
    CheckBullets:
        For blt.BULLETS = Each BULLETS
            MoveObject blt\obj, 10
            For enem.ENEMIES = Each ENEMIES
                // Tarkistetaan osuuko ammus viholliseen
                If ObjectsOverlap(blt\obj, enem\obj, 2) Then
                    deleteobj = 1
                    enem\energy = enem\energy - 20
                    playerpoints = playerpoints + 5
                EndIf
            Next enem
            bulcollisions = CountCollisions(blt\obj)
            For i = 1 To bulcollisions
                // Tarkistetaan onko ammus osunut seinään
                If GetCollision(blt\obj, i) > 1 Then deleteobj = 1
            Next i
            If deleteobj = 1 Then
                DeleteObject blt\obj
                Delete blt
                deleteobj = 0
            EndIf
        Next blt
    Return

    // Aliohjelma jossa piirretään "käyttöliittymä"
    DrawGUI:
        DrawGame
        DrawToWorld ON
        // Käydään viholliset läpi
        For enem.ENEMIES = Each ENEMIES
            PosX = ObjectX(enem\obj) - (ObjectSizeX(enem\obj)/2)
            PosY = ObjectY(enem\obj) + ObjectSizeY(enem\obj)
            EnWidth = enem\energy / 3
            Color cbWhite
            Box PosX,PosY,33,6
            Color cbRed
            Box PosX+1,PosY-1,EnWidth-2,4
            If enem\energy <= 0 Then
                // Jos energia nollassa, niin toistetaan huuto ja poistetaan vihollistyyppi
                PlaySound scream,40
                DeleteObject enem\obj
                Delete enem
            EndIf
        Next enem
        DrawToWorld OFF
       
        // Kirjoitetaan pisteet näytölle (ensimmäinen on varjostus)
        Color cbBlack : Text 12,12, playerpoints
        Color cbWhite : Text 10,10, playerpoints
    Return

    // Aliohjelma, jossa määritetään kaksi vihollista ja niiden energia
    MakeEnemies:
        enem.ENEMIES = New(ENEMIES)
        enem\obj = CloneObject(enemyobject)
        PositionObject enem\obj,0,-500
        SetupCollision enem\obj,map,2,4,1
        SetupCollision enem\obj,player,2,2,2
        SetupCollision player,enem\obj,2,2,2
        ResetObjectCollision enem\obj
        enem\energy = 100
       
        enem.ENEMIES = New(ENEMIES)
        enem\obj = CloneObject(enemyobject)
        PositionObject enem\obj,0,500
        SetupCollision enem\obj,map,2,4,1
        SetupCollision enem\obj,player,2,2,2
        SetupCollision player,enem\obj,2,2,2
        ResetObjectCollision enem\obj
        PaintObject enem\obj,enemyobject2
        enem\energy = 100

    Return

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

Re: Tyhmät kysymykset (I/2011)

Post by Jonez » Wed Jun 29, 2011 11:47 am

Luo kenttä "objTyyppi", joka kertoo minkälainen vihollinen on kyseessä. Kun vihu kuolee, tarkastetaan:

Code: Select all

If vihu\objTyyppi = 1 Then
    SoitaAani( kuolema1 )
ElseIf vihu\objTyypi = 2 Then
    SoitaAani( kuolema2 )
Else
    SoitaAani( def )
Endif
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War

Hei

Re: Tyhmät kysymykset (I/2011)

Post by Hei » Thu Jun 30, 2011 12:20 am

Miten pelin saisi lukemaan asetuksia vaikka tiedostosta config.dat? Niin että voisi vaikka optionsista vaihtaa resoluutiota?

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Tyhmät kysymykset (I/2011)

Post by MaGetzUb » Thu Jun 30, 2011 8:50 am

Hei wrote:Miten pelin saisi lukemaan asetuksia vaikka tiedostosta config.dat? Niin että voisi vaikka optionsista vaihtaa resoluutiota?
Ongelmaasi löytyy ratkaisu kun tsekkaat tämän linkin, tai sitten vähän yksinkertaisempi toteutus täältä. :)
Toinen on Latexi95:n tekemä hiukan monimutkaisempi järjestelmä, ja toinen on minun tekemäni. Omani on hiukkasen yksinkertaisempi toteutukseltaan. Ehkä myös helpompi käyttää hwo knows? :D
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

Duralmina
Newcomer
Posts: 5
Joined: Fri Jul 01, 2011 8:28 pm

Re: Tyhmät kysymykset (I/2011)

Post by Duralmina » Sat Jul 02, 2011 11:13 am

Hei, olen vasta aloitteleva CoolBasicin käyttäjä ja tarvitsisin tiedon, miten saan Aloitusvalikon ja valikon tehtyä peliin?

Nämä tiedot tarvitsen:
1. Kun avaan pelin, aukeaa Valikko jossa on nämä kohdat:
- Aloita uusi peli
- Lataa vanha peli
- Lopeta

Mitä sitten noista tapahtuisi?
Aloita uusi peli = Aloittaa uuden pelin ja menee suoraan tutorialmapille (eka taso)
Lataa vanha peli = Eteesi ilmestyy 3 kohtaa mitkä ovat Saved file 1, 2 ja 3
Jos olet aikaisemmin tallentanut pelisi, saved file 1:seen, 2:seen tai 3:seen, voit klickata sitä missä tallennuksesi on. Tämän jälkeen aukeaa peli valikko mistä voit valita tason sun muut asiat.
- Lopeta = Sulkee pelin ikkunan.

Olisiko tutoriaalia, tai voisitteko te tehdä minulle tuon valikon source koodin? =)


Enempää en kysy vielä ettei liian moni mutkaiseksi mene...

Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by Awaclus » Sat Jul 02, 2011 5:56 pm

Hei Duralmina, ja tervetuloa CoolBasicin pariin. Viestiketjusta "Usein ihmetellyt ongelmat" tai foorumin hakutoimintoa käyttämällä olisi löytänyt vastauksen kysymykseesi; hyvä esimerkki yksinkertaisesta valikosta löytyy täältä.

Tallennussysteemin voi tehdä hyödyntäen Grandin valikkofunktiota ja tiedostojen lukemiseen ja kirjoittamiseen tarkoitettuja komentoja.

Duralmina
Newcomer
Posts: 5
Joined: Fri Jul 01, 2011 8:28 pm

Re: Tyhmät kysymykset (I/2011)

Post by Duralmina » Sat Jul 02, 2011 6:58 pm

Kiitos paljon =) Kokeilen tuota vähän aikaa niin eiköhän se ala sitten onnistua^^

tyyppi

Re: Tyhmät kysymykset (I/2011)

Post by tyyppi » Sun Jul 03, 2011 4:21 pm

Olisi kysymys että miten saan peliin liikkumaan kolikoita ympäri näyttöä satunnaisesti ja sitten kun painaa niihin niin katoaa ja pisteisiin tulee yksi lisää?

Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (I/2011)

Post by Hene » Sun Jul 03, 2011 9:31 pm

Miten saan ohjelman näyttämään numeroarvon sijasta halutun tekstipätkän?

Code: Select all

Repeat
auto1="FORD"
auto2="MERCEDES"
auto3="BMW"

AddText ""
nimi$=Input("")
DrawScreen
    Select nimi$
        Case 1
            ClearText
            AddText ""+auto1+""
            DrawScreen
        Case 2
            ClearText
            AddText ""+auto2
            AddText ""+auto3
            DrawScreen
        Default
            ClearText
            AddText ""
     EndSelect
            
DrawScreen
WaitKey
Forever
"Baby," I said. "I'm a genius but nobody knows it but me."

User avatar
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by temu92 » Sun Jul 03, 2011 9:42 pm

Kattoppa manuaalista muuttujien tietotyypit tms. Lyhyesti kuitenkin muuttujat pitää määritellä olemaan joko kokonaislukuja (oletus, ei vaadi erillistä esittelyä), liukulukuja tai merkkijonoja. Merkkijonojen määrittely tapahtuu käyttämällä $-merkkiä muuttujan nimen perässä. Esim:

Code: Select all

teksti$ = "Helloworld"
AddText teksti$
Waitkey

User avatar
Herra Siili
Advanced Member
Posts: 308
Joined: Tue Nov 25, 2008 9:06 pm
Location: Viitasaari, Keski-Suomi
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Herra Siili » Sun Jul 03, 2011 9:44 pm

Tekstit tallennetaan merkkijonomuuttujiin, joiden perään tulee laittaa $-merkki. Muuta auto1, auto2 ja auto3 muotoon auto1$, auto2$ ja auto3$.
EDIT:

temu92 ehti ensin

a.k.a. Hedge

tyyppi

Re: Tyhmät kysymykset (I/2011)

Post by tyyppi » Mon Jul 04, 2011 10:04 am

tyyppi wrote:Olisi kysymys että miten saan peliin liikkumaan kolikoita ympäri näyttöä satunnaisesti ja sitten kun painaa niihin niin katoaa ja pisteisiin tulee yksi lisää?
Niin miten voisin tuon toteuttaa?

Dimple
Active Member
Posts: 103
Joined: Wed Nov 17, 2010 6:43 pm

Re: Tyhmät kysymykset (I/2011)

Post by Dimple » Mon Jul 04, 2011 11:18 am

tyyppi wrote:
tyyppi wrote:Olisi kysymys että miten saan peliin liikkumaan kolikoita ympäri näyttöä satunnaisesti ja sitten kun painaa niihin niin katoaa ja pisteisiin tulee yksi lisää?
Niin miten voisin tuon toteuttaa?
Jos haluat toteuttaa sen objekteilla, niin ensin luot halutun määrän kolikko-objekteja (CloneObject(), objektit kannattaa tallentaa tyyppi-kokoelmaan) ja arvot niille satunnaiset koordinaatit ja satunnaisen liikkumissuunnan (Rand-komento). Sen jälkeen todennäköisesti haluat muuttaa niiden liikkumissuuntaa jotenkin. Yksi mahdollisuus on tallentaa jokaisen objektin yhteyteen arvo Timer()+haluttu_aika_millisekunteina (esim. voisit lisätä sen yhdeksi fieldiksi tyyppi-kokoelmaan), ja tarkistetaan jokaisella kerralla, kun objektia liikutetaan, onko Timer() suurempi kuin kyseinen arvo. Jos on, arvotaan uusi liikkumissuunta.

Toista osiota varten sinun täytyy vain tarkistaa, onko hiiri jonkin objektin päällä, kun hiiren nappia painetaan (MouseHit() tai MouseDown() apumuuttujan kanssa). Oletettavasti kolikot ovat pyöreitä, joten yksinkertainen hiiren koordinaattien etäisyyden tarkistaminen kolikosta toimii tod. näköisesti aika hyvin. Eli tarkistat Distance() funktiolla, ovatko hiiren koordinaatit (MouseWX() ja MouseWY()) alle kolikon säteen päässä kolikosta (ObjectX() ja ObjectY()). Jos hiiri on kolikon päällä, objekti poistetaan tyyppi-kokoelmasta ja piste-muuttujaa lisätään yhdellä.

Pisteethän on hyvin helppo toteuttaa. Tarvitset vain muuttujan, esim. "pisteet", jolle annat aluksi arvon nolla. Sen jälkeen pisteitä lisätään tai vähennetään miten halutaan ja jokaisessa loopissa ne piirretään johonkin. Esim. jotenkin näin:

Code: Select all

pisteet = 0
Repeat
    If(MouseHit(1))
        pisteet = pisteet  + 1
    EndIf
    Text 0,0, "Pisteet: " + pisteet
    DrawScreen
Forever
Jos et osaa käyttää tyyppi-kokoelmia, kannattaa tuo ehkä toteuttaa ensin yhdellä kolikolla (käytä yhtä muuttujaa, esim. "kolikko", tyyppi-kokoelman sijasta). Sen jälkeen koodin voi suht helposti muuttaa toimimaan tyyppi-kokoelmien kanssa.

Kysy jos (ja kun) jokin asia on vielä epäselvää. Selitykseni ei ollut järin konkreettinen.

Ihminen
Newcomer
Posts: 34
Joined: Tue Jun 14, 2011 9:13 pm

Re: Tyhmät kysymykset (I/2011)

Post by Ihminen » Mon Jul 04, 2011 1:20 pm

Miksi tämä ei pysty näyttämään kuin kolme erilaista animaatiosarjaa, eikä näitä kaikkia viittä mitä olen yrittänyt laittaa...

Code: Select all

FrameLimit 30

pelaajaA=LoadAnimObject("pelaajaA.bmp",43,58,0,13)
MaskObject pelaajaA, cbMagenta
ShowObject pelaajaA, OFF
ObjectRange pelaajaA,43,58

pelaajaB=LoadAnimObject("pelaajaB.bmp",43,58,0,13)
MaskObject pelaajaB, cbMagenta
ShowObject pelaajaB, OFF
ObjectRange pelaajaB,43,58

pelaajaC=LoadAnimObject("pelaajaC.bmp",43,58,0,13)
MaskObject pelaajaC, cbMagenta
ShowObject pelaajaC, OFF
ObjectRange pelaajaC,43,58 

pelaajaD=LoadAnimObject("pelaajaD.bmp",43,58,0,13)
MaskObject pelaajaD, cbMagenta
ShowObject pelaajaD, OFF
ObjectRange pelaajaD,43,58

pelaajaE=LoadAnimObject("pelaajaE.bmp",43,58,0,13)
MaskObject pelaajaE, cbMagenta
ShowObject pelaajaE, OFF
ObjectRange pelaajaE,43,58

pelihahmo = CloneObject (pelaajaA)
ObjectRange pelihahmo,43,58



Repeat

If LeftKey() And UpKey() Then
PaintObject pelihahmo,pelaajaE
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, -1,-1

ElseIf LeftKey() Then
PaintObject pelihahmo,pelaajaD
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, -1,0

ElseIf DownKey() Then
PaintObject pelihahmo,pelaajaB
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, 0,1

ElseIf DownKey()And RightKey() Then
PaintObject pelihahmo,pelaajaC
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, 1,1

ElseIf LeftKey() And DownKey() Then
PaintObject pelihahmo,pelaajaA
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, -1,1


Else 
PlayObject pelihahmo,0

EndIf


DrawScreen
Forever

User avatar
Viltzu
Guru
Posts: 1132
Joined: Sun Aug 26, 2007 5:45 pm
Location: Alavieska
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Viltzu » Mon Jul 04, 2011 1:24 pm

Ihminen wrote:Miksi tämä ei pysty näyttämään kuin kolme erilaista animaatiosarjaa, eikä näitä kaikkia viittä mitä olen yrittänyt laittaa...

Code: Select all

FrameLimit 30

pelaajaA=LoadAnimObject("pelaajaA.bmp",43,58,0,13)
MaskObject pelaajaA, cbMagenta
ShowObject pelaajaA, OFF
ObjectRange pelaajaA,43,58

pelaajaB=LoadAnimObject("pelaajaB.bmp",43,58,0,13)
MaskObject pelaajaB, cbMagenta
ShowObject pelaajaB, OFF
ObjectRange pelaajaB,43,58

pelaajaC=LoadAnimObject("pelaajaC.bmp",43,58,0,13)
MaskObject pelaajaC, cbMagenta
ShowObject pelaajaC, OFF
ObjectRange pelaajaC,43,58 

pelaajaD=LoadAnimObject("pelaajaD.bmp",43,58,0,13)
MaskObject pelaajaD, cbMagenta
ShowObject pelaajaD, OFF
ObjectRange pelaajaD,43,58

pelaajaE=LoadAnimObject("pelaajaE.bmp",43,58,0,13)
MaskObject pelaajaE, cbMagenta
ShowObject pelaajaE, OFF
ObjectRange pelaajaE,43,58

pelihahmo = CloneObject (pelaajaA)
ObjectRange pelihahmo,43,58



Repeat

If LeftKey() And UpKey() Then
PaintObject pelihahmo,pelaajaE
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, -1,-1

ElseIf LeftKey() Then
PaintObject pelihahmo,pelaajaD
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, -1,0

ElseIf DownKey() Then
PaintObject pelihahmo,pelaajaB
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, 0,1

ElseIf DownKey()And RightKey() Then
PaintObject pelihahmo,pelaajaC
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, 1,1

ElseIf LeftKey() And DownKey() Then
PaintObject pelihahmo,pelaajaA
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, -1,1


Else 
PlayObject pelihahmo,0

EndIf


DrawScreen
Forever
Kaksi viimeisintä if-lausekkeista ei koskaan tule tapahtumaan. Koska jos painetaan vasemmalle, tapahtuu pelaajaD:n liikuttaminen. Joten laita nuo kaksi viimeistä joko erilliseen iffiin tai sitten PelaajaD:n ja PelaajaB:n ehtoihin lisäät "And Not xKey()" (Korvaat xKey mitä käytät C:ssä ja A:ssa.. uh)

Tai muutat järjestystä, ensin nuo missä on 2 ehtoa.

Mutta siis kun tosiaan painat vasemmalle niin If "pysähtyy" tuohon pelaajaD:n kohdalle.

DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 3:18 pm

Re: Tyhmät kysymykset (I/2011)

Post by DJ-Filbe » Tue Jul 05, 2011 1:47 pm

Kansion ja kaikkien alikansioiden läpikäyminen ja jpg-kuvien listaus typeen, sekä kuvien siirtäminen tiettyyn kansioon?

User avatar
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 9:25 am

Re: Tyhmät kysymykset (I/2011)

Post by Sly_Jack0 » Tue Jul 05, 2011 2:30 pm

http://www.cbrepository.com/codes/code/14/ + CopyFile() ja DeleteFile().

DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 3:18 pm

Re: Tyhmät kysymykset (I/2011)

Post by DJ-Filbe » Tue Jul 05, 2011 4:49 pm

Pitkä kansiopolku. Miten voin tarkistaa ennen OpenToWriteä, onko kansiota tai kansiopuuta olemassa ja luoda ne (ts. "OpenToWrite2" -funktio)?
Aivot ei tänään pelaa niin en jaksa keskittyä...

User avatar
Viltzu
Guru
Posts: 1132
Joined: Sun Aug 26, 2007 5:45 pm
Location: Alavieska
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Viltzu » Tue Jul 05, 2011 4:52 pm

DJ-Filbe wrote:Pitkä kansiopolku. Miten voin tarkistaa ennen OpenToWriteä, onko kansiota tai kansiopuuta olemassa ja luoda ne (ts. "OpenToWrite2" -funktio)?
Aivot ei tänään pelaa niin en jaksa keskittyä...
FileExists ?

Locked