Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset

Post by Koodiapina »

Sepi wrote:Onko cb:llä mahdollista tehdä MakeErrorin tyylistä "erroria", joka ei kuitenkaan sulje ohjelmaa?
CBFunilla onnistuu viestilaatikon teko, joka ei sulje ohjelmaa. Kyseinen DLL löytyy haulla.

EDIT: viewtopic.php?f=12&t=293
Dande
Active Member
Posts: 193
Joined: Tue Aug 28, 2007 4:30 pm

Re: Tyhmät kysymykset

Post by Dande »

Sepi wrote:Onko cb:llä mahdollista tehdä MakeErrorin tyylistä "erroria", joka ei kuitenkaan sulje ohjelmaa?
Tarvitset CB SDK:n tai vaihtoehtoisesti pelkän cbApin, joka on Marcoderin tekemä DLL-kirjasto CB:lle. Sitten voit vain komentaa tyyliin

Code: Select all

Include "cbAPI.cb"

MessageBox("Virhe tapahtui", "Virhe!")
Print "Ohjelma jatkuu"
WaitKey
Tai mikäli sen ei tarvitse olla PopUp, niin voit tehdä jotakin tyyliin

Code: Select all

Function Error(msg$)
    Repeat
        Color 255,0,0
        DrawGame
        Box 0,0,ScreenWidth(),ScreenHeight()
        Color 255,128,128
        txtLen=TextWidth(msg)
        Box ScreenWidth()/2-TextWidth(msg)/2-8,ScreenHeight()/2-TextHeight(msg)/2-4,TextWidth(msg)+16,TextHeight(msg)+8
        Color 0,0,0
        CenterText ScreenWidth()/2,ScreenHeight()/2,msg$,2
        DrawScreen
    Until KeyHit(28)
EndFunction

Error("Tälläinen oma virhe. Paina Enteriä jatkaaksesi")
Print "Ohjelma jatkuu"
WaitKey
MikkoK
Devoted Member
Posts: 813
Joined: Thu Jun 05, 2008 2:13 pm
Location: City 17

Re: Tyhmät kysymykset

Post by MikkoK »

Öhm miten tehtäs cb:llä merkkigrafiikkapeli... Meinaan en oo saanu mitään selkoa. Jossain näin jonkinmoisen jutun että ladattiin kartta .txt tiedostosta täällä foorumeilla näin sen mutta en tiedä oliko se tekstigrafiikkaa.

Code: Select all

#aha. @ IRCNet
<Grandi> Voit laittaa jo valmiiks hailaittiin "Amis-Mikko", koska alan kutsua sua sillä nimellä.
User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

Re: Tyhmät kysymykset

Post by TheDuck »

Tein joskus DuckMapSysteemin joka on merkkigrafiikkapelimoottori tai joku vastaava jossa grafiikkana on merkkejä :P Pienellä virityksellä saa kartat samaan filuun.
DuckMapSystem.rar
(2.21 KiB) Downloaded 280 times
EDIT:

Tukee normaali-, hit- ja datakerroksia. Ja vähän joustamaton :S

^^
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Tyhmät kysymykset

Post by esa94 »

Vähän prik. Ja alkuperäisessä versiossahan se npc tuntui olevan joka kentässä, mutta näkymättömänä, eikö? :D
Metsuri
Newcomer
Posts: 15
Joined: Thu Aug 14, 2008 9:34 pm

Re: Tyhmät kysymykset

Post by Metsuri »

Mitenkäs mä saisin tehtyä runko ohjauksen kuormatraktoriin?Jotenkin seuraavasti: Etuosan ja takaosan kulma esim jyrkentyy kun painaa a ja loivenee kun painaa d. Ja sen takaosan pitäs tietysti osottaa sen etuosan taakse eikä keskelle.
Katsokaa tämä http://www.youtube.com/watch?v=2LqCGrKB ... re=related niin saatte vähän käsitystä miten ajokone kääntyy.
Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: Tyhmät kysymykset

Post by Jonhu »

