Page 14 of 154

Re: Tyhmät kysymykset

Posted: Fri Dec 21, 2007 12:22 pm
by reeperi
No tässä tyhmä kysymys:
Mikä on vikana kun teen ihan treeninä tällästä tasaloikintaa ja koitan saada ukkelin törmäämään mapin HIT kerrokseen, mutta se ei koskaan törmää siihen vaan tippuu pois ruudulta???

Koodi:

Code: Select all

'21.12.2007
FrameLimit 40
Include "cbGravitationPhysics.cb"


'kartan lataus
mappi1= LoadMap ("111.til","Default.bmp")
SetMap mappi1,ON,ON 

'ukon lataus
ukko= LoadObject ("ukko.bmp")
MaskObject ukko,255,0,255
PositionObject ukko,10,10
setupCollision ukko,mappi1,1,4,2


Repeat
    UpdateGravity(mappi1)


        If RightKey() Then MoveObject ukko,2
        If LeftKey() Then MoveObject ukko,-2

DrawScreen 

Forever

Re: Tyhmät kysymykset

Posted: Fri Dec 21, 2007 1:18 pm
by Jonez
Kyllä se mulla toimii (kun vaihdan median). Oletko varma että sun omassa mapissa todella on hit-kerrokset määritetty?

Code: Select all

    '21.12.2007
    SCREEN 800, 600
    FrameLimit 40
    Include "C:\Program Files\CoolBasic\SDK\include\cbGravitationPhysics.cb"



    'kartan lataus
    mappi1= LoadMap ("media\cdm2.til","media\tileset.bmp")
    SetMap mappi1,ON,ON

    'ukon lataus
    ukko= LoadObject ("media\cow.bmp")
    MaskObject ukko, cbBlack
    PositionObject ukko,10,10
    SetupCollision ukko,mappi1,1,4,2


    Repeat
        UpdateGravity(mappi1)


            If RightKey() Then MoveObject ukko,3
            If LeftKey() Then MoveObject ukko,-3
            
            If KeyHit(cbkeyspace) Then jumpObject(ukko, 10)
            CloneCameraPosition ukko
            
    DrawScreen

    Forever

Re: Tyhmät kysymykset

Posted: Fri Dec 21, 2007 1:24 pm
by reeperi
Kyllä ne mun mielestä pitäis olla.. No, koitan miettiä ongelmaa vielä itsekseni. Kiitos kuitenkin vaivan näöstä! :D

Muokkaus:
PRKL, se toimii. Häsläsin jotain Tilesterin kanssa ja nyt se toimii!!!! :D:D:D

Re: Tyhmät kysymykset

Posted: Fri Dec 21, 2007 1:32 pm
by Quest
Ei ehkä niin tyhmä kysymys, silti: Miten tehdä sellainen windowsista tuttu avaruuden läpilentämis illuusio, joka löytyy tai ainakin löytyi näytönsäästäjänä. Eli pisteet ilmestyvät keskelle ja suurenevat ja leviävät sitten ympärille? Olisin todella kiitollinen jos joku edes antaisi vähän vinkkiä.

Re: Tyhmät kysymykset

Posted: Fri Dec 21, 2007 2:35 pm
by CCE
Luot ruudun keskeltä partikkeleita eri suuntiin.
Jokaisella partikkelilla on x,y ja z arvot, sekä suunta
Z-arvoa kasvatetaan kokoajan, ja mitä enemmän se on, sitä enemmän liikutetaan tähteä sen menosuuntaan kerrallaan.
Jokaisen partikkelin koko riippuu sen z-akselin paikasta, mitä suurempi arvo, sitä suurempi tähti.
Ja luonnollisesti ruudusta ulos kiitävät tähdet poistetaan.

Suunnilleen noin minä sen tekisin.

Re: Tyhmät kysymykset

Posted: Fri Dec 21, 2007 2:40 pm
by regalis
Jos ei halua/osaa tehdä itse sellaista, RainEnginestä saa vähän modaamalla ihan näppärän "hyperajoefektin".

Re: Tyhmät kysymykset

Posted: Fri Dec 21, 2007 3:31 pm
by Jonez
Tällaisen koodasin itse. Siellä on jopa pieni easter egg mukana :)

Code: Select all

SCREEN 800, 600

Type STARS
    Field x As Float
    Field y As Float
    Field z As Float
End Type

Dim ps As Float, sx As Float, sy As Float

SCRwidth = ScreenWidth() / 2
SCRheight = ScreenHeight() / 2

max_distance# = 100             //Kuinka kaukaata tähdet näkyvät
scatter# = 200                  //Kuinka leveällä alueella tähdet ovat
speed# = 0.1                      //nopeus
starSize = 10                   //Tähtien koko
starAmount = 100                //tähtien kokonaismäärä

