Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
reeperi
Newcomer
Posts: 5
Joined: Mon Nov 05, 2007 10:09 pm
Location: Piikkiö
Contact:

Re: Tyhmät kysymykset

Post by reeperi » Fri Dec 21, 2007 1:22 pm

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
The Monarch

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

Re: Tyhmät kysymykset

Post by Jonez » Fri Dec 21, 2007 2:18 pm

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
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War

User avatar
reeperi
Newcomer
Posts: 5
Joined: Mon Nov 05, 2007 10:09 pm
Location: Piikkiö
Contact:

Re: Tyhmät kysymykset

Post by reeperi » Fri Dec 21, 2007 2:24 pm

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
The Monarch

Quest

Re: Tyhmät kysymykset

Post by Quest » Fri Dec 21, 2007 2:32 pm

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ä.

User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: Tyhmät kysymykset

Post by CCE » Fri Dec 21, 2007 3:35 pm

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.

User avatar
regalis
Advanced Member
Posts: 268
Joined: Mon Aug 27, 2007 9:44 pm

Re: Tyhmät kysymykset

Post by regalis » Fri Dec 21, 2007 3:40 pm

Jos ei halua/osaa tehdä itse sellaista, RainEnginestä saa vähän modaamalla ihan näppärän "hyperajoefektin".

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

Re: Tyhmät kysymykset

Post by Jonez » Fri Dec 21, 2007 4:31 pm

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.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War

Quest

Re: Tyhmät kysymykset

Post by Quest » Fri Dec 21, 2007 7:29 pm

Hehheh, kiitos todella paljon.

Zrazy_Coder
Member
Posts: 60
Joined: Sun Sep 09, 2007 8:46 pm

Re: Tyhmät kysymykset

Post by Zrazy_Coder » Sat Dec 22, 2007 7:24 pm

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ä :(

User avatar
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 » Sat Dec 22, 2007 11:31 pm

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.

Zrazy_Coder
Member
Posts: 60
Joined: Sun Sep 09, 2007 8:46 pm

Re: Tyhmät kysymykset

Post by Zrazy_Coder » Sun Dec 23, 2007 1:06 pm

Ö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 ?

User avatar
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 » Sun Dec 23, 2007 2:30 pm

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

Zrazy_Coder
Member
Posts: 60
Joined: Sun Sep 09, 2007 8:46 pm

Re: Tyhmät kysymykset

Post by Zrazy_Coder » Mon Dec 24, 2007 6:33 pm

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.

User avatar
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 » Tue Dec 25, 2007 3:58 am

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.

User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: Tyhmät kysymykset

Post by vilQuri » Tue Dec 25, 2007 10:34 pm

Miten voin asettaa tilekartan taakse taustan vai pitääkö se pistää suoraan karttaan? :D

User avatar
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka » Tue Dec 25, 2007 10:44 pm

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).
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)

User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: Tyhmät kysymykset

Post by -Z- » Wed Dec 26, 2007 1:26 am

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?
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time

User avatar
valscion
Moderator
Moderator
Posts: 1587
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion » Wed Dec 26, 2007 2:05 am

-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.

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
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: Tyhmät kysymykset

Post by -Z- » Fri Dec 28, 2007 10:48 am

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)
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time

User avatar
iTKEVAnAKKI
Advanced Member
Posts: 335
Joined: Tue Aug 28, 2007 3:55 pm
Location: Siellä jossain

Re: Tyhmät kysymykset

Post by iTKEVAnAKKI » Fri Dec 28, 2007 1:39 pm

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"?
Projektit:
Joku projekti meneillään... Mitähän siitäkin tulee ;)

Locked