Tyhmät kysymykset (II/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 9:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 » Sat Jul 04, 2009 1:53 am

Luonnollisesti juoneen. -.-

Mutta tuo ongelma? :o
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini

TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset (II/2009)

Post by TheFish » Sat Jul 04, 2009 1:58 am

matti3 wrote:Luonnollisesti juoneen. -.-

Mutta tuo ongelma? :o
Et antanut mitään ukko:n liikuttamiseen liittyvää koodia, joten ongelmasta on mahdotonta sanoa mitään. Joka tapauksessa kannattaa laittaa nuo sotilaat taulukkoon.
CoolBasic henkilökuntaa
Kehittäjä

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

Re: Tyhmät kysymykset (II/2009)

Post by Jonez » Sat Jul 04, 2009 5:21 pm

Tein 11 objectia, koska jokaisella sotilaalla on oma persoona. :)
Tee mieluummin vaikka näin:

Code: Select all

Type Sotilaat
    Field obj
    Field persoona
EndType

Const VIHAINEN = 1
Const YSTAVALLINEN = 2
Const  YLIVILKAS = 3

Repeat
    
    For iSotilas.Sotilaat = Each Sotilaat
        If iSotilas\persoona = VIHAINEN Then
            //Vihaisen sotilaan toimintametodeja
        ElseIf iSotilas\persoona = YSTAVALLINEN Then
            //Ystävällisen toiminta
        ElseIf iSotilas\persoona = YLIVILKAS Then
            //Ylivilkkaan toiminta
        EndIf

        //Tänne sotilaiden "yhteisiä" toimintamalleja, kuten törmäys seinien ja luotien kanssa jne.

    Next iSotilas    

    DrawScreen
Forever
Toinen tapa on tietenkin käyttää taulukoita.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War

Quest

Re: Tyhmät kysymykset (II/2009)

Post by Quest » Sat Jul 04, 2009 7:26 pm

Minulla on ongelma. Tein ohjelman, joka etsii tiedostoja ja kirjoittaa ne ruudulle (Addtext Komennolla.)
Sen jälkeen ne voi avata klikaamalla nimen viereistä kuvakketta. Mutta tiedostot menevät ruudun yli, koska niitä on niin paljon,
silloin ei kaikkia voi avata. Miten saisin tehtyä tai voisitteko te näyttää: Miten saisi parhaiten liikuteltua (Addtext komennolla) tekstiä, ylös ja alas? Vaikka nuolillla tai Slidebaarilla.

Quest

Re: Tyhmät kysymykset (II/2009)

Post by Quest » Sat Jul 04, 2009 7:43 pm

Quest wrote:Minulla on ongelma. Tein ohjelman, joka etsii tiedostoja ja kirjoittaa ne ruudulle (Addtext Komennolla.)
Sen jälkeen ne voi avata klikaamalla nimen viereistä kuvakketta. Mutta tiedostot menevät ruudun yli, koska niitä on niin paljon,
silloin ei kaikkia voi avata. Miten saisin tehtyä tai voisitteko te näyttää: Miten saisi parhaiten liikuteltua (Addtext komennolla) tekstiä, ylös ja alas? Vaikka nuolillla tai Slidebaarilla.
Kuvakkeetkin menevät ruudun yli, tarkoitan alhaalta ei sivulta.

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

Re: Tyhmät kysymykset (II/2009)

Post by esa94 » Sat Jul 04, 2009 7:50 pm

Quest wrote:
Quest wrote:Minulla on ongelma. Tein ohjelman, joka etsii tiedostoja ja kirjoittaa ne ruudulle (Addtext Komennolla.)
Sen jälkeen ne voi avata klikaamalla nimen viereistä kuvakketta. Mutta tiedostot menevät ruudun yli, koska niitä on niin paljon,
silloin ei kaikkia voi avata. Miten saisin tehtyä tai voisitteko te näyttää: Miten saisi parhaiten liikuteltua (Addtext komennolla) tekstiä, ylös ja alas? Vaikka nuolillla tai Slidebaarilla.
Kuvakkeetkin menevät ruudun yli, tarkoitan alhaalta ei sivulta.
Jos Locate ei toimi, mikään ei toimi.
EDIT:

Juuri tuota varten Text on keksitty...


Quest

Re: Tyhmät kysymykset (II/2009)

Post by Quest » Sat Jul 04, 2009 7:50 pm

Minulla on ongelma. Tein ohjelman, joka etsii tiedostoja ja kirjoittaa ne ruudulle (Addtext Komennolla.) Sijoitan tekstit Locatella
Sen jälkeen ne voi avata klikaamalla nimen viereistä kuvakketta.
Siis Ongelma on tiedostot menevät ruudun yli, koska niitä on niin paljon,
kuvakkeetkin menevät ruudun yli, tarkoitan alhaalta ei sivulta. Miten saisin tehtyä tai voisitteko te näyttää: Miten saisi parhaiten liikuteltua (Addtext komennolla) tekstiä, ylös ja alas? Vaikka nuolillla tai Slidebaarilla.

Code: Select all

  Locate 20, y
  AddText Löydetty\polku$ 'Lisätään teksti
  y + 15 ' Liikutetaan tekstin paikkaa
  ObjY - 15 ' Liikutetaan Avaus painikkeen paikkaa
 

Sori, ei pysty poistaa viestejä :oops: Voisitteko te (Adim tai moderaattorit) Poistaa edelliset viestit.

Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (II/2009)

Post by Awaclus » Sat Jul 04, 2009 8:10 pm

Quest wrote: Sori, ei pysty poistaa viestejä :oops: Voisitteko te (Adim tai moderaattorit) Poistaa edelliset viestit.
Voisitkos sinä itse rekisteröityä, jotta voisit jatkossa editoida viestiä uuden postaamisen sijaan?

matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 9:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 » Sun Jul 05, 2009 9:26 pm

Tässä koko koodi:

Code: Select all

Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj 'yksi kenttä nimeltään 'obj'
End Type 

FrameLimit 60
SCREEN 640, 480

AddText "Ladataan..."
DrawScreen
nappi = LoadObject("grafiikat/nappi.bmp", 1)
nappi_1 = LoadObject("grafiikat/nappi.bmp", 1)
ClearText
PositionObject nappi, -200, 200
PositionObject nappi_1, -200, 100

Repeat
Text 0,300, "X: " +MouseX()
Text 0,320, "Y: " +MouseY()
Locate 30,15
AddText "Aloita peli"
Locate 30,115
AddText "Free fight"
If MouseX() > 25 And MouseX() < 215 And MouseY() >5 And MouseY() < 75 Then
   if MouseHit(1) Then
   Goto Peli_alkaa
   EndIf
EndIf
If MouseX() > 25 And MouseX() < 215 And MouseY() >105 And MouseY() < 175 Then
   if MouseHit(1) Then
   Goto Vapaa_taistelu
   EndIf
EndIf



DrawScreen
Forever