Koulun alku vähän hidastanut projektiani.. Tässä pieni ongelma, että en saa erinäköisiä tyyppejä ampumaan erillailla.. "Guy" tyypin pitäisi pyöriä ympyrää ja ampua, jos vastustaja on lähellä, ja "soldier":in tähdätä kohdetta ja ampua.. Saan vain molemmat tekemään samaa...

Code: Select all

menu:
SCREEN 1000,800
    FrameLimit 40 'rajoita nopeutta
    Type AMMUS
        Field objec%
        Field elos%
    End Type

    Type VIHU
        Field obj%
        Field veri%
        Field elossa%
    End Type



arial_big = LoadFont("Arial",ScreenWidth()/15,ON,OFF,ON)
Repeat
    SetFont arial_big
    If TextBut(ScreenWidth()/2,ScreenHeight()/2-50,"Aloita peli",cbDarkRed,cbRed) Then Goto Peli
    //TextBut(200,125,"Lataa",cbDarkRed,cbRed,cbDark,1)
    If TextBut(ScreenWidth()/2,ScreenHeight()/2+50,"Lopeta",cbDarkRed,cbRed) Then End
    DrawScreen
Until EscapeKey()

Function TextBut(x,y,txt$,r1,g1,b1,r2,g2,b2,r3=0,g3=0,b3=0,disabled = 0)
r=getRGB(RED)
g=getRGB(GREEN)
b=getRGB(BLUE)
x2=x-TextWidth(txt$)/2
y2=y-TextHeight(txt$)/2
If MouseX()>x2-1 And MouseX()<(x2+TextWidth(txt$))+1 And MouseY()>y2-1 And MouseY()<(y2+TextHeight(txt$))+1 And disabled = 0 Then
Color r2,g2,b2
gi=1
Else
Color r1,g1,b1
EndIf
If disabled Then Color r3,g3,b3
CenterText x,y,txt$,2
If gi And MouseHit(1) Then Return 1
EndFunction



peli:
    viihuja=2   //kuinka montaa sorttia vihollisia
    dead=OFF
    lvl=1
    DeleteFont arial_big
    kartta = LoadMap("Media\race2.til","Media\tileset.bmp")
    car = LoadObject("Media\car2.bmp", 72)
    ääniAmmu = LoadSound ("media\Blaster.wav")
    huuto = LoadSound ("media\scream1.wav")
    pati=LoadObject("media\bullet.bmp")
    SetupCollision car, kartta, 1, 4, 2
    
    Dim AMMUS_ELOSSA(100) 
    Dim AMMUS_OBJ(100)    
    Dim AMMUS_ELOSSA2(100) 
    Dim AMMUS_OBJ2(100)  
    Dim merk(100)
    
    music=ON
    
