Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
Sputnik

Re: Tyhmät kysymykset

Post by Sputnik »

Sori tuplapostaus, mut vieras ei voi muokata viestejä.

Nyt ratkasin ton ukon näkymisen ja muun omalla tavallani, mutta vielä on se et se tippuu lattian läpi ku menee taas normaaliin muotoon. Johtuuko se siitä että se eipalloobjekti menee normaaliks muututtaessa osittain lattian alle? Miten se korjataan?
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

Kun muututaan tavalliseksi hahmoksi, käynnistä looppi, jossa hahmoa siirretään ylöspäin joka kerralla. Laita looppi loppumaan kun hahmo ei törmää kentään.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Sputnik

Re: Tyhmät kysymykset

Post by Sputnik »

Harakka wrote:Kun muututaan tavalliseksi hahmoksi, käynnistä looppi, jossa hahmoa siirretään ylöspäin joka kerralla. Laita looppi loppumaan kun hahmo ei törmää kentään.
Tein tuon, tuli "Integer divided by zero". :?:
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

Näytäppä sitä koodiasi. Jos teit loopin oikein, tuollaista ilmoitusta ei pitäisi tulla.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
User avatar
wilizucoder
Member
Posts: 81
Joined: Sat Sep 08, 2007 11:24 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by wilizucoder »

Miten saa toistettua animaation loppuun ilman, että se alkaa toistaa itseään, jos näpäytetään jotakin nappia? On vähä tyhmä kysynys, mut ei vaan tuu mieleen.
Sputnik

Re: Tyhmät kysymykset

Post by Sputnik »

Okei. Tässä:

Code: Select all








Const HAHMOPAINOVOIMA = -0.1 'painoviman voimakkuus
                        'pienempi->suurempi pv.
                        'positiiviset arvot->
                        'painovoima ylöspäin?!
                        
                        


yPlus#=0                'Tämä hallitsee hyppyä


'JOS PELI TÖKKII TAI PÄTKII TAI NYKII, MUUTA:
' 1) cbSizable -> cbFullScreen
' 2) poista rivi 23

FrameLimit 40 'rajoita nopeutta
'-------------------------------------------------
'lataa kartta, siirrä sitä ylöspäin ja animoi se.
kenttä=LoadMap("bottiacademy.til","tileset.bmp")
PositionObject kenttä,0,50
PlayObject kenttä,0,0,0.5
MaskObject kenttä, cbMagenta




fontti2=LoadFont("Times New Roman",13)
SetFont fontti2















'lataa animaatiosarja oikealle, maskaa ja piilota se
oikea = LoadAnimObject("bottirun1.bmp",47,51,0,13) 'kuva oikealle juoksevasta
MaskObject oikea,cbmagenta 'magenta läpinäkyväksi
ShowObject oikea,OFF 'ja piilotetaan
ObjectRange oikea,30,51 'tämä pitää asettaa kaikkiin
vasen = LoadAnimObject("bottirun2.bmp",47,51,0,13) 'sama juttu vasemmalle
MaskObject vasen,cbMagenta
ShowObject vasen,OFF
ObjectRange vasen,30,51 'tämä pitää asettaa kaikkiin
kierivä=LoadObject("bottikierii1.bmp")
MaskObject kierivä,cbMagenta
ShowObject kierivä,OFF
kierivä=LoadAnimObject("bottikierii1.bmp",51,16,0,13)
MaskObject kierivä,cbMagenta
ShowObject kierivä,OFF
kieriväi=CloneObject (kierivä):MirrorObject (kieriväi)
MaskObject kieriväi,cbMagenta
ShowObject kieriväi,OFF
ObjectRange kierivä,51,16 'tämä pitää asettaa kaikkiin
ObjectRange kieriväi,51,16 'tämä pitää asettaa kaikkiin
piste=MakeObject()




kontrollit=1

ClsColor cbCyan

pelihahmo=CloneObject(oikea)
SetupCollision pelihahmo,kenttä,1,4,2

ObjectRange pelihahmo,30,51 'tämä pitää asettaa kaikkiin
'-------------------------------------------------





ObjectOrder pelihahmo,1



'''''''''''''''''RIPIITTI'''''''''''''''