Peli_alkaa :
ClearText
ShowObject nappi, OFF
ShowObject nappi_1, OFF
AddText "Metal War is something new. Something. What no one can explain."
AddText "1000 metal tank attack. I'am alone. What i do?"
DrawScreen
WaitKey //wait 5000
AddText "Correct. Try go some hide place."
WaitKey // wait 2000
AddText "I hideing 20minutes and then i saw U.S.A helicopter"
AddText "I try sway. It was really good they see me. Then one tank shoot and it collison"
AddText "Helicopter and another shoot me."
AddText ""
AddText "Paina mitä tahansa."
DrawScreen
WaitKey
ClearText
AddText "It was my dad story. This war continued two years. I'am 18 years old."
AddText ""
AddText "Paina mitä tahansa."
DrawScreen
WaitKey
//mahdollinen soundi
AddText "Ladataan hahmoja..."
DrawScreen
ukko = LoadObject("grafiikat/hahmo_1.bmp",72)
Sotilas = LoadObject("grafiikat/hahmo_1.bmp",72)//ilkeä
Sotilas_1 = LoadObject("grafiikat/hahmo_1.bmp",72)//persoonallinen
Sotilas_2 = LoadObject("grafiikat/hahmo_1.bmp",72)//kaveri
Sotilas_3 = LoadObject("grafiikat/hahmo_1.bmp",72)//peloton
Sotilas_4 = LoadObject("grafiikat/hahmo_1.bmp",72)//Vitsailija
Sotilas_5 = LoadObject("grafiikat/hahmo_1.bmp",72)//Pelkuri
Sotilas_6 = LoadObject("grafiikat/hahmo_1.bmp",72)//ystävällinen
Sotilas_7 = LoadObject("grafiikat/hahmo_1.bmp",72)//Riemukas
Sotilas_8 = LoadObject("grafiikat/hahmo_1.bmp",72)//Peloton
Sotilas_9 = LoadObject("grafiikat/hahmo_1.bmp",72)//Herkkä
Sotilas_10 = LoadObject("grafiikat/hahmo_1.bmp",72)//Epäilyttävä
Sotilas_11 = LoadObject("grafiikat/hahmo_1.bmp",72)//Hullu
boss = LoadObject("grafiikat/hahmo_1.bmp",72)
pati=LoadObject("grafiikat\panos.bmp")
ShowObject pati,OFF
PositionObject ukko, 0,0
PositionObject boss, 100,0
PositionObject Sotilas, 0,50
PositionObject Sotilas_1, 0,100
PositionObject Sotilas_2, 0,150
PositionObject Sotilas_3, 0,-50
PositionObject Sotilas_4, 0,-100
PositionObject Sotilas_5, 0,-150
PositionObject Sotilas_6, -50,50
PositionObject Sotilas_7, -50,100
PositionObject Sotilas_8, -50,150
PositionObject Sotilas_9, -50,-50
PositionObject Sotilas_10, -50,-100
PositionObject Sotilas_11, -50,-150
TurnObject boss, 180
ClearText
AddText "Henri: Minun tehtäväni on kouluttaa teidät märkäkorvat"
AddText "taistelemaan."
DrawScreen
Wait 5000
ClearText
AddText "Henri: Ensimmäisenä tehtävä käsken teidät juoksemaan ampuma radalle!"
DrawScreen
perilla=1
Wait 5000
TurnObject boss, 180
ClearText
Repeat
If ObjectX(ukko) > 600 And ObjectY(ukko) > 0 Then
    perilla=2
EndIf

If perilla=2 Then
    ShowObject ukko,OFF
    ShowObject Sotilas,OFF
    ShowObject Sotilas_1,OFF
    ShowObject Sotilas_2,OFF
    ShowObject Sotilas_3,OFF
    ShowObject Sotilas_4,OFF
    ShowObject Sotilas_5,OFF
    ShowObject Sotilas_6,OFF
    ShowObject Sotilas_7,OFF
    ShowObject Sotilas_8,OFF
    ShowObject Sotilas_9,OFF
    ShowObject Sotilas_10,OFF
    ShowObject Sotilas_11,OFF
    AddText "MOROOOO!!!"
    DrawScreen
EndIf

If perilla=1 Then
    MoveObject Sotilas, 2
    MoveObject Sotilas_1, 2
    MoveObject Sotilas_2, 2
    MoveObject Sotilas_3, 2
    MoveObject Sotilas_4, 2
    MoveObject Sotilas_5, 2
    MoveObject Sotilas_6, 2
    MoveObject Sotilas_7, 2
    MoveObject Sotilas_8, 2
    MoveObject Sotilas_9, 2
    MoveObject Sotilas_10, 2
    MoveObject Sotilas_11, 2
    MoveObject Boss, 3
EndIf

Text 0,300, "X: " +MouseX()
Text 0,320, "Y: " +MouseY()
    If KeyDown(cbkeyw) Then MoveObject ukko, 2
    If KeyDown(cbkeys) Then MoveObject ukko, -2
    If KeyDown(cbkeya) Then TurnObject ukko, 5
    If KeyDown(cbkeyd) Then TurnObject ukko, -5
    
    'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyRControl) And reload=0 Then    
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,ukko            
        reload=5 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1

    'Päivitä kaikki ammukset
    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
        If ObjectX(luoti\obj)<-800 Or ObjectX(luoti\obj)>800 Or ObjectY(luoti\obj)<-800 Or ObjectY(luoti\obj)>800 Then
            'ammus ylittää rajan -> tuhoa se                
            DeleteObject luoti\obj 'poista objekti
            Delete luoti 'poista luoti kokonaan
        EndIf        
    Next luoti

    'tämä ennen muuta grafiikkaa (box)
    DrawGame

    'piirrä "kenttä"  
    
    DrawScreen

