Tyhmät kysymykset (I/2010)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: Tyhmät kysymykset (I/2010)

Post by SPuntte »

Jonez wrote: -- huomaa, että cb:ssä tyypit ja taulukot ovat automaattisesti globaaleja --
Ei pidä ihan paikkaansa tyyppien osalta. Tyyppikokoelman määrittely sinänsä on tietysti globaali, mutta yksittäistä tyyppi-instanssia ei voi käsitellä funktiossa suoraan, sillä sen handle ei ole validi funktion sisällä, vaikka se välitettäisiin parametrinä. Toisinsanoen tyyppi-instanssit eivät ole globaaleja, eikä niitä voi sellaisiksi määritelläkään.

Käsitelläksesi yksittäistä tyyppi-instanssia funktiossa ilman For Each -silmukkaa tulee parametrinä välittää tyyppi-instanssin ID, jonka saa funktiolla ConvertToInteger(tyyppiInstanssi). Vastaavasti funktiossa pitää käskeä typpiInstanssi.TYYPPI = ConvertToType(ID).
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
jaahas
Advanced Member
Posts: 307
Joined: Fri Feb 05, 2010 11:36 pm
Location: Tornio

Re: Tyhmät kysymykset (I/2010)

Post by jaahas »

en nyt tajua miks toi ei näytä tota texti tekstiä?

Code: Select all

If ObjectsOverlap(hiiri,heppap) And MouseHit(1) Then
PositionObject boxi,ObjectX(heppap)-36,ObjectY(heppap)-72
objoverlap(boxi)
Text 10,10,"lol"
If iiiiii=1 Then
ShowObject boxi,ON
If ObjectsOverlap(hiiri,boxi) Then
Text 10,10,"texti"
EndIf
EndIf
EndIf
EDIT:

keksin vastauksen

Last edited by jaahas on Fri Apr 09, 2010 11:18 pm, edited 1 time in total.
User avatar
Ruuttu
Devoted Member
Posts: 688
Joined: Thu Aug 30, 2007 5:11 pm
Location: Finland, Sipoo

Re: Tyhmät kysymykset (I/2010)

Post by Ruuttu »

Onko mitään keinoa piirtää videokuvaa muualle kuin, no... suoraan ruudulle?

DrawToImage ei ainakaan tuntunut toimivan.

EDIT: jahuu.... peruutan kysymyksen.
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Tyhmät kysymykset (I/2010)

Post by Wingman »

Ruuttu wrote:Onko mitään keinoa piirtää videokuvaa muualle kuin, no... suoraan ruudulle?

DrawToImage ei ainakaan tuntunut toimivan.

EDIT: jahuu.... peruutan kysymyksen.
mikäs se tapa oli? itteäkin jäi kiinnostamaan...
- - - -
cool-driver
Active Member
Posts: 116
Joined: Sat Feb 14, 2009 7:47 am

Re: Tyhmät kysymykset (I/2010)

Post by cool-driver »

Voisiko joku neuvoa miten saisin tehtyä tekoälyn, joka ohjaisi objektia. Eli liikuttaisi sitä ja ampuisi.
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
Knoy
Active Member
Posts: 187
Joined: Fri Feb 12, 2010 10:50 pm

Re: Tyhmät kysymykset (I/2010)

Post by Knoy »

Tässä olisi erittäin simppelinä tämä...
En kyllä luule, että haet tätä näin simppelinä...

Code: Select all

Type Vastus//Vastustajien type
    Field O//Vastustajan objectin fieldi
    Field Amp//Vastustajan ampumiselle muuttuja
EndType

Type ammus//ammusten type
    Field AO//Ammuksen objectin fieldi
EndType

Ukko=LoadObject("Media\Guy.bmp",36)
ShowObject Ukko,OFF

For i = 0 To 3
    Vastus.Vastus=New(Vastus)//Tekee uuden vastuksen
        Vastus\O=CloneObject(Ukko)//Kopioi vastukselle objectin
        Vastus\Amp=0//Laittaa Amp nollaan
        PositionObject Vastus\O,Rand(-100,100),Rand(-100,100)