'Pääsilmukka''''''''---------''''''''--------''''''''-------'''''''----------''''''------''''--
Repeat

'''''''''''RIPIITTI''''''''''''''''''''''''''''''



    vauhti=0 'oletuksena ei liikettä
    pallomuoto=0

If kontrollit=1 Then
    If RightKey() Then 
        'juokse oikealle
        PaintObject pelihahmo,oikea 'vaihda kuvaa...
        suunta=6
        If maassa Then PlayObject pelihahmo,2,11,0.01
        vauhti=2 'vauhtia oikealle
        
       If KeyDown(cbKeyC) Then PaintObject pelihahmo,kieriväi:pallomuoto=1

    ElseIf LeftKey() Then
        'juokse vasemmalle
        PaintObject pelihahmo,vasen 'vaihda kuvaa...
        suunta=-6
        If maassa Then PlayObject pelihahmo,2,11,0.01
        vauhti=-2 'vauhtia vasemmalle
        
       If KeyDown(cbKeyC) Then PaintObject pelihahmo,kierivä:pallomuoto=1

    Else 
        'pysäytä animaatio, jos ei liikuta
        PlayObject pelihahmo,0
    EndIf
    
    
  
    
    
    
    
    'liikuta pelihahmoa
    TranslateObject pelihahmo,vauhti,yPlus#
    yPlus=yPlus+HAHMOPAINOVOIMA '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 KeyDown(cbKeyZ) And maassa Then 
        yPlus#=4.5 'voimaa ylös päin
    If KeyDown(cbKeyS) Then
        yPlus#=5.5
    EndIf
    EndIf
EndIf










If ObjectsOverlap(pelihahmo,kenttä,3) And pallomuoto=1 Then Repeat:TranslateObject pelihahmo,0,1:Until ObjectsOverlap(pelihahmo,kenttä,3)=0


        
 
 

DrawScreen
Forever
Ja tyrkyttää Integer Divided by zeroa.
regalis
Advanced Member
Posts: 268
Joined: Mon Aug 27, 2007 9:44 pm

Re: Tyhmät kysymykset

Post by regalis »

Eikö SDK:n API-funktioilla pysty lukemaan liukulukua INI-tiedostosta? Tarvitsisin tätä ominaisuutta, mutta jos se ei ole mahdollista, niin pitää varmaankin laittaa INI-tiedostoon liukuluvut esimerkiksi sadasosina jotka sitten ohjelmassa muutetaan desimaaleiksi (156 -> 1.56 jne).
Valtzu
Active Member
Posts: 115
Joined: Sun Aug 26, 2007 2:40 pm
Location: Sauvo
Contact:

Re: Tyhmät kysymykset

Post by Valtzu »

regalis wrote:Eikö SDK:n API-funktioilla pysty lukemaan liukulukua INI-tiedostosta? Tarvitsisin tätä ominaisuutta, mutta jos se ei ole mahdollista, niin pitää varmaankin laittaa INI-tiedostoon liukuluvut esimerkiksi sadasosina jotka sitten ohjelmassa muutetaan desimaaleiksi (156 -> 1.56 jne).
Luet merkkijonon ja muutat sen liukuluvuksi. Pitäis toimia.

Code: Select all

liukuluku# = Float(GetIniString(CurrentDir() + "test.ini", "section", "floatti", "1.234"))
cheeshelmet.jr
Member
Posts: 75
Joined: Tue Aug 28, 2007 6:59 am

Re: Tyhmät kysymykset

Post by cheeshelmet.jr »

antakaa jokin hyvä projekti idea sitä kaipaavalle
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 »

cheeshelmet.jr wrote:antakaa jokin hyvä projekti idea sitä kaipaavalle
Jepjep, taitotason kertominen helpottaa aina. Kaikki klassikot (autopelit, räiskinnät, tasoloikat, puzzlepelit) ovat tietysti ihan ok. projuja, mutta ehkä hieman tylsiä, moisia kun on jo ihan riittämiin. Myös vähän vaikeampaan suuntaan voi lähteä, vaikka roolipeli tai strategia, mutta ne taas vaativat työtä, taitoa ja sitkeyttä. Koita keksiä jotain todella omaperäistä, vaikka peli jossa pelataan nestepisaralla, jonka pitää laajentaa itseään yhdistymällä muihin pisaroihin. (ja tästä tulee hetken miettimisen jälkeen epäilyttävästi mieleeni katamari damacy. melkein kaikki hyvät ideat on jo keksitty.)
Sputnik

