Page 1 of 23

Tyhmät kysymykset (I/2012)

Posted: Sun Jan 01, 2012 5:12 pm
by Hene
EDIT:

Uusi ketju aloitettu: Tyhmät kysymykset (I/2015). Keskustelu jatkuu siellä.

VesQ wrote:Jatketaan perinteikästä linjaa ja pilkotaan jättiketju pienempiin osiin. Sarjan edelliset viestiketjut ovat:
Tyhmät kysymykset (I/2009)
Tyhmät kysymykset (II/2009)
Tyhmät kysymykset (I/2010)
Tyhmät kysymykset (I/2011)

Ylläpito pilkkoo kaikki yli 100-sivuiset aiheet jatkoketjuiksi. Lisäksi aloitetaan uusi ketju vuosittain.

Tyhmät kysymykset - tarkoitus

Törmäsitkö ongelmaan, jonka tiedät olevan oikeasti ihan helppo, mutta ratkaisu ei vain osu silmään? Onko ongelmasi niin vähäpätöinen, ettei sitä varten kannata tehdä uutta ketjua?

Alkuperäisen ketjun johdanto meni näin:
iTKEVAnAKKI wrote:Eli tänne kaikki yksinkertaiset kysymykset johin et ole keksinyt ratkaisua. Mutta muistakaa, että käytätte ensin hakua!

Saakos addtext -komennolla kirjoitettua tekstiä automaattisesti rivitettyä mitenkään (lue: kohtuullisen helposti)? Ärsyttää kun pitäisi joku pitkä teksti saada helposti ruutuun (ja ilman ylimääräisiä tekstitiedostoja), muttei jaksaisi jakaa jokaista lausetta aina erikseen omalle rivilleen.

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Jan 01, 2012 6:58 pm
by Sly_Jack0
Ei ole AddTextillä, mutta on kuitenkin. http://www.cbrepository.com/codes/code/27/

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Jan 01, 2012 8:55 pm
by seancarrion
Miten saisi tehtyä peliin taustakuvan tilejen taakse ILMAN että se liikkuu hahmon mukana? :D

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Jan 01, 2012 9:00 pm
by Frozen
seancarrion wrote:Miten saisi tehtyä peliin taustakuvan tilejen taakse ILMAN että se liikkuu hahmon mukana? :D
no yksinkertaisinta olisi piirtää drawimagella kuva. Kuva jää silloin objektien ja tilemapin alle, kun komento on ennen drawgamea

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Jan 01, 2012 9:09 pm
by seancarrion
Frozen wrote:
seancarrion wrote:Miten saisi tehtyä peliin taustakuvan tilejen taakse ILMAN että se liikkuu hahmon mukana? :D
no yksinkertaisinta olisi piirtää drawimagella kuva. Kuva jää silloin objektien ja tilemapin alle, kun komento on ennen drawgamea
Öö siis minulla on jo taustakuva joka on kaiken alla, mutta se liikkuu kun minä liikun. Haluan että kuva pysyy paikoillaan kun hahmo ja kamera liikkuu.

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Jan 01, 2012 9:11 pm
by phons
No tuo johtuu siitä että kuva piirretään ruutuun ei pelimaailmaan. Piirrä kuva vaikka pelimailmaan DrawToWorld komennolla. Sieltä Helpistä löytyy kyllä.

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Jan 01, 2012 9:14 pm
by seancarrion
saisiko esimerkkikoodin? :D

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Jan 01, 2012 9:16 pm
by Frozen
Tätäkö siis halusit?

Code: Select all

DrawToWorld ON
Kenttä = LoadMap("Media\cdm2.til","Media\tileset.bmp")
tausta= LoadImage("Media\Map.bmp")
ukkeli = LoadObject ("Media\guy.bmp",72)
SetupCollision ukkeli, Kenttä, 1, 4, 2

Repeat


    TurnObject ukkeli,(LeftKey()- RightKey())*5
    MoveObject ukkeli,(UpKey()-DownKey())*2



    CloneCameraPosition ukkeli


DrawImage tausta,0,0

    DrawScreen

Forever

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Jan 01, 2012 9:19 pm
by seancarrion
Kiitos! Tämä auttoi TOSI paljon! Olet herrasmies :)
EDIT:

Ei toimi :(


Re: Tyhmät kysymykset (I/2011)

Posted: Sun Jan 01, 2012 9:24 pm
by phons

Code: Select all

kuva = LoadImage(tiedostopolku_$) 'kuva


Repeat 'loopin alku
    
    DrawToWorld OFF, ON, OFF ' nyt kaikki kuvat piirretään maailmaan, näytölle
        DrawImage kuva, 0, 0
    DrawToWorld OFF, OFF, OFF 'ja säädetään kuvien piirto takaisin näyttöön
    DrawImage kuva, 100, 100
    
    TranslateCamera RightKey() - LeftKey(), Upkey() - DownKey() 'liikutetaan kameraa nuolilla
    
    DrawScreen 'piirretään
Until EscapeKey() 'lopetetaan loopi kun Esc painettu

Siinä, huomaa että se on sitten kirjoitettu suoraan foorumiin, että saattaa bugata. korvaa tuo tiedostopolku kuvasi tiedostopolulla, media\guy.bmp tai joku.

Edit: Ja näin saimme hyvä esimerkin hitaudesta. Kiitos Frozen

Re: Tyhmät kysymykset (I/2011)

Posted: Mon Jan 02, 2012 10:00 pm
by BIG_BOMM
Oon kämminy jotain (yllättävää? ei tod.. :mrgreen: ) mut en hoksaa missä on vika kun antaa mavin kun pati osuu vihuun... :x
Merkkasin MAVin koodiin

Code: Select all

Type Padit
    Field obj
    End Type

FrameLimit 40

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

lattia = MakeObjectFloor ()
nurmikko = LoadImage ("Media\grass.bmp")
PaintObject lattia, nurmikko
charater = LoadObject ("Media\guy.bmp",360)
vihu1 = LoadObject ("Media\particle.bmp",360)
luoti = LoadObject ("Media\bullet.bmp")
ShowObject luoti,OFF
hiiri = LoadObject("Media\crosshair.bmp")
laaseri = LoadSound ("Media\lazer 2.wav")
ShowMouse OFF
Repeat
'---------------------------------------------------------------------------------------------------
'saan kokoaika ilmotuksen ShowMouse failed jos käytän omaa hiirtä, näin esitettynä toimii...
A =MouseWX()
B =MouseWY()
  PositionObject hiiri,A-9,B
  CloneObjectOrientation hiiri,charater

'---------------------------------------------------------------------------------------------------
'ukkoa ohjataan WASDilla.
      
        Kääntö=GetAngle(ObjectX(charater),-ObjectY(charater),MouseWX(),-MouseWY())
        RotateObject charater, Kääntö

        If KeyDown(32) Then TranslateObject charater,2,0,0
        If KeyDown(30) Then TranslateObject charater,-2,0,0
        If KeyDown(17) Then TranslateObject charater,0,2,0
        If KeyDown(31) Then TranslateObject charater,0,-2,0                       
'---------------------------------------------------------------------------------------------------
'vähän tulivoimaa...

                If MouseDown(1) And reload =0 Then
                laser.padit = New(Padit)
                    laser\obj = CloneObject(luoti)
                        CloneObjectPosition laser\obj,charater
                        PlaySound laaseri, 100
                        reload =15
                        MoveObject laser\obj,-9,-12
                        PointObject laser\obj,hiiri
                        TurnObject laser\obj,-90
               EndIf                           
                    If reload>0 Then reload=reload-1
                    For laser.Padit = Each Padit
                    MoveObject laser\obj,0,-6
                        SetupCollision vihu1,laser\obj,2,2,2
                        SetupCollision laser\obj,vihu1,2,2,2                        
                           'TÄSSÄ TULEE MAV!!!
                        If Distance2(laser\obj,vihu1)<10 Then DeleteObject(laser\obj)
              Next laser
'----------------------------------------------------------------------------------------------------

PositionObject vihu1,30,30
SetupCollision vihu1,charater,2,2,2
SetupCollision charater,vihu1,2,2,2




'----------------------------------------------------------------------------------------------------

    CloneCameraPosition charater
DrawScreen
Forever

Re: Tyhmät kysymykset (I/2011)

Posted: Mon Jan 02, 2012 11:47 pm
by Latexi95
BIG_BOMM wrote:Oon kämminy jotain (yllättävää? ei tod.. :mrgreen: ) mut en hoksaa missä on vika kun antaa mavin kun pati osuu vihuun... :x
Merkkasin MAVin koodiin

Code: Select all

Type Padit
    Field obj
    End Type

FrameLimit 40

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

lattia = MakeObjectFloor ()
nurmikko = LoadImage ("Media\grass.bmp")
PaintObject lattia, nurmikko
charater = LoadObject ("Media\guy.bmp",360)
vihu1 = LoadObject ("Media\particle.bmp",360)
luoti = LoadObject ("Media\bullet.bmp")
ShowObject luoti,OFF
hiiri = LoadObject("Media\crosshair.bmp")
laaseri = LoadSound ("Media\lazer 2.wav")
ShowMouse OFF
Repeat
'---------------------------------------------------------------------------------------------------
'saan kokoaika ilmotuksen ShowMouse failed jos käytän omaa hiirtä, näin esitettynä toimii...
A =MouseWX()
B =MouseWY()
  PositionObject hiiri,A-9,B
  CloneObjectOrientation hiiri,charater

'---------------------------------------------------------------------------------------------------
'ukkoa ohjataan WASDilla.
      
        Kääntö=GetAngle(ObjectX(charater),-ObjectY(charater),MouseWX(),-MouseWY())
        RotateObject charater, Kääntö

        If KeyDown(32) Then TranslateObject charater,2,0,0
        If KeyDown(30) Then TranslateObject charater,-2,0,0
        If KeyDown(17) Then TranslateObject charater,0,2,0
        If KeyDown(31) Then TranslateObject charater,0,-2,0                       
'---------------------------------------------------------------------------------------------------
'vähän tulivoimaa...

                If MouseDown(1) And reload =0 Then
                laser.padit = New(Padit)
                    laser\obj = CloneObject(luoti)
                        CloneObjectPosition laser\obj,charater
                        PlaySound laaseri, 100
                        reload =15
                        MoveObject laser\obj,-9,-12
                        PointObject laser\obj,hiiri
                        TurnObject laser\obj,-90
               EndIf                           
                    If reload>0 Then reload=reload-1
                    For laser.Padit = Each Padit
                    MoveObject laser\obj,0,-6
                        SetupCollision vihu1,laser\obj,2,2,2
                        SetupCollision laser\obj,vihu1,2,2,2                        
                           'TÄSSÄ TULEE MAV!!!
                        If Distance2(laser\obj,vihu1)<10 Then DeleteObject(laser\obj)
              Next laser
'----------------------------------------------------------------------------------------------------

PositionObject vihu1,30,30
SetupCollision vihu1,charater,2,2,2
SetupCollision charater,vihu1,2,2,2




'----------------------------------------------------------------------------------------------------

    CloneCameraPosition charater
DrawScreen
Forever
'
Poistat vain laserin objectin etkä varsinaista tyypin jäsentä. Jonka takia seuraavan padin kohdalla tulee mavi.

Code: Select all

If Distance2(laser\obj,vihu1)<10 Then
    DeleteObject(laser\obj)
    Delete laser
EndIf

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jan 03, 2012 4:47 pm
by Hene
Sly_Jack0 wrote:Ei ole AddTextillä, mutta on kuitenkin. http://www.cbrepository.com/codes/code/27/
Ja mitenkös tuota funktiota pystyy käyttämään käytännössä? :D En ole funktioista CB:ssä koskaan paljoakaan oppinut, hyvä kun manuaalin esimerkissä mainitun funktiosysteemin ymmärrän :D

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jan 03, 2012 5:01 pm
by Sly_Jack0

Code: Select all

teksti$ = "Tähän teksti"
reuna = 300 //Minkä rajan yli teksti ei saa mennä
x = 0
y = 0

Repeat
    RowText(teksti$,x,y,reuna)

    DrawScreen
Forever

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jan 03, 2012 10:24 pm
by BIG_BOMM
Poistat vain laserin objectin etkä varsinaista tyypin jäsentä. Jonka takia seuraavan padin kohdalla tulee mavi.


KIITOS! johan toimii!

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Jan 04, 2012 11:18 am
by skorpioni-cb
En halua olla trolli/offtopiccari, mutta eikös tässä pitäisi olla uusi Tyhmät kysymykset(R)-ketju

Vaikka on tää pieni ja tyhmä kysymys, (ei liity CB yhtään)

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Jan 04, 2012 7:55 pm
by BIG_BOMM
Luovutan.. miks tää antaa code 88 Can't find missing Next:in rivillä 100?? :x

Code: Select all

Type Padit
    Field obj
    End Type

Type ykkösvihu
    Field obj
    End Type

FrameLimit 40

SCREEN 640,480,0,cbsizable
SetWindow "...",3

ruoho = MakeObjectFloor ()
nurmikko = LoadImage ("Media\grass.bmp")
PaintObject ruoho, nurmikko


player = LoadObject ("Media\guy.bmp",360)
vihu1 = LoadObject ("Media\particle.bmp",360)
ShowObject vihu1,OFF
perusluoti = LoadObject ("Media\bullet.bmp")
ShowObject perusluoti,OFF
hiiri = LoadObject("Media\crosshair.bmp")
peruslaaseri = LoadSound ("Media\lazer 2.wav")
ShowMouse OFF
Repeat
'---------------------------------------------------------------------------------------------------
'ohjelma ei suostunut millään toistamaan Showmouse hiiri komentoa joten piti kikkailla...
'saipahan samalla tarkan tähtäyksen...
A =MouseWX()
B =MouseWY()
  PositionObject hiiri,A-9,B
  CloneObjectOrientation hiiri,player

'---------------------------------------------------------------------------------------------------
'ukkoa ohjataan seuraavista.
'sivuttaisliikkeet ja kääntyminen ovat eri napeissa pelattavuuden parantamiseksi
'WASD ohjaus, hahmo kääntyy num4 ja num5:stä      
        Kääntö=GetAngle(ObjectX(player),-ObjectY(player),MouseWX(),-MouseWY())
        RotateObject Robotron, Kääntö-90

        If KeyDown(32) Then TranslateObject player,2,0,0
        If KeyDown(30) Then TranslateObject player,-2,0,0
        If KeyDown(17) Then TranslateObject player,0,2,0
        If KeyDown(31) Then TranslateObject player,0,-2,0                       
'---------------------------------------------------------------------------------------------------
'ensimmäinen laserase pelissä. loputtomasti pateja.

                If MouseDown(1) And reload =0 Then
                laser.padit = New (Padit)
                    laser\obj = CloneObject(perusluoti)
                        CloneObjectPosition laser\obj,player
                        PlaySound peruslaaseri, 100
                        reload =15
                        MoveObject laser\obj,-9,-12
                        PointObject laser\obj,hiiri
                        TurnObject laser\obj,-90
               EndIf                           
                    If reload>0 Then reload=reload-1
                    For laser.Padit = Each Padit
                            MoveObject laser\obj,0,-6
                                SetupCollision vihu1,laser\obj,2,2,2
                                SetupCollision laser\obj,vihu1,2,2,2
                        If Distance2(laser\obj,vihu1)=0 Then
                            DeleteObject(laser\obj)
                            Delete laser
                        EndIf 
                    Next laser
'----------------------------------------------------------------------------------------------------
'vihut


SetupCollision vihu1,player,2,2,2
SetupCollision player,vihu1,2,2,2

C=Rand(-150,150)
D=Rand(-150,150)

EV1=10
If ST=0 Then 
PV.ykkösvihu = New (ykkösvihu)
    PV\obj = CloneObject(vihu1)
        PositionObject PV\obj,C,D
        ST=2000
EndIf
   If ST>0 Then ST=ST-1           
     For PV.ykkösvihu = Each ykkösvihu
            PointObject PV\obj,player
            MoveObject PV\obj,0,-2
                SetupCollision vihu1,laser\obj,2,2,2
                SetupCollision laser\obj,vihu1,2,2,2
        If Distance2 (PV\obj,laser\obj)<1 Then
                EV1=EV1-1
                If EV1=0 Then 
                    DeleteObject(PV\obj)
                    Delete PV
                EndIf             
        EndIf
     Next vihu1
'----------------------------------------------------------------------------------------------------

    CloneCameraPosition player
DrawScreen
Forever
muutin mielestäni bmpt cbn omasta kansiosta löytyviksi mutta joitain on voinu jäädä huomaamatta..

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Jan 04, 2012 7:56 pm
by skorpioni-cb
Pyydän nöyrimmin anteeksi etukäteen sitä että tein tämän tuplapostauksen, mutta muuten en saa vastausta tähän ennen Tyhmät kysymykset (1/2012) :oops:

Eli, latasin KW:n tekemän qt-kirjastolla toimivan ja winellä toimivalla compilerillä tehdyn IDE:n, se toimii ja muuta, mulla on vain yksi kysymys:

Mitä fonttia print,write,input,text ja addtext käyttävät oletusarvoisesti?

Koska, kun tein Hello World!-ohjelman, mun ohjelmassa missä piti lukea Hello World!, olikin pelkkiä pystypalkkeja :?

Ja KW:lle kysymys, miksi siinä kun on siellä compile-menussa se compile to EXE, tai jotain (pikanäppäin F7), niin miksi se on disabled, eikö sitä EXE-kirjoititnta aa winellä toimimaan, vai onko sun se editori pelkkää koodikehitystä varten linuxille? Toivon että tällä kertaa onnistun saamaan paljon vähemmän pahaa karmaa kuin viimeksi.

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Jan 04, 2012 8:28 pm
by Jonez
@BIG_BOMM: Vaihda rivin 100 "next vihu1" -> "next PV".

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Jan 04, 2012 8:51 pm
by BIG_BOMM
@BIG_BOMM: Vaihda rivin 100 "next vihu1" -> "next PV".

Kiitos! En ettiny vikaa ku kaks päivää... :oops:


hommattava vahvemmat lasit ehkä :?: :P