peli2:  

     
    autojenkäännösnopeus = 5
    ShowObject pati,OFF
 
    For a=1 To lvl*5
        vihumäärä=vihumäärä+1
    Next a
    aa=vihumäärä
    
    For ooo=1 To viihuja
        If ooo=1    
            cloonattava_vihu=LoadObject("media\guy.bmp",72)
            cloonattava_veri=LoadObject("media\blood+bones23.png")
            merk(ooo)=1
        ElseIf ooo=2     
            cloonattava_vihu=LoadObject("media\soldier.bmp")
            cloonattava_veri=LoadObject("media\blood+bones.png")
            merk(ooo)=2
        Else
            cloonattava_vihu=LoadObject("media\target.bmp")
            cloonattava_veri=LoadObject("media\blood+bones.png")
            merk(ooo)=3
        EndIf
        ShowObject cloonattava_vihu,OFF
        ShowObject cloonattava_veri,OFF
        
        For i=1 To aa //- dead * osumat 'ei miinusteta mitään jos ei olla kuolleita
            positionx=Rand(-300,300)
            positiony=Rand(-300,300)
            maara.VIHU = New(VIHU)
            maara\obj=CloneObject(cloonattava_vihu)
            maara\veri=CloneObject(cloonattava_veri)
            PositionObject maara\obj, positionx,positiony
            SetupCollision maara\obj, kartta,1,4,2
            TurnObject maara\obj, Rand (0,360)     
            ShowObject maara\veri,OFF
            maara\elossa=1
            vihumäärä=vihumäärä+1    
        Next i
    Next ooo
    
    hp_car1=200
    vauhti#=1

    Repeat
        //LIIKKUMINEN
        If KeyDown(cbKeyA) Then TurnObject car,autojenkäännösnopeus
        If KeyDown(cbKeyD) Then TurnObject car,-autojenkäännösnopeus
       // If KeyDown(cbKeyW) Then MoveObject car, vauhti#
       // If KeyDown(cbKeyS) Then MoveObject car,-vauhti#
        CloneCameraPosition car
        //KIIHTYYYS
        If vauhti#<10 And KeyDown(cbkeyw) Then
            If Timer()>record+300 Then
                vauhti#=vauhti#+1
                record=Timer()
            EndIf 'liikuta autoa
        Else 
            vauhti#=vauhti#-1
            If vauhti#<0.5 Then vauhti#=0 
        EndIf
   
        MoveObject car, vauhti#
        
        If CountCollisions(car) Then
            If Timer()>recorde+100 Then
                vauhti#=vauhti#-0.5
                recorde=TIMER()
            EndIf
        EndIf
        
        ////TEKOÄLY LIIKKUMINEN
        For ooo=1 To viihuja
        
                For maara.VIHU=Each VIHU
                    MoveObject maara\obj,Rand(0.5,2)
                    If CountCollisions(maara\obj) Then TurnObject maara\obj, Rand (0,16)
                    If ObjectsOverlap(car,maara\obj) Then
                        // ObjectOrder maara\obj2,-1 
                        ObjectOrder maara\obj,-1 
                        ObjectOrder kartta,-1 
                        vauhti#=vauhti#-0.25
                        If vauhti#<0.5 Then vauhti#=0 
                        MoveObject maara\obj,0      
                        If maara\elossa=1 Then tapot=tapot+1
                        maara\elossa=0
                        //PlaySound huuto, 50
                        ShowObject maara\obj,OFF
                        If ooo=1 
                            ShowObject maara\veri,ON
                            ObjectOrder maara\veri,-1 
                            ObjectOrder kartta,-1 
                            PositionObject maara\veri, ObjectX(maara\obj),ObjectY(maara\obj)
                        Else
                            ShowObject maara\veri,ON
                            ObjectOrder maara\veri,-1 
                            ObjectOrder kartta,-1 
                            PositionObject maara\veri, ObjectX(maara\obj),ObjectY(maara\obj)
                        EndIf
                    EndIf
                Next maara
         
        
        
        ////TEKOÄLY    AMPUMINEN

       For maara.VIHU=Each VIHU
          If maara\elossa=1 Then 
                ammutaanko=Rand (1,3)
                If ammutaanko =1 Then
                    If (0<(GetAngle (ObjectX(maara\obj),ObjectY(maara\obj),ObjectX(car),ObjectY(car)))<45) Then //Or (GetAngle (ObjectX(maara\obj),ObjectY(maara\obj),ObjectX(car),ObjectY(car))>315) Then
                        If (Distance2 (maara\obj, car) < 200) Then
                            If ObjectSight(maara\obj,car) Then
                            //////////////////ONGELMAKOHTA///////////////
                            //////////////////ONGELMAKOHTA///////////////
                            //////////////////ONGELMAKOHTA///////////////
                                If ooo=1 
                                    TurnObject maara\obj,10 'jos vihu on tyyppiä 1
                                ElseIf ooo=2
                                    PointObject maara\obj,car 'jos vihu on tyyppiä 2
                                Else
                                    TurnObject maara\obj,5 'jos vihu on muuta kuin 1 tai 2
                                EndIf
                                If reload=0 Then 
                                     Gosub LisääAmmus //(pati)
                                     PlaySound ääniAmmu,50
                                     MoveObject maara\obj,0.3
                                EndIf
                            EndIf
                        EndIf
                    EndIf
                EndIf
            EndIf
        Next maara

        Next ooo  

        
        If reload>0 Then reload=reload-1
        Gosub PäivitäAmmukset
        DrawGame
        
        Text 10,10,"nopeus:"+vauhti#
        Text 10,42,"Tapot:"+tapot+" / "+vihumäärä
        energybar(HP_car1,damage)
        
        Musa(music)     
        

        If MouseX()< 930 And MouseX()> 900 And MouseY()<21 And MouseY()>5 Then
          If MouseDown(1) Then
              Music=ON
          EndIf
        EndIf
        If MouseX()< 960 And MouseX()> 930 And MouseY()<21 And MouseY()>5 Then
          If MouseDown(1) Then
              Music=OFF
          EndIf
        EndIf
        Color cbwhite
        DrawScreen
        
        If tapot=vihumäärä Then
            dead=ON
            If dead=ON Then
                For maara.VIHU = Each VIHU
                    DeleteObject maara\veri
                    Delete maara
                Next maara
                vihumäärä=0
                tapot=0
                dead=OFF
            EndIf
            ShowObject kartta, OFF
            ShowObject car, OFF
            lvl=lvl+1
            valikko(arial_big)
            damage=0
            ShowObject kartta, ON
            ShowObject car, ON
            Goto peli2
        EndIf
     If music=ON Then
     If SoundPlaying(musaa)=0 Then 
        musaa = PlaySound ("Media\SK_Battle2.mp3")
        If Rand(1,2)=1 Then 
            SetSound musaa,0,100,-100 'vasen kajari
        Else
            SetSound musaa,0,100,100 'oikea kajari
        EndIf
    EndIf
    EndIf
    If music=OFF Then StopSound musaa

    //Goto aaaaaa
    Until EscapeKey()