Until EscapeKey()

Vapaa_taistelu :
ClearText
ShowObject nappi, OFF
ShowObject nappi_1, OFF
AddText "Welcome free fight."
AddText "Here you can fight some your own war."
DrawScreen
WaitKey


Ja ongelmana on, että tuo teksti MOROOOO ei tule. siis se on vain testi teksti. :D
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini

DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Tyhmät kysymykset (II/2009)

Post by DatsuniG » Sun Jul 05, 2009 10:15 pm

Code: Select all

    Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
        Field obj 'yksi kenttä nimeltään 'obj'
    End Type

    FrameLimit 60
    SCREEN 640, 480

    AddText "Ladataan..."
    DrawScreen
    nappi = LoadObject("media/cow.bmp", 1)
    nappi_1 = LoadObject("media/cow.bmp", 1)
    ClearText
    PositionObject nappi, -200, 200
    PositionObject nappi_1, -200, 100

    Repeat
    Text 0,300, "X: " +MouseX()
    Text 0,320, "Y: " +MouseY()
    Locate 30,15
    AddText "Aloita peli"
    Locate 30,115
    AddText "Free fight"
    If MouseX() > 25 And MouseX() < 215 And MouseY() >5 And MouseY() < 75 Then
       if MouseHit(1) Then
       Goto Peli_alkaa
       EndIf
    EndIf
    If MouseX() > 25 And MouseX() < 215 And MouseY() >105 And MouseY() < 175 Then
       if MouseHit(1) Then
       Goto Vapaa_taistelu
       EndIf
    EndIf



    DrawScreen
    Forever

    Peli_alkaa :
    ClearText
    ShowObject nappi, OFF
    ShowObject nappi_1, OFF
    AddText "Metal War is something new. Something. What no one can explain."
    AddText "1000 metal tank attack. I'am alone. What i do?"
    DrawScreen
    WaitKey //wait 5000
    AddText "Correct. Try go some hide place."
    WaitKey // wait 2000
    AddText "I hideing 20minutes and then i saw U.S.A helicopter"
    AddText "I try sway. It was really good they see me. Then one tank shoot and it collison"
    AddText "Helicopter and another shoot me."
    AddText ""
    AddText "Paina mitä tahansa."
    DrawScreen
    WaitKey
    ClearText
    AddText "It was my dad story. This war continued two years. I'am 18 years old."
    AddText ""
    AddText "Paina mitä tahansa."
    DrawScreen
    WaitKey
    //mahdollinen soundi
    AddText "Ladataan hahmoja..."
    DrawScreen
    ukko = LoadObject("media/guy.bmp",72)
    Sotilas = LoadObject("media/guy.bmp",72)//ilkeä
    Sotilas_1 = LoadObject("media/guy.bmp",72)//persoonallinen
    Sotilas_2 = LoadObject("media/guy.bmp",72)//kaveri
    Sotilas_3 = LoadObject("media/guy.bmp",72)//peloton
    Sotilas_4 = LoadObject("media/guy.bmp",72)//Vitsailija
    Sotilas_5 = LoadObject("media/guy.bmp",72)//Pelkuri
    Sotilas_6 = LoadObject("media/guy.bmp",72)//ystävällinen
    Sotilas_7 = LoadObject("media/guy.bmp",72)//Riemukas
    Sotilas_8 = LoadObject("media/guy.bmp",72)//Peloton
    Sotilas_9 = LoadObject("media/guy.bmp",72)//Herkkä
    Sotilas_10 = LoadObject("media/guy.bmp",72)//Epäilyttävä
    Sotilas_11 = LoadObject("media/guy.bmp",72)//Hullu
    boss = LoadObject("media/guy.bmp",72)
    pati=LoadObject("media/bullet.bmp")
    ShowObject pati,OFF
    PositionObject ukko, 0,0
    PositionObject boss, 100,0
    PositionObject Sotilas, 0,50
    PositionObject Sotilas_1, 0,100
    PositionObject Sotilas_2, 0,150
    PositionObject Sotilas_3, 0,-50
    PositionObject Sotilas_4, 0,-100
    PositionObject Sotilas_5, 0,-150
    PositionObject Sotilas_6, -50,50
    PositionObject Sotilas_7, -50,100
    PositionObject Sotilas_8, -50,150
    PositionObject Sotilas_9, -50,-50
    PositionObject Sotilas_10, -50,-100
    PositionObject Sotilas_11, -50,-150
    TurnObject boss, 180
    ClearText
    AddText "Henri: Minun tehtäväni on kouluttaa teidät märkäkorvat"
    AddText "taistelemaan."
    DrawScreen
    Wait 5000
    ClearText
    AddText "Henri: Ensimmäisenä tehtävä käsken teidät juoksemaan ampuma radalle!"
    DrawScreen
    perilla=1
    Wait 5000
    TurnObject boss, 180
    ClearText
    Repeat
    If ObjectX(ukko) > ScreenWidth() / 2 Then
        perilla=2
    EndIf

    If perilla=2 Then
        ShowObject ukko,OFF
        ShowObject Sotilas,OFF
        ShowObject Sotilas_1,OFF
        ShowObject Sotilas_2,OFF
        ShowObject Sotilas_3,OFF
        ShowObject Sotilas_4,OFF
        ShowObject Sotilas_5,OFF
        ShowObject Sotilas_6,OFF
        ShowObject Sotilas_7,OFF
        ShowObject Sotilas_8,OFF
        ShowObject Sotilas_9,OFF
        ShowObject Sotilas_10,OFF
        ShowObject Sotilas_11,OFF
        text 50,50, "MOROOOO!!!"
    EndIf

    If perilla=1 Then
        MoveObject Sotilas, 2
        MoveObject Sotilas_1, 2
        MoveObject Sotilas_2, 2
        MoveObject Sotilas_3, 2
        MoveObject Sotilas_4, 2
        MoveObject Sotilas_5, 2
        MoveObject Sotilas_6, 2
        MoveObject Sotilas_7, 2
        MoveObject Sotilas_8, 2
        MoveObject Sotilas_9, 2
        MoveObject Sotilas_10, 2
        MoveObject Sotilas_11, 2
        MoveObject Boss, 3
    EndIf

    Text 0,300, "X: " +MouseX()
    Text 0,320, "Y: " +MouseY()
        If KeyDown(cbkeyw) Then MoveObject ukko, 2
        If KeyDown(cbkeys) Then MoveObject ukko, -2
        If KeyDown(cbkeya) Then TurnObject ukko, 5
        If KeyDown(cbkeyd) Then TurnObject ukko, -5
       
        'Ammu-systeemi. Vain, jos ase on ladattu
        If KeyDown(cbKeyRControl) And reload=0 Then   
            luoti.AMMUS = New(AMMUS) 'luo uusi ammus
            luoti\obj=CloneObject(pati) 'tee klooni
            'asetetaan pati samaan paikkaan
            CloneObjectPosition luoti\obj,ukko               
            'käännetään pati samaan suuntaan
            CloneObjectOrientation luoti\obj,ukko           
            reload=5 'aseen lataus       
        EndIf
        'päivitä aseen lataaminen
        If reload>0 Then reload=reload-1

        'Päivitä kaikki ammukset
        For luoti.AMMUS = Each AMMUS
            MoveObject luoti\obj,6
            If ObjectX(luoti\obj)<-800 Or ObjectX(luoti\obj)>800 Or ObjectY(luoti\obj)<-800 Or ObjectY(luoti\obj)>800 Then
                'ammus ylittää rajan -> tuhoa se               
                DeleteObject luoti\obj 'poista objekti
                Delete luoti 'poista luoti kokonaan
            EndIf       
        Next luoti

        'tämä ennen muuta grafiikkaa (box)
        DrawGame

        'piirrä "kenttä" 
       
        DrawScreen

    Until EscapeKey()

    Vapaa_taistelu :
    ClearText
    ShowObject nappi, OFF
    ShowObject nappi_1, OFF
    AddText "Welcome free fight."
    AddText "Here you can fight some your own war."
    DrawScreen
    WaitKey