Re: Tyhmät kysymykset

Post by Sputnik »

Sputnik wrote:Okei. Tässä:
Ja tyrkyttää Integer Divided by zeroa.
Anteeksi, mutta en ole vielä saanut vastausta tähän.
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion »

Sputnik wrote:
Sputnik wrote:Okei. Tässä:
Ja tyrkyttää Integer Divided by zeroa.
Anteeksi, mutta en ole vielä saanut vastausta tähän.
En pikaisesti koodia tutkailemalla saanut vikaa selvittyä. En jaksa alkaa omien grafiikoiden kanssa vääntämään, joten jos voit yksityisviestillä heittää pelin grafiikat niin näkisin missä kohtaa virhe on.

EDIT: --Editti olikin täysin väärää tietoa--
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
User avatar
Ruuttu
Devoted Member
Posts: 688
Joined: Thu Aug 30, 2007 5:11 pm
Location: Finland, Sipoo

Re: Tyhmät kysymykset

Post by Ruuttu »

MIKÄ IHME tässä koodissa on vikana?

Code: Select all

SCREEN 1024,768

kuva=LoadImage("kuva2.bmp")

imagew=ImageWidth(kuva)
imageh=ImageHeight(kuva)

    f=OpenToWrite("Packed.cbi")

        Lock Image(kuva)
        
        For y=1 To imagew
            For x=1 To imageh
            
            //Kuvasta poimitaan värejä
            PickImageColor2 kuva,x,y
        
            Next x
        Next y
        
        Unlock Image(kuva)
        
    CloseFile f
Minä saan MAV in joka kerta, tuo toimii vain jos otan pickimagecolorin pois. Mikä vikana???
(Kuva ON tuossa kansiossa, se on kokoa 400x300, ja bmp muodossa)
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion »

Ruuttu wrote:MIKÄ IHME tässä koodissa on vikana?

Code: Select all

..koodia..
Minä saan MAV in joka kerta, tuo toimii vain jos otan pickimagecolorin pois. Mikä vikana???
(Kuva ON tuossa kansiossa, se on kokoa 400x300, ja bmp muodossa)
Sain tuon toimimaan niin, kun joka kierroksella lukitsin ja avasin puskurin. Eli:

Code: Select all

SCREEN 1024,768

kuva=LoadImage("kuva2.bmp")

imagew=ImageWidth(kuva)
imageh=ImageHeight(kuva)

    f=OpenToWrite("Packed.cbi")
        
        For y=1 To imagew
            For x=1 To imageh

            Lock Image(kuva)
            //Kuvasta poimitaan värejä
            PickImageColor2 kuva,x,y
            Unlock Image(kuva)

            Next x
        Next y
        
    CloseFile f
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
Valtzu
Active Member
Posts: 115
Joined: Sun Aug 26, 2007 2:40 pm
Location: Sauvo
Contact:

Re: Tyhmät kysymykset

Post by Valtzu »

Ruuttu wrote:MIKÄ IHME tässä koodissa on vikana?

Code: Select all

koodi..
Minä saan MAV in joka kerta, tuo toimii vain jos otan pickimagecolorin pois. Mikä vikana???
(Kuva ON tuossa kansiossa, se on kokoa 400x300, ja bmp muodossa)
Yrität lukea kuvan ulkopuolelta. Kuvan vasen yläkulma on 0,0 eli sun pitää selata pikselit läpi nollasta korkeus - 1:n jne.
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 »

Valtzu wrote:
Ruuttu wrote:MIKÄ IHME tässä koodissa on vikana?

Code: Select all