Return

Function valikko(arial_big)
    Repeat
        Color cbwhite
        CenterText ScreenWidth()/2,ScreenHeight()/2,"SEURAAVA TASO -->"
        If KeyDown(28) Then Return 2
        If MouseHit(1) Then Return 2
        DrawScreen
    Until EscapeKey()
EndFunction


LisääAmmus:
For mara.VIHU=Each VIHU
    For i=1 To 100
        If AMMUS_ELOSSA(i)=OFF Then
            AMMUS_ELOSSA(i)=ON
            AMMUS_OBJ(i)=CloneObject(pati)
            
            CloneObjectPosition AMMUS_OBJ(i),maara\obj
            CloneObjectOrientation AMMUS_OBJ(i),maara\obj
            reload=8'aseen lataus
            
            Exit
        EndIf
    Next i
Next mara  
Return 

PäivitäAmmukset:
 For maara.VIHU=Each VIHU
    For i=1 To 100
        If AMMUS_ELOSSA(i) Then
           MoveObject AMMUS_OBJ(i),1
           If ObjectsOverlap(AMMUS_OBJ(i),car) Or ObjectsOverlap(car,AMMUS_OBJ(i))
                damage=damage+1
           EndIf
           If (GetMap(2, ObjectX(AMMUS_OBJ(i)), ObjectY(AMMUS_OBJ(i))) <> 0) Or ObjectsOverlap(AMMUS_OBJ(i),car) Or ObjectsOverlap(car,AMMUS_OBJ(i)) Then
                DeleteObject AMMUS_OBJ(i)
                AMMUS_ELOSSA(i)=OFF
           EndIf
        EndIf
    Next i
   Next maara    
Return 


Function energybar (HP_car1,damage)
        Color cbred
        Box 10,25,200,15,0
        Box 10,25,HP_car1-damage,15,1
        Color cbwhite
        Text 10,25,"DAMAGE:"
EndFunction

Function musa(music)
      Color cborange
      CenterText 880,6,"Musa:"
      If Music=ON 
        Color cbred
      Else 
        Color cborange
      EndIf
      Box 900,5,30,16,OFF
      Text 905,6,"ON"
      If Music=OFF
        Color cbred
      Else 
        Color cborange
      EndIf
      Box 930,5,30,16,OFF
      Text 932,6,"OFF"
EndFunction   

Tekeillä pikkupelejä ja ohjelmia :)
mato1223
Member
Posts: 69
Joined: Sat Aug 16, 2008 12:04 pm
Location: Rääkkylä