Hengität nyt manuaalisesti.

cool-driver
Active Member
Posts: 116
Joined: Sat Feb 14, 2009 8:47 am

Re: Tyhmät kysymykset (II/2009)

Post by cool-driver » Mon Jul 06, 2009 11:22 am

Code: Select all

SCREEN 800,600

Repeat 

Text 0,0, "Haluatko tilata aluksen?"
Text 0,11, "1. Kyllä"
Text 0,22, "2. Ei"

If KeyHit(cbkey1) Then 
uusialus = 1
Goto uusilaiva
EndIf 
If KeyHit(cbkey2) Then End 
DrawScreen 
Forever
Miten voisi tehdä sen, että kun tuo alus tilataan, niin se luo automaattisesti tuon uusilaiva kohdan ja uusialus muuttujan?
Projektit:
Ships Income Liikenne Suomesta Beta 2: valmis. Lataa tästä Projekti keskeytetty. Tehdään loppuun uuden CoolBasicin tulon jälkeen.
Diktaattori Beta 2: valmis. Lataa Tästä Projekti keskeytetty. Tehdään loppuun uuden CoolBasicin tulon jälkeen.

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

Re: Tyhmät kysymykset (II/2009)

Post by Jonez » Mon Jul 06, 2009 11:36 am

Käytä tyyppikokoelmia tai taulukoita aluksien hallintaan. Pienet aliohjelmat, kuten aluksen luontiin tarkoitetut koodinpätkät kannattaa tehdä joko funktioita tai Gosubia (kirjaimellisesti aliohjelmia) käyttämällä. Älä käytä Gotoa. Katso manuaalista ero, niin tajuat miksi.