For i = 1 To starAmount
    ns.STARS = New(STARS)
    ns\x = Rand(-scatter, scatter)
    ns\y = Rand(-scatter, scatter)
    ns\z = Rand(-max_distance, 0)
Next i

Repeat
    //ota seuraava rivi pois käytöstä niin saat ohjelman normaaliksi
    speed = speed + 0.02

    For is.STARS = Each STARS
        is\z = is\z + speed
        
        ps = (1 / is\z) * 100
        
        sx = is\x * ps + SCRwidth
        sy = is\y * ps + SCRheight
        
        size = starSize - (is\z / max_distance * -starSize)
        If is\z < 0 And is\z > -max_distance Then
            Circle sx, sy, size
        EndIf
        
        If is\z > 0 Then
            Delete is        
        
            ns.STARS = New(STARS)
            ns\x = Rand(-scatter, scatter)
            ns\y = Rand(-scatter, scatter)
            ns\z = -max_distance
        EndIf      
    Next is

    If speed > 10 Then 
        Circle 0, 0, SCRwidth + SCRheight / 2
        DrawScreen
        MakeError "Törmättiin 32.12 -kertaisella valonnopeudella tähteen." + Chr(10) + Chr(13) + "Sen siitä saa kun hurjastelee intergalaktisella moottoritiellä ylinopeutta!"  
    EndIf

    DrawScreen
Forever

Saat ohjelmasta juuri sellaisen kuin halusit (ehkä) poistamalla yhden rivin. Se rivi kerrotaan koodissa.

Re: Tyhmät kysymykset

Posted: Fri Dec 21, 2007 6:29 pm
by Quest
Hehheh, kiitos todella paljon.

Re: Tyhmät kysymykset