Next i
    
Objecti=CloneObject(Ukko)
PositionObject Objecti,0,-75


Luoti=LoadObject("Media\bullet.bmp",16)
ShowObject Luoti,OFF

Repeat
    TurnObject Objecti,2: MoveObject Objecti,3
    For Vastus.Vastus=Each Vastus//Käy vastuksetläpi
        PointObject Vastus\O,Objecti//Kääntää Vastuksen objectiin
        MoveObject Vastus\O,1//Liikuttaa vastusta
        For Vastus2.Vasuts=Each Vastus//Käy vastukset uudestaan läpi overlapintakia.
            If Vastus2\O=Vastus\O=0 Then
                If ObjectsOverlap(Vastus2\O,Vastus\O) Then
                    Kulmaoli=ObjectAngle(Vastus2\O)
                    PointObject Vastus2\O,Vastus\O
                    MoveObject Vastus2\O,-2
                    RotateObject Vastus2\O,KulmaOli
                EndIf
            EndIf
        Next Vastus2
        If Vastus\Amp<50 Then //Ampuminen
            Vastus\Amp+1 
        Else
            Ammus.Ammus=New(Ammus)
                Ammus\Ao=CloneObject(Luoti)
                CloneObjectPosition Ammus\Ao,Vastus\O
                CloneObjectOrientation Ammus\Ao,Vastus\O
            Vastus\Amp=0
        EndIf
    Next Vastus.vastus
    For Ammus.Ammus=Each Ammus//En tee tätä ammus systeemiä kokonaan...
        MoveObject Ammus\Ao,6
    Next Ammus.Ammus
    DrawScreen
Forever

User avatar
Timblex
Advanced Member
Posts: 252
Joined: Sun Apr 11, 2010 10:37 am
Location: Kouvola

Re: Tyhmät kysymykset (I/2010)

Post by Timblex »

Kuinka voin tehdä tekemästäni .exe tiedostosta .src tiedoston :?: :roll:
Entinen timpe99...
Demokisa 2013 demo valmis, Check it out!
cool-driver
Active Member
Posts: 116
Joined: Sat Feb 14, 2009 7:47 am

Re: Tyhmät kysymykset (I/2010)

Post by cool-driver »

Knoy wrote:Tässä olisi erittäin simppelinä tämä...
En kyllä luule, että haet tätä näin simppelinä...

Code: Select all

Type Vastus//Vastustajien type
    Field O//Vastustajan objectin fieldi
    Field Amp//Vastustajan ampumiselle muuttuja
EndType

Type ammus//ammusten type
    Field AO//Ammuksen objectin fieldi
EndType

Ukko=LoadObject("Media\Guy.bmp",36)
ShowObject Ukko,OFF

For i = 0 To 3
    Vastus.Vastus=New(Vastus)//Tekee uuden vastuksen
        Vastus\O=CloneObject(Ukko)//Kopioi vastukselle objectin
        Vastus\Amp=0//Laittaa Amp nollaan
        PositionObject Vastus\O,Rand(-100,100),Rand(-100,100)
Next i
    
Objecti=CloneObject(Ukko)
PositionObject Objecti,0,-75


Luoti=LoadObject("Media\bullet.bmp",16)
ShowObject Luoti,OFF