Re: Tyhmät kysymykset

Post by mato1223 »

Mulla ois tyhmä kysymys... Miten saan tehtyä tasohyppelyyn kentän???
lukutoukka
Active Member
Posts: 111
Joined: Fri Jun 13, 2008 9:06 pm

Re: Tyhmät kysymykset

Post by lukutoukka »

Tyhmä kysyms, eli mitenkäs saa taulukon tiedot functioon?
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset

Post by Koodiapina »

lukutoukka wrote:Tyhmä kysyms, eli mitenkäs saa taulukon tiedot functioon?
Parametriksi ei saa, täytyy käyttää globaaleja. PS. Se on funktio, ei functio ;)

EDIT: Ainiin CB:n taulukot tosiaan ovat globaaleja automaagisesti :D
Last edited by Koodiapina on Sat Aug 16, 2008 5:43 pm, edited 2 times in total.
Dande
Active Member
Posts: 193
Joined: Tue Aug 28, 2007 4:30 pm

Re: Tyhmät kysymykset

Post by Dande »

lukutoukka wrote:Tyhmä kysyms, eli mitenkäs saa taulukon tiedot functioon?
CoolBasicissä kaikki taulukot ovat globaaleja, joten senkus vain käytät taulukoita.
Mutta jos kysyt miten niitä välitetään funktion parametreinä, niin vastaus on: ei mitenkään.

Edit: pahus, Grandi ehti ensin, sen siitä saa, kun pitää liikaa välilehtiä auki
mato1223
Member
Posts: 69
Joined: Sat Aug 16, 2008 12:04 pm
Location: Rääkkylä

Re: Tyhmät kysymykset

Post by mato1223 »

Tais olla tyhmä kysymys mutta vastauksista en ymmärtäny oikein :mrgreen:
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset

Post by Koodiapina »

Esimerkki:

Code: Select all

    Dim taulukko(10)
    For i = 0 To 10
        taulukko(i) = Rand(255)
    Next i
    
    tulosta()
    WaitKey
    
    Function tulosta()
        For i = 0 To 10
            Print taulukko(i)
        Next i
    EndFunction 
User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Tyhmät kysymykset

Post by Ilkka »

Miten on mahdollista muuttaa Case komennossa casen numero 1 , vaikka kirjaimeksi k.
eli:

Code: Select all

select tekeminen
Case 1
 ' tekee jotain
end select
Eli muuttaa tuo numero 1 kirjaimeksi. Toivottavasti saatte jotain selvää sillä en ole mikään selittäjä. :lol:
Image
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset

Post by Koodiapina »

Code: Select all

select tekeminen
Case "k"
' tekee jotain
end select
Tekeminen -muuttujan täytyy luonnollisesti olla merkkijono.
Horatio

Re: Tyhmät kysymykset

Post by Horatio »

Miten voin tehä niin et kun mulla on objekti, niin voin esim nostaa sen auton kyytiin nosturilla, ja kun painan jotain, niin se irtoaa nosturista ja menee auton päälle?
Ozcar
Advanced Member
Posts: 439
Joined: Mon Aug 27, 2007 8:43 pm
Location: Helsinki

Re: Tyhmät kysymykset

Post by Ozcar »

Sepä onnistuu tähän malliin: tarkistat, että esine on tarpeeksi lähellä nosturin kauhaa Distancella, ja jos näin on ja vaikkapa speissiä painetaan, niin kopioit joka kierroksella objektille nosturin kauhan koordinaatit, joita sitten ohjailet. Näin objekti on tasan kauhan päällä kauhan liikkuessa, jonka pitäisi luoda illuusio esimerkiksi magneetista. Kun speissiä näpäytetään uudelleen, palautat esineen liikkumaan omassa koodinaatistossaan, ja jos auto on tarpeeksi lähellä, niin siirrät esineen auton päälle. Tässä siis vain tapa miten se tehdään, ei mitään oikeaa koodia ;) itse kokeilemalla sitä oppii parhaiten. Kokeileppa tehdä oma viritelmäsi, ja tule näyttämään sitä tänne, niin voimme sitten katsella, josko siinä olisi paranneltavaa. Koodauksen iloa!
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.

Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
Mr_Noob
Newcomer
Posts: 30
Joined: Tue Aug 28, 2007 1:05 pm
Location: koti
Contact:

Re: Tyhmät kysymykset

Post by Mr_Noob »

Nyt tuli ongelma vastaan taaas. eli ukon pitäis pystyä hyppäämään laatikon päälle ja siitä pois, mutta ukko ei pysty hyppäämään enää, kun se on laatikon päällä. animaatiokaan ei toimi!! Apua?

selventävä koodi, jossa luoti toimii "laatikkona".
(en laittanu omaa koodia, vaan muokkasin esimerkkiin)

Code: Select all


Const PAINOVOIMA = -0.1
                 
yPlus#=0             

FrameLimit 40 'rajoita nopeutta


kenttä=LoadMap("Media\testmap.til","Media\tileset.bmp")
PositionObject kenttä,0,50
PlayObject kenttä,0,0,0.5


oikea=LoadAnimObject("Media\zerorun1.bmp",47,51,0,13)
MaskObject oikea,cbMagenta
ShowObject oikea,OFF
ObjectRange oikea,30,51 'tämä pitää asettaa kaikkiin

'sama vasemmalle
vasen=LoadAnimObject("Media\zerorun2.bmp",47,51,0,13)
MaskObject vasen,cbMagenta
ShowObject vasen,OFF
ObjectRange vasen,30,51 'tämä pitää asettaa kaikkiin

'------------------------------------
bx=LoadObject("media\bigbullet.bmp")
SetupCollision bx,kenttä,1,4,2
'------------------------------------


pelihahmo=CloneObject(oikea)
SetupCollision pelihahmo,kenttä,1,4,2
ObjectRange pelihahmo,30,51 'tämä pitää asettaa kaikkiin

'--------------------------------
SetupCollision pelihahmo,bx,1,1,2
'--------------------------------

Repeat
    '-----------------------
    TranslateObject bx,0,-2
    '----------------------

    vauhti=0 'oletuksena ei liikettä

    If RightKey() Then 
        'juokse oikealle
        PaintObject pelihahmo,oikea 'vaihda kuvaa...
        If maassa Then PlayObject pelihahmo,2,11,0.25
        vauhti=2 'vauhtia oikealle
    ElseIf LeftKey() Then
        'juokse vasemmalle
        PaintObject pelihahmo,vasen 'vaihda kuvaa...
        If maassa Then PlayObject pelihahmo,2,11,0.25
        vauhti=-2 'vauhtia vasemmalle
    Else 
        'pysäytä animaatio, jos ei liikuta
        PlayObject pelihahmo,0
    EndIf
    
    'liikuta pelihahmoa
    TranslateObject pelihahmo,vauhti,yPlus#
    yPlus=yPlus+PAINOVOIMA 'päivitä painovoima    
    
    UpdateGame 'päivitä törmäys
    CloneCameraPosition pelihahmo 'liimaa kamera
    
    maassa=0 'ilmassa jollei toisin käy ilmi
    törmäykset=CountCollisions(pelihahmo)
    'katsotaan tärmätäänkö kattoon tai lattiaan
    For i=1 To törmäykset
        If GetCollision(pelihahmo,i)=kenttä
            'lattia
            If CollisionAngle(pelihahmo,i)=90 Then 
                yPlus#=-1
                maassa=1 'jalat on maassa
            EndIf
            'katto
            If CollisionAngle(pelihahmo,i)=270 Then 
                yPlus#=-1
            EndIf
        EndIf
    Next i 
       
    'jos ollaan ilmassa, näytä toisenlainen kuva
    If törmäykset=0 Then PlayObject pelihahmo,12,0
    
    'HYPPY (vain jos jalat maassa)
    If KeyHit(cbKeyZ) And maassa Then 
        yPlus#=4.5 'voimaa ylös päin
    EndIf

    DrawScreen 'piirrä näyttö