koodi..
Minä saan MAV in joka kerta, tuo toimii vain jos otan pickimagecolorin pois. Mikä vikana???
(Kuva ON tuossa kansiossa, se on kokoa 400x300, ja bmp muodossa)
Yrität lukea kuvan ulkopuolelta. Kuvan vasen yläkulma on 0,0 eli sun pitää selata pikselit läpi nollasta korkeus - 1:n jne.
Kyllä ainakin minulla toimii läpikäynti ihan väliltä 0-imageheight() ja 0-imagewidth(). Ei sinne mitään -1:tä tarvita o: tai sitten vain koneeni ei vain valita siitä, nämä kun tuntuvat CB:llä olevan konekohtaisia..

Myös tuo koodi toimi vaihtamalla vain kuvan nimeä.
nevssons
Devoted Member
Posts: 503
Joined: Sun Jan 13, 2008 5:02 pm

Re: Tyhmät kysymykset

Post by nevssons »

yksinkertainen kysymys:
miten tehdään 3D objekteja?
Koodarina kohtalainen, henkilönä vittumainen
Image
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

Helpoiten 3D-editorilla, mutta ihan simppeleita .obj-objekteja voi vaikka notepadillakin kirjoittaa jos oikein muistan. Blender on loistava ilmainen 3D-softa, suosittelen tutustumista jos 3D-mallinnus kiinnostaa. http://blender.org
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Petse
Newcomer
Posts: 36
Joined: Thu Dec 20, 2007 7:29 am

Re: Tyhmät kysymykset

Post by Petse »

Coolbasik SDK:ssa on myös joitakin sinulle ehkä hyödyllisiä koodeja. ;)
Auta minun kaupunkiani: http://timppacity.myminicity.com/ind. Et menetä mitään
MAV

Re: Tyhmät kysymykset

Post by MAV »

miks Deleteobject mavittaa????
kiitän auttajia ;)

Code: Select all

Const PAINOVOIMA = -0.06
                        
yPlus#=0                
smaragdi=0

SCREEN 320,240,0,cbsizable 
SetWindow "SMARAGDI",3 

FrameLimit 40 

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

maali=LoadObject("media\maali.bmp")
PositionObject maali,-580,-75
MaskObject maali,cbmagenta

Smaragdi=LoadObject("media\smaragdi.bmp")
MaskObject smaragdi,cbmagenta
PositionObject smaragdi,-551,-75

oikea=LoadAnimObject("Media\Ukko2.bmp",15,24,0,4)
MaskObject oikea,cbMagenta
ShowObject oikea,OFF
ObjectRange oikea,10,20

vasen=LoadAnimObject("Media\ukko1.bmp",15,24,0,4)
MaskObject vasen,cbMagenta
ShowObject vasen,OFF
ObjectRange vasen,10,20


pelihahmo=CloneObject(oikea)
SetupCollision pelihahmo,kenttä,1,4,2
ObjectRange pelihahmo,10,20 
PositionObject pelihahmo,-530,-75


Repeat

    vauhti=0

    If RightKey() Then 
       
        PaintObject pelihahmo,oikea 
        If maassa Then PlayObject pelihahmo,2,11,0.25
        vauhti=2 
    ElseIf LeftKey() Then
      
        PaintObject pelihahmo,vasen
        If maassa Then PlayObject pelihahmo,2,11,0.25
        vauhti=-2
    Else 
        
        PlayObject pelihahmo,0
    EndIf
    
    If ObjectsOverlap(pelihahmo,smaragdi)Then 
    smaragdi=1 
    DeleteObject smaragdi 
    EndIf
    If ObjectsOverlap(pelihahmo,maali)And smaragdi=1 Then End 
    
    TranslateObject pelihahmo,vauhti,yPlus#
    yPlus=yPlus+PAINOVOIMA  
    
    UpdateGame 
    CloneCameraPosition pelihahmo
    
    maassa=0
    törmäykset=CountCollisions(pelihahmo)
    
    For i=1 To törmäykset
        If GetCollision(pelihahmo,i)=kenttä
            If CollisionAngle(pelihahmo,i)=90 Then 
                yPlus#=-1
                maassa=1 
            EndIf
          
            If CollisionAngle(pelihahmo,i)=270 Then 
                yPlus#=-1
            EndIf
        EndIf
    Next i 
       
    If törmäykset=0 Then PlayObject pelihahmo,12,0
        If KeyHit(cbKeyZ) And maassa Then 
        yPlus#=4.5 
    EndIf

    DrawScreen 

Until EscapeKey()
Locked