Posted: Sat Dec 22, 2007 6:24 pm
by Zrazy_Coder
Oon kysyny tätä ennenkin.Taas se mun Stick Fighter2.0 onkelma.Eli miten mun pitäis tehä se ,että jos vihollinen seisoo mun eessä se mun ukko potkasee ja se osuu vihuun niin vihu menettää esim.10 hp.Oon yrittäny sillei että "Silmä1" niminen objekti laitetaan sen ukko1 pään kohalle ja sillä "silmä1" objektilla on noin 5 asteen näkö ja se silmä aina kääntyy jos ukko kääntyy.Jos "silmä1" näkee vihun ja samalla potkastaan niin on... ja jos on ... ja se osuu vihuun niin vihu menettää hp:tä.Aika epäselvä :(

Re: Tyhmät kysymykset

Posted: Sat Dec 22, 2007 10:31 pm
by koodaaja
Zrazy_Coder wrote:Oon kysyny tätä ennenkin.Taas se mun Stick Fighter2.0 onkelma.Eli miten mun pitäis tehä se ,että jos vihollinen seisoo mun eessä se mun ukko potkasee ja se osuu vihuun niin vihu menettää esim.10 hp.Oon yrittäny sillei että "Silmä1" niminen objekti laitetaan sen ukko1 pään kohalle ja sillä "silmä1" objektilla on noin 5 asteen näkö ja se silmä aina kääntyy jos ukko kääntyy.Jos "silmä1" näkee vihun ja samalla potkastaan niin on... ja jos on ... ja se osuu vihuun niin vihu menettää hp:tä.Aika epäselvä :(
Kokeile meneekö potkaisevan jalan animaatio päällekkäin vihun kuvan kanssa. Siis olettaen, että luot uuden objektin animaatiota varten, ja laitat sen ukon alle. ObjectsOverlap voi olla varsin hyödyllinen komento.

Re: Tyhmät kysymykset

Posted: Sun Dec 23, 2007 12:06 pm
by Zrazy_Coder
Öh.Mites saan tarkistettua osuuko vihu jalkaan kun jalka on kiinni UKKO1. :?: . Ja jos se osuu jalkaan niin se ois sama, kun se osuis siihen UKKO1:seen.tai en vaan tajunnu.Mitä siis tarkotit ?

Re: Tyhmät kysymykset

Posted: Sun Dec 23, 2007 1:30 pm
by koodaaja
Zrazy_Coder wrote:Öh.Mites saan tarkistettua osuuko vihu jalkaan kun jalka on kiinni UKKO1. :?: . Ja jos se osuu jalkaan niin se ois sama, kun se osuis siihen UKKO1:seen.tai en vaan tajunnu.Mitä siis tarkotit ?
Siis teet erillisen jalkaobjektin potkaisua varten. Tämä tosin on valitettavan purkkaa. Kannattaa mieluummin käyttää kuvia tällaisiin, ei tarvitse kikkailla useiden objektien kanssa ;D

Re: Tyhmät kysymykset

Posted: Mon Dec 24, 2007 5:33 pm
by Zrazy_Coder
Joo, en tee mitään erillaista jalkaobjektia , vaan yritän tehä sillä näkö hommalla sen, että jos Silmä1 näkee Ukko2 ja potkastaan niin päläpälä.Ja jos päläpälä ja se osuu "ukko1" osuu "ukko2":seen niin "ukko2hp"-10.Miten tollanen kannattais tehä, ehkä vähän purkka, mutta se erillinen objekti on vähän outo.

Re: Tyhmät kysymykset

Posted: Tue Dec 25, 2007 2:58 am
by koodaaja
Zrazy_Coder wrote:Joo, en tee mitään erillaista jalkaobjektia , vaan yritän tehä sillä näkö hommalla sen, että jos Silmä1 näkee Ukko2 ja potkastaan niin päläpälä.Ja jos päläpälä ja se osuu "ukko1" osuu "ukko2":seen niin "ukko2hp"-10.Miten tollanen kannattais tehä, ehkä vähän purkka, mutta se erillinen objekti on vähän outo.
Äärimmäisen purkkaahan se on, jos rupeat jotain silmäobjekteja tekemään. Laske mieluummin ihan vaikka geometriaa käyttäen, teet siis jalan kohdalle neliön ja vihun päälle neliön, ja huomaat, että CB tekisi saman yhdellä komennolla ja pikselin tarkkuudella. Ei se erillinen objekti outo ole, esimerkiksi isometrisiä pelejä koostettaessa ainakin itselläni tuppaa grafiikan minimoimiseksi olemaan erikseen pää, vartalo ja kaikki raajat sekä käsissä olevat esineet.

Re: Tyhmät kysymykset

Posted: Tue Dec 25, 2007 9:34 pm
by vilQuri
Miten voin asettaa tilekartan taakse taustan vai pitääkö se pistää suoraan karttaan? :D

Re: Tyhmät kysymykset

Posted: Tue Dec 25, 2007 9:44 pm
by Harakka
vilQuri wrote:Miten voin asettaa tilekartan taakse taustan vai pitääkö se pistää suoraan karttaan? :D
Jos tavallinen kuva riittää, piirrä se loopissa ennen DrawGamea (jos käytät kyseistä komentoa).

Re: Tyhmät kysymykset

Posted: Wed Dec 26, 2007 12:26 am
by -Z-
Nyt on paha ongelma, jonka eessä oon aivan neuvotonna. Tässä on koodi (ei tietenkään koko):

Code: Select all

    For soldier.DUDE = Each DUDE
    For mgrid.MOVEGRID = Each MOVEGRID
        
        If MouseWX()>ObjectX(soldier\obj)-15 And MouseWX()<ObjectX(soldier\obj)+15 And MouseWY()<ObjectY(soldier\obj)-15 And MouseWY()>ObjectY(soldier\obj)+15 Then
        End
            If MouseHit(1) Then
                
                For i = 1 To 4
                mgrid.MOVEGRID = New(MOVEGRID)
                mgrid\obj = CloneObject(greengrid)
                CloneObjectPosition  mgrid\obj, soldier\obj
                RotateObject mgrid\obj, rotation
                MoveObject mgrid\obj, 30
                rotation + 90
                Next i
            EndIf
    
            
                If MouseWX()>ObjectX(mgrid\obj)-15 And MouseWX()<ObjectX(mgrid\obj)+15 And MouseWY()>ObjectY(mgrid\obj)-15 And MouseWY()<ObjectY(mgrid\obj)+15 Then
                    If MouseHit(1) Then
                        CloneObjectPosition soldier\obj, mgrid\obj
                        For grid.MOVEGRID = Each MOVEGRID
                            DeleteObject grid\obj
                            Delete grid   
                        Next grid
                        Exit
                    EndIf
                    EndIf
                EndIf
            
        Next mgrid        
    Next soldier


kun klikkasin sotilasta hiirellä, ei tapahtunut mitään. Tarkistin rivin neljä pikän toimituksen useaan kertaan virheiden varalta. Heittelin endiä sinne tänne saadakseni virherivin selville. Koin yllätyksen, kun pistin endin riville kolme: Ohjelma ei suljennut heti alkaessaan! Mistä kummasta tässä on kyse?

Re: Tyhmät kysymykset

Posted: Wed Dec 26, 2007 1:05 am
by valscion
-Z- wrote:Nyt on paha ongelma, jonka eessä oon aivan neuvotonna. Tässä on koodi (ei tietenkään koko):

Code: Select all

koodia...


kun klikkasin sotilasta hiirellä, ei tapahtunut mitään. Tarkistin rivin neljä pikän toimituksen useaan kertaan virheiden varalta. Heittelin endiä sinne tänne saadakseni virherivin selville. Koin yllätyksen, kun pistin endin riville kolme: Ohjelma ei suljennut heti alkaessaan! Mistä kummasta tässä on kyse?
Ainakin ihan aluksi, virheiden löytämisen helpottamiseksi, lyhennetäänpäs vähän noita If lausekkeita:

Code: Select all

        For soldier.DUDE = Each DUDE
        For mgrid.MOVEGRID = Each MOVEGRID
           
            If MouseWX()>ObjectX(soldier\obj)-15 And MouseWX()<ObjectX(soldier\obj)+15 
            If MouseWY()<ObjectY(soldier\obj)-15 And MouseWY()>ObjectY(soldier\obj)+15
                End
                If MouseHit(1) Then
                   
                    For i = 1 To 4
                        mgrid.MOVEGRID = New(MOVEGRID)
                        mgrid\obj = CloneObject(greengrid)
                        CloneObjectPosition  mgrid\obj, soldier\obj
                        RotateObject mgrid\obj, rotation
                        MoveObject mgrid\obj, 30
                        rotation + 90
                    Next i
                EndIf
       
               
                If MouseWX()>ObjectX(mgrid\obj)-15 And MouseWX()<ObjectX(mgrid\obj)+15
                If MouseWY()>ObjectY(mgrid\obj)-15 And MouseWY()<ObjectY(mgrid\obj)+15
                    If MouseHit(1) Then
                        CloneObjectPosition soldier\obj, mgrid\obj
                        For grid.MOVEGRID = Each MOVEGRID
                            DeleteObject grid\obj
                            Delete grid   
                        Next grid
                        Exit
                    EndIf
                EndIf
                EndIf
            EndIf
            EndIf
               
            Next mgrid       
        Next soldier
Ja nytten päästään sitten tutkailemaan koodia... taisin löytää yhden jännän rivin, edittaan sitten tätä viestiä.

miniedit: Niin joo, tuo End:hän astuu voimaan vasta kun hiiri on tietyssä paikassa, siksi ohjelma ei sammu heti.
EDIT:

Muokkasinkin sen virheen jo tuohon koodiin. Koodistasi siis puuttui yksi EndIf, ihmettelen vain miksi parseri ei valittanut mitään. Testaa tuota minun koodiani ja kerro jos ei toimi.


Re: Tyhmät kysymykset

Posted: Fri Dec 28, 2007 9:48 am
by -Z-

Code: Select all

    For soldier.DUDE = Each DUDE
    For mgrid.MOVEGRID = Each MOVEGRID

        If MouseWX()>ObjectX(soldier\obj)-15 And MouseWX()<ObjectX(soldier\obj)+15 And MouseWY()<ObjectY(soldier\obj)-15 And MouseWY()>ObjectY(soldier\obj)+15 Then        
            If MouseHit(1) Then                
                For i = 1 To 4
                mgrid.MOVEGRID = New(MOVEGRID)
                mgrid\obj = CloneObject(greengrid)
                CloneObjectPosition  mgrid\obj, soldier\obj
                RotateObject mgrid\obj, rotation
                MoveObject mgrid\obj, 30
                rotation + 90
                Next i
            EndIf
        EndIf

        If MouseWX()>ObjectX(mgrid\obj)-15 And MouseWX()<ObjectX(mgrid\obj)+15 And MouseWY()>ObjectY(mgrid\obj)-15 And MouseWY()<ObjectY(mgrid\obj)+15 Then
            If MouseHit(1) Then
                CloneObjectPosition soldier\obj, mgrid\obj
                For grid.MOVEGRID = Each MOVEGRID
                    DeleteObject grid\obj
                    Delete grid   
                Next grid
                Exit
             EndIf
        EndIf
        
    Next mgrid  
    Next soldier
Nyt on EndIf:it paikoillaan, ja koodia muutenkin korjailtu, muttei siltikään toimi. End riville kolme = ohjelma rullaa yhä vaikka maailmanloppuun asti. Voisiko joku oikeasti osaava auttaa?

(Yhtään endifiä ei muuten edes puuttunut, yksi oli vain väärässä kohtaa)

Re: Tyhmät kysymykset

Posted: Fri Dec 28, 2007 12:39 pm
by iTKEVAnAKKI

Code: Select all

If zombie/huomannut=OFF Then
Miksi tulee "Operand type mismatch. You can't perform this mathematical operation to these operands. " Eli yritän laskea jotain? vaikka eihän tuossa tehdä mitään "laitonta"?