Until EscapeKey()

programmer of DSG wrote:
EDIT:

aika hauska peli, vähän tylsä

typerys

Re: Tyhmät kysymykset

Post by typerys »

Tää on tosi typerä kysymys, mut miten saan sellasen:
ostat auton kaupasta, niin rahan pitäisi vähentyä.
eli
if keyhit (cbkeyspace) then raha=-40
jotenki tollanen pitäis saaha onnistumaa
mato1223
Member
Posts: 69
Joined: Sat Aug 16, 2008 12:04 pm
Location: Rääkkylä

Re: Tyhmät kysymykset

Post by mato1223 »

Code: Select all

Const PAINOVOIMA = -0.1
                 
yPlus#=0             

FrameLimit 40 'rajoita nopeutta


kenttä=LoadMap("Media\testmap.til","Media\tileset.bmp")
PositionObject kenttä,0,50
PlayObject kenttä,0,0,0.5


oikea=LoadAnimObject("Media\zerorun1.bmp",47,51,0,13)
MaskObject oikea,cbMagenta
ShowObject oikea,OFF
ObjectRange oikea,30,51 'tämä pitää asettaa kaikkiin

'sama vasemmalle
vasen=LoadAnimObject("Media\zerorun2.bmp",47,51,0,13)
MaskObject vasen,cbMagenta
ShowObject vasen,OFF
ObjectRange vasen,30,51 'tämä pitää asettaa kaikkiin

'------------------------------------
bx=LoadObject("media\bigbullet.bmp")
SetupCollision bx,kenttä,1,4,2
'------------------------------------

pelihahmo=CloneObject(oikea)
SetupCollision pelihahmo,kenttä,1,4,2
ObjectRange pelihahmo,30,51 'tämä pitää asettaa kaikkiin

'--------------------------------
SetupCollision pelihahmo,bx,1,1,2
'--------------------------------

Repeat
    '-----------------------
    TranslateObject bx,0,-2
    '----------------------

    vauhti=0 'oletuksena ei liikettä

    If RightKey() Then 
        'juokse oikealle
        PaintObject pelihahmo,oikea 'vaihda kuvaa...
        If maassa Then PlayObject pelihahmo,2,11,0.25
        vauhti=2 'vauhtia oikealle
    ElseIf LeftKey() Then
        'juokse vasemmalle
        PaintObject pelihahmo,vasen 'vaihda kuvaa...
        If maassa Then PlayObject pelihahmo,2,11,0.25
        vauhti=-2 'vauhtia vasemmalle
    Else 
        'pysäytä animaatio, jos ei liikuta
        PlayObject pelihahmo,0
    EndIf
    
    'liikuta pelihahmoa
    TranslateObject pelihahmo,vauhti,yPlus#
    yPlus=yPlus+PAINOVOIMA 'päivitä painovoima    
    
    UpdateGame 'päivitä törmäys
    CloneCameraPosition pelihahmo 'liimaa kamera
    
    maassa=0'ilmassa jollei toisin käy ilmi
    törmäykset=CountCollisions(pelihahmo)
    'katsotaan tärmätäänkö kattoon tai lattiaan
    For i=1 To törmäykset
        If GetCollision(pelihahmo,i)=kenttä
            'lattia
            If CollisionAngle(pelihahmo,i)=90 Then 
                yPlus#=-1
                maassa=1 'jalat on maassa
            EndIf
            'katto
            If CollisionAngle(pelihahmo,i)=270 Then 
                yPlus#=-1
            EndIf
        EndIf
    Next i 
       
    'jos ollaan ilmassa, näytä toisenlainen kuva
    If törmäykset=0 Then PlayObject pelihahmo,12,0
    
    'HYPPY (vain jos jalat maassa)
    If KeyHit(cbKeyZ) And maassa Then 
        yPlus#=4.5 'voimaa ylös päin
    EndIf

    If KeyHit(cbKeyZ) And bx Then
        yPlus#=4.5
    EndIf

    DrawScreen 'piirrä näyttö

Until EscapeKey()
Tossa ois korjasin ongelman
Locked