Code: Select all

Type Alukset
    Field nimi As String
EndType

Repeat

    Text 20, 20, "Paina Enter luodaksesi uuden aluksen."

    If KeyHit( CbKeyReturn ) Then Gosub uusilaiva
   
    rivi = 0
    For iAlus.Alukset = Each Alukset
        rivi + 1
        Text 20, 20 + 20 * rivi, iAlus\nimi
    Next iAlus

    DrawScreen
Forever

uusilaiva:
    nAlus.Alukset = New( Alukset )
    alusmäärä + 1
    nAlus\nimi = "Alus " + alusmäärä
Return
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War

User avatar
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset (II/2009)

Post by rami123 » Tue Jul 07, 2009 12:53 pm

Ny on tämmönen ongelma johon en juurikaan keksi ratkaisua..manuaalista olen katellu kaikenlaisia komentoja, mutta en kait osaa soveltaa niitä tähän.
eli jos hiiri on pelihahmosta enemmän oikealla niin kääntyminen sinnepäin ja jos painaa välilyöntiä niin soittaa lyömis animaation

Koodissa on tuo kohta

Code: Select all

ClearKeys 
ClearText 
ClearObjects 


Type AMMUKSET
 Field obj
 Field dmg
 Field speed
 Field hp
 Field id
End Type 

Type BULLETS
 Field obj
 Field hp
 Field dmg
 Field speed
 Field id
End Type

Type VIHUT
 Field obj
 Field hp
 Field dmg
 Field speed
 Field id
EndType 

Const PAINOVOIMA = -0.1                   
yPlus#=0               

SetWindow "Viikatemies 2",3 

FrameLimit 40 


//PUHELAATIKOT
viikatemiespuhe = LoadImage ("puheloota1.png") 
MaskImage viikatemiespuhe,cbmagenta

tonttupuhe = LoadImage ("puheloota2.png") 
MaskImage tonttupuhe,cbmagenta


//PELINULKOASU
tausta = LoadImage ("tausta2.png")

kenttä=LoadMap("testmap.til","malli tileset.png")
MaskObject kenttä,cbmagenta
PositionObject kenttä,0,50
PlayObject kenttä,0,0,0.5

hiiri = LoadObject("hiiri.png")

//ITSE PELI 
pallo=LoadObject("ammus2.png",72)
ShowObject pallo,OFF
nuoli=LoadObject("ammus1.png",72)
ShowObject nuoli,OFF 


//PELAAJA
oikea=LoadAnimObject("Viikatemiesjuoksu1.png",47,51,0,13)
MaskObject oikea,cbMagenta
ShowObject oikea,OFF
ObjectRange oikea,30,51