Repeat
    TurnObject Objecti,2: MoveObject Objecti,3
    For Vastus.Vastus=Each Vastus//Käy vastuksetläpi
        PointObject Vastus\O,Objecti//Kääntää Vastuksen objectiin
        MoveObject Vastus\O,1//Liikuttaa vastusta
        For Vastus2.Vasuts=Each Vastus//Käy vastukset uudestaan läpi overlapintakia.
            If Vastus2\O=Vastus\O=0 Then
                If ObjectsOverlap(Vastus2\O,Vastus\O) Then
                    Kulmaoli=ObjectAngle(Vastus2\O)
                    PointObject Vastus2\O,Vastus\O
                    MoveObject Vastus2\O,-2
                    RotateObject Vastus2\O,KulmaOli
                EndIf
            EndIf
        Next Vastus2
        If Vastus\Amp<50 Then //Ampuminen
            Vastus\Amp+1 
        Else
            Ammus.Ammus=New(Ammus)
                Ammus\Ao=CloneObject(Luoti)
                CloneObjectPosition Ammus\Ao,Vastus\O
                CloneObjectOrientation Ammus\Ao,Vastus\O
            Vastus\Amp=0
        EndIf
    Next Vastus.vastus
    For Ammus.Ammus=Each Ammus//En tee tätä ammus systeemiä kokonaan...
        MoveObject Ammus\Ao,6
    Next Ammus.Ammus
    DrawScreen
Forever

Ei se mitään vaikka onkin simppeli. Koitan itse muokata tuota hieman, mutta se on ihan hyvä. Kiitti.
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
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 2:40 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2010)

Post by kaneli2000 »

timpe99 wrote:LOL
Äläpäs trollaa. Kyllä ihmiset vastaa kysymykseesi muutenkin.

Saat exestä scrnin kun laitat Ohjauspaneeli -> Kansion asetukset -> Näytä -> "Piilota tunnettujen tiedostotyyppien tunnisteet" pois päältä ja sitten vaan uudelleennimeät "lol.exe":n "lol.scr":ksi.
I see the rainbow rising
User avatar
Timblex
Advanced Member
Posts: 252
Joined: Sun Apr 11, 2010 10:37 am
Location: Kouvola

Re: Tyhmät kysymykset (I/2010)

Post by Timblex »

kuinka saan tehtyä exe tiedostosta src (screensaver tiedoston)
Entinen timpe99...
Demokisa 2013 demo valmis, Check it out!
User avatar
Timblex
Advanced Member
Posts: 252
Joined: Sun Apr 11, 2010 10:37 am
Location: Kouvola

Re: Tyhmät kysymykset (I/2010)

Post by Timblex »

ei toiminu kun tuli ilmotus että tiedostonimen muuttaminen voi aiheuttaa että tiedostoa ei voi enää käyttää kun siinä paino ok niin sit ku klikkas sitä oikeella nappulalla nii ei tullu sitä "asenna" oli vaan avaa ja kun sitä klikkas nii tuli virheilmotus että windows ei voi avata tätä tiedostoa
Entinen timpe99...
Demokisa 2013 demo valmis, Check it out!
User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Tyhmät kysymykset (I/2010)

Post by Ilkka »

Tällä hetkellä työn alla on tankkipeli. Siitä tulee joku Parallax Scroller vai mikäs se on. Miten saan tehtyä, että tankit eivät ilmesty toisesta laidasta toistensa päällä? Tämän hetken koodi:

Code: Select all

SCREEN 350,200

Type VIHOLLISET
    Field kuva
    Field x
    Field y
EndType 

vpati=LoadImage("Data/VihuPati.png")
opati=LoadImage("Data/OmaPati.png")
vihut=LoadImage("Data/VihuTankki.png") 
pelaaja=LoadImage("Data/OmaTankki.png")

x=0
y=0
taso=1

For vi=1 To 10*taso

    v.VIHOLLISET = New(VIHOLLISET)
    v\kuva = CloneImage(vihut)
    v\x = Rand(400,1000)
    v\y = Rand(0,160)

Next vi

Repeat

    For v.VIHOLLISET = Each VIHOLLISET
        v\x-1        
        DrawImage v\kuva,v\x,v\y
    Next v

    DrawImage pelaaja,x,y

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

Re: Tyhmät kysymykset (I/2010)

Post by Jonez »

Jotenkin tähän tyyliin. Toivottavasti tuossa ei ole pahoja ajatusvirheitä.

Code: Select all

//Seuraava koodi olettaa että vihollsiet tulevat joko ylä- tai alalaidasta, jolloin y-koordinaatti on vakio
//ja meidän täytyy arpoa pelkkä x-koordinaatti. 