vasen=LoadAnimObject("Viikatemiesjuoksu2.png",47,51,0,13)
MaskObject vasen,cbMagenta
ShowObject vasen,OFF
ObjectRange vasen,30,51

pelihahmo=CloneObject(oikea)
health=100
For x=1 To MapWidth()
For y=1 To MapWidth()
If GetMap2(3,x,y)=1 Then PositionObject pelihahmo,x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
Next y
Next x
SetupCollision pelihahmo,kenttä,1,4,2
ObjectRange pelihahmo,30,51 


PositionCamera -160,-120

////VIHOLLISET



Repeat


 DrawImage tausta,0,0

 If KeyHit(cbkey2) Then Gosub alkupuhe'painappa 2 niin ei mitään
 If KeyHit(cbkeyp) Then Gosub tauko'painappa p niin tauko


////HIIRI
 PositionObject hiiri,MouseWX(),MouseWY()
 ShowMouse OFF
 PointObject pelihahmo,hiiri


////AMPUMINEN
If MouseHit (1) And reload<0 
 newBullet.AMMUKSET= New(AMMUKSET)
 newBullet\obj=CloneObject(pallo)
 CloneObjectPosition newBullet\obj,pelihahmo
 CloneObjectOrientation newbullet\obj,pelihahmo
 MoveObject newBullet\obj,24
 reload=15
 SetupCollision newbullet\obj,kenttä,1,4,2
EndIf
 reload-1

 For iBullet.AMMUKSET= Each AMMUKSET
If CountCollisions(ibullet\obj) Then ibullet\hp-32
 MoveObject iBullet\obj,6'llikutetaan luotia
If Distance2(iBullet\obj,pelihahmo)>600 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus
 DeleteObject iBullet\obj
 Delete iBullet
EndIf
 Next iBullet
 
 
//KÄVELEMINEN ,HYPPÄÄMMINEN JNE...
 vauhti=0 

If KeyDown(cbkeyD) Then 
'juokse oikealle
 PaintObject pelihahmo,oikea 
If maassa Then PlayObject pelihahmo,0,3,0.25
 vauhti=2 'vauhtia oikealle
ElseIf KeyDown(cbkeyA) Then
'juokse vasemmalle
 PaintObject pelihahmo,vasen 
If maassa Then PlayObject pelihahmo,0,3,0.25
 vauhti=-2 'vauhtia vasemmalle
Else 
 PlayObject pelihahmo,0
EndIf
    
  
 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 
       
////TAPPELEMINEN 
JOS HIIRI ON ENEMMÄN VASEMMALLA NIIN
Pelihahmo kääntyy vasemmalle
ja jos painan nappia välilyönti niin lyön 
ja soitan animaation PlayObject pelihahmo,4,7,0.25

JA Toisinpäin samahomma
       
       
       

If törmäykset=0 Then PlayObject pelihahmo,12,0
    
    
////HYPPÄÄMINEN
If KeyHit(cbKeyW) And maassa Then 
 yPlus#=2.5
EndIf
    
If KeyHit (cbkeyq) And powerhyppy>1 And maassa Then
 yPlus#=5.0
 powerhyppy-1
EndIf 


DrawGame


If health > 49 Then Color 0,210,0                           
If health > 24 And health < 50 Then Color 200,200,0 
If health < 25 And health > 17 Then Color 220,105,0 
If health < 18 Then Color 215,0,0               
If health = 0 Then MakeError "ei mitään vielä.."
 Box 100,23,health,15
 Color cbwhite
 Text 110,25,"HP:"+health

If KeyHit (cbkeyf12) Then ScreenShot "c:\viikatemies2\capture.bmp"

DrawScreen 

Until EscapeKey()

EDIT:

Kiitti!

Last edited by rami123 on Wed Jul 08, 2009 9:45 am, edited 2 times in total.

Nassi_Setä
Advanced Member
Posts: 281
Joined: Sat Jun 28, 2008 5:19 pm
Location: Hämeessä miä

Re: Tyhmät kysymykset (II/2009)

Post by Nassi_Setä » Tue Jul 07, 2009 8:32 pm

suunnan vaihto:

Code: Select all

kulma=GetAngle2(pelihahmo,hiiri)

If kulma<90 Or kulma>270 Then 
    PaintObject pelihahmo,oikea
ElseIf kulma>90 Or kulma<270 Then 
    PaintObject pelihahmo,vasen
EndIf
ja animaation soittaminen PlayObject:illa
\../(-_-)\../ <---klick MyBrute Image
Jotain evilii on tekeillä....

User avatar
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Feuer » Tue Jul 07, 2009 10:33 pm

Miten toteuttaa tämmöinen?:

Text x,y,"Press jotainnappia to continue"

Jokin joka toimii kuten waitkey, mutta pysäyttää ohjelman kunnes tietty nappi on painettu, eikä kunnes jotain nappia on painettu

loppu koodi
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG

DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Tyhmät kysymykset (II/2009)

Post by DatsuniG » Tue Jul 07, 2009 10:55 pm

Jotain tämän tyylistä(kö)?

Code: Select all

For i = 0 To 25
    Repeat
        Text 2,2,"Press "+Chr(97 + i)+" to continue."
        DrawScreen
    Until GetKey() = 97 + i
Next i
Hengität nyt manuaalisesti.

User avatar
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 5:53 pm

Re: Tyhmät kysymykset (II/2009)

Post by Jani » Wed Jul 08, 2009 3:26 pm

Feuer wrote:Miten toteuttaa tämmöinen?:

Text x,y,"Press jotainnappia to continue"

Jokin joka toimii kuten waitkey, mutta pysäyttää ohjelman kunnes tietty nappi on painettu, eikä kunnes jotain nappia on painettu

loppu koodi

Code: Select all

SCAN_koodi=cbkeyspace

While 1 : If WaitKey()=SCAN_koodi Then Exit : Wend
Vaikka noin...
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition

User avatar
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Feuer » Wed Jul 08, 2009 3:35 pm

Kiitän :) Sain noista patentoitua systeemin.

Seuraava ongelma eri projektista:

Code: Select all

Function ReadConfig(tiedosto$, otsikko$)
    otsikko$ = Lower(otsikko$)
    If FileExists(tiedosto$) Then
        f = OpenToRead(tiedosto$)

        While Not EOF(f)
            rivi$ = Lower(ReadLine(f))
            If Left(rivi$, Len(otsikko$)+1) = otsikko$+"=" Then
                arvo$ = Replace(rivi$, otsikko$+"=", "")
                Return arvo$
            EndIf
        Wend

    Else
        MakeError "Config file not found!"
    EndIf
End Function 
Miksi edellinen funktio palauttaa nollan jokaisella 'otsikolla' kun asetustiedosto kuuluu:
täytettä=töttöröö
rekkari=abc-123
valmnro=K9HÖM9813E390196
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG

User avatar
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 5:53 pm

Re: Tyhmät kysymykset (II/2009)

Post by Jani » Wed Jul 08, 2009 3:55 pm

Feuer wrote:Kiitän :) Sain noista patentoitua systeemin.

Seuraava ongelma eri projektista:

Code: Select all

Function ReadConfig(tiedosto$, otsikko$)
    otsikko$ = Lower(otsikko$)
    If FileExists(tiedosto$) Then
        f = OpenToRead(tiedosto$)

        While Not EOF(f)
            rivi$ = Lower(ReadLine(f))
            If Left(rivi$, Len(otsikko$)+1) = otsikko$+"=" Then
                arvo$ = Replace(rivi$, otsikko$+"=", "")
                Return arvo$
            EndIf
        Wend

    Else
        MakeError "Config file not found!"
    EndIf
End Function 
Miksi edellinen funktio palauttaa nollan jokaisella 'otsikolla' kun asetustiedosto kuuluu:
täytettä=töttöröö
rekkari=abc-123
valmnro=K9HÖM9813E390196
Saako kysyä, miten kutsut tuota funktiota?
Joskus se vika piilee siinä...
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition

User avatar
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Feuer » Wed Jul 08, 2009 4:45 pm

oiskovalmnro=Readconfig("kansiotiedot.cfg", "valmnro")
Ja tuon asetustiedoston rivit on luotu Writeconfigilla
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG

Locked