//Kun vihollista ollaan luomassa, arvotaan x-kohta sille ja tarkastetaan onko se liian lähellä muita vihollisia.
//Jos on, arvotaan uusi kohta:

While True 'loputon silmukka
    x = Rand( 0, ScreenWidth() ) 'arvotaan paikka viholliselle x-suunnassa
    
    liianLähellä = False 'nollataan muuttuja liianLähellä
    
    //Käydään kaikki viholliset läpi. Huomaa että se uusin vihollinen minkä paikkaa arvotaan ei ole vielä luotu.
    //Jos se on luotu tässä vaiheessa, pitäisi silmukassa ottaa se huomioon ( if iVihu <> uusiVihu Then )
    For iVihu.vihut = Each vihut
        If Abs( iVihu\x - x ) < 50 Then 'jos uuden ja vanhan vihun etäisyys x-suunnassa < 50
            liianLähellä = True 'tällöin ollaan liian lähellä. Poistutaan silmukasta ja aloitetaan koko juttu alusta.
            Exit
        EndIf
    Next iVihu
    
    //Jos oltiin liian lähellä, muuttuja liianLähellä = True. Jos yksikään vihollinen ei ollut liian lähellä,
    //tämä muuttuja = False jolloin voimme huoletta luoda arvottuun kohtaan uuden vihollisen.
    If liianLähellä = False Then Exit
Wend

//x-kohta on arvottu (ja y-kohta toivottavasti tiedetään), luodaan vihu.
LuoVihu( x, y )
Varoitan vielä, että tuo koodi saattaa päättyä ikuiseen silmukkaan jos luot monta vihollista kerralla. Esim. Jos minimietäisyys on tuo 50 pikseliä, ja viholliset luodaan x-akselin suuntaiselle janalle joka on 800 pikseliä pitkä, voit pikaisella laskutoimituksella pääteltynä luoda turvallisesti korkeintaan 8 vihollista.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Tyhmät kysymykset (I/2010)

Post by Ilkka »

Kiitoksia Jonez!
Image
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset (I/2010)

Post by rami123 »

Mites saisin tehtyä semmosen juttun, että ohjelmmalla voi avata vaikka kuva tiedoston? Että kirjottas vaikka "kuva1.png" niin se hakhee sen konneeesta muokattavaksi
User avatar
Knoy
Active Member
Posts: 187
Joined: Fri Feb 12, 2010 10:50 pm

Re: Tyhmät kysymykset (I/2010)

Post by Knoy »

Taitaa ainakin CoolBasic SDK olla sellainen komento...
Tai jossain muussa "kirjastossa"
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: Tyhmät kysymykset (I/2010)

Post by temu92 »

LoadImage & Input?
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset (I/2010)

Post by rami123 »

Jooh no ihan uusi asia nii pitääpä tutkia tarkemmin.
User avatar
Knoy
Active Member
Posts: 187
Joined: Fri Feb 12, 2010 10:50 pm

Re: Tyhmät kysymykset (I/2010)

Post by Knoy »

Tässä olisi toimiva esimerkki tuosta Loadimage ja input systeemistä... Toimii vaan jos tiedosto on olemassa. Myös tiedosto sijainti pitää kirjoittaa.

Code: Select all

Repeat
    If I=OFF Then
        Text 0,0,"Paina enteriä ladataksesi kuva"
        If KeyHit(CbKeyReturn) Then
            I=ON
            Locate 0,0
            ClearKeys
        EndIf
    Else
        Muuttuja$=Input ("LoadImage:" )
        
        Text 0,15,"Paina enteriä ladataksesi kuva!"
        
        If KeyHit(CbKeyReturn) Then
            I=OFF
            CloseInput
            ClearKeys
            Kuva=LoadImage(Muuttuja$)
        EndIf
    EndIf
    DrawScreen
Forever 
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset (I/2010)

Post by rami123 »

Kiitoksia, tuollein juuri aloinkin tekemään ;)
Locked