Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: Tyhmät kysymykset

Post by Jonhu »

enjaksakirjautua wrote:Miten saan fysiikan peliin? Haluan pallon kimpoavan toisesta objektista. Ja paino voima myös.
Tuossa on ottox90 tekemä ohjelma, jossa on hyvät fysiikat :) Kunhan idean saat siitä selville, niin toteutat ne sitten helposti objecteilla.
viewtopic.php?f=10&t=1208

Karkeasti:

Painovoima:
kiihtyvyys=kiihtyvyys+painovoima
objy=objy+kiihtyvyys

Kimpoaminen

tormayksia=countcollisions()
for i=1 to tormayksia
if getcollisions()=90 then ...
next i
Tekeillä pikkupelejä ja ohjelmia :)
odezzz
Newcomer
Posts: 6
Joined: Tue Dec 16, 2008 6:59 pm

Taas yks...

Post by odezzz »

Mul on eri radat toteutettu sillee,et jokanen rata on oma looppinsa, ni miten saisin pisteet ja muut jutut aina nollaantumaan seuraavassa radassa? Jasit radois on sellanen ongelma, et ukko syntyy rajojen ulkopuolelle...Mikähän siinä on??

Kiitos :D
Ozcar
Advanced Member
Posts: 439
Joined: Mon Aug 27, 2007 8:43 pm
Location: Helsinki

Re: Tyhmät kysymykset

Post by Ozcar »

score = 0
PositionObject
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.

Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Tyhmät kysymykset

Post by Jani »

Olen nyt ladannut cbFUN: in (kiitos MavMaggotille ja TheFishille).
Miten saan MsgBoxiin tehtyä että jos painaa ook niin tee jotain ja jos peruuta niin teejotain.
Osaan kyllä tehdä sen boxin jossa on ne painikkeet.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
????

Re: Tyhmät kysymykset

Post by ???? »

Miten saan tehty function, joka aina palauttaa tietyllä luvulla jaollisen luvun? :?:
Luku saa olla ainoastaan kokonaisluku..
Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: Tyhmät kysymykset

Post by Jonhu »

???? wrote:Miten saan tehty function, joka aina palauttaa tietyllä luvulla jaollisen luvun? :?:
Luku saa olla ainoastaan kokonaisluku..
Katso komento (a mod b)

Tässä esimerkki..

Code: Select all

    
Repeat

        luku2=Rand(2,13)

        Repeat 
            luku=Rand(3,175)
        Until ( luku Mod luku2 ) = 0

        Repeat
            Text 10,10,"luku: "+luku 
            Text 10,30,"Jaollinen luvulla: "+luku2
            DrawScreen
        Until KeyHit(28)
        
Forever
Tekeillä pikkupelejä ja ohjelmia :)
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Tyhmät kysymykset

Post by Jani »

Tahtoisin vastaukesn edelliseeni.

Miksi cbFUN: in functio TextOut() ei toimi?

Code: Select all

Include "cbFUN\cbFUN.cb"

SetWindow "TextOut()"

Repeat
    TextOut(1,1,"cbFUn >> TextOut()")
Forever
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion »

Jani wrote:Tahtoisin vastaukesn edelliseeni.

Miksi cbFUN: in functio TextOut() ei toimi?

Code: Select all

Include "cbFUN\cbFUN.cb"

SetWindow "TextOut()"

Repeat
    TextOut(1,1,"cbFUn >> TextOut()")
Forever
MsgBoxilla ei voi palauttaa arvoa. Se on vain koriste.
TextOutissa on bugeja, se ei toimi kaikilla koneilla. Omalla koneellani tuo viesti ainakin ilmestyy ruudun vasempaan ylänurkkaan.
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
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Tyhmät kysymykset

Post by Jani »

OonSuomesta wrote:
Jani wrote:Tahtoisin vastaukesn edelliseeni.

Miksi cbFUN: in functio TextOut() ei toimi?

Code: Select all

Include "cbFUN\cbFUN.cb"

SetWindow "TextOut()"

Repeat
    TextOut(1,1,"cbFUn >> TextOut()")
Forever
MsgBoxilla ei voi palauttaa arvoa. Se on vain koriste.
TextOutissa on bugeja, se ei toimi kaikilla koneilla. Omalla koneellani tuo viesti ainakin ilmestyy ruudun vasempaan ylänurkkaan.
EDIT

Aaa... Se piirsikin NÄYTÖN vasempaan reunaan.

ScreenH() komennossa kriittinen vika! kun sen jakaa kahdella niin se on YLÄREUNASSA.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Tyhmät kysymykset

Post by Jani »

Miksi Beep() ei toimi?

Code: Select all

Include "cbFUN\cbFUN.cb"

SetWindow "cb"

musiikki$="1 2 2 1 2 1 1"


Dim soundit(30) As String
Dim kerto(30)

Repeat

    If Timer()>aika+2000
        ParseBeep(musiikki$)
        aika=Timer()
    EndIf
    
    DrawScreen
    
Forever


Function ParseBeep(_line$,kovuus=100,pituus=300)
    For i=1 To CountWords(_line)
        soundit(i)=GetWord(_line,i,"-")
        If soundit(i)="1" Then kerto(i)=1
        If soundit(i)="2" Then kerto(i)=2
    Next i
    For i=1 To CountWords(_line)
        Beep(kovuus*kerto(i)*2+kerto(i)*2,pituus)
    Next i
EndFunction
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset

Post by TheFish »

Jani wrote:Miksi Beep() ei toimi?

Code: Select all

For i=1 To CountWords(_line)
    soundit(i)=GetWord(_line,i,"-")
    If soundit(i)="1" Then kerto(i)=1
    If soundit(i)="2" Then kerto(i)=2
Next i
Olet laittanut tuolle getwordille erottimeksi viivan, kun sen pitäisi olla väli. Tosin tuohan olisi parempi tehdä näin (mielestäni)

Code: Select all

Function ParseBeep(_line$, kovuus = 100, pituus = 300)
    for i = 0 to countwords(_line)
        word$ = getword(_line, i, " ")
        Beep(kovuus * word * 2 + word * 2, pituus) //en kyllä tiedä mitä nämä parametrit tekevät, mutta laitoin ne vastaamaan omaa versiotasi
    next i
End Function
Tuossa et tarvitsisi taulukoita.
CoolBasic henkilökuntaa
Kehittäjä
Wee
Member
Posts: 57
Joined: Wed Dec 17, 2008 8:46 pm
Location: Mavihelvetti

Re: Tyhmät kysymykset

Post by Wee »

Iltaa taas, CoolBasic - yhteisö!

Seuraavassa koodinpätkässä tulkki herjaa, että Error! Can't find missing block REPEAT. Minusta kaikki on kohdallaan. Eli forever ei löydä repeattia. Tarkemmin vikakoodin numero on 88.

Code: Select all

Repeat
    'Kentän taustakuvat & muu tilpehööri
    DrawImage puska,100,95
    DrawImage pikkukivi,110,97
    DrawImage pikkukivi,230,169
    DrawImage puska,140,300
    'Tekstinsyötötökokeilut ylös, ja alaspäin vas. ylänurkka
    If UpKey() Then
                     ClearText 
                     Text 2,2, "Painat nuolta ylöspäin" 
    EndIf
    If DownKey() Then 
                     ClearText 
                     Text 2,2, "Painat nuolta alaspäin"
    EndIf
    If 
    'Päiväys alareunaan
    Text 1,280, "Tänään on"
    Text 80,280,Date()  
    Text 177,280,Time()
    'FPS oikeaan alareunaan
    Text 340,280, "FPS:"
    Text 370,280,FPS()
    'Piirretään ylä-ja alaviivat kentälle
    Line 0,26,400,26
    Line 0,260,400,260
    'Aluksen liikkuminen
    If UpKey() Then MoveObject alus, 2
    If DownKey() Then MoveObject alus, -2
    'Aluksen pelikentän rajaaminen
    If ObjectX(alus)>200 Then PositionObject alus, 200,ObjectY(alus) 
    If ObjectX(alus)<-200 Then PositionObject alus, -200,ObjectY(alus)
    If ObjectY(alus)>115 Then PositionObject alus, ObjectX(alus),115
    If ObjectY(alus)<-100 Then PositionObject alus, ObjectX(alus),-100
    'Ampuminen oikealle
    If KeyDown(cbkeyspace) And aselataus=0 Then 
                luoti.AMMUS = New(AMMUS)
                luoti\obj=CloneObject(pati)
                CloneObjectPosition luoti\obj,alus
                aselataus=5
     EndIf
     If aselataus>0 Then aselataus=aselataus-1
     
      For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
        If ObjectX(luoti\obj)<-180 Or ObjectX(luoti\obj)>180 Or ObjectY(luoti\obj)<-130 Or ObjectY(luoti\obj)>130 Then                
            DeleteObject luoti\obj
            Delete luoti
        EndIf        
      Next luoti 
    
    'Se unohtumaton
    DrawScreen

Forever
"This city looks so pretty, do you wanna burn here with me..."
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion »

Wee wrote:Iltaa taas, CoolBasic - yhteisö!

Seuraavassa koodinpätkässä tulkki herjaa, että Error! Can't find missing block REPEAT. Minusta kaikki on kohdallaan. Eli forever ei löydä repeattia. Tarkemmin vikakoodin numero on 88.

Code: Select all

...koodia...
Tuossa sinulla on yksi rivi, jossa lukee vain "If" ja sen takia ohjelma ei käänny.

Code: Select all

    If '<------------
    'Päiväys alareunaan
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
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset

Post by rami123 »

teen peliini musiikit niin miten tehdä sellanen soitto lista ,että se soittaa ne järjestyksessä kun toinen loppuu?
EDIT:

Kiitos! :D

Last edited by rami123 on Sun Dec 21, 2008 11:21 am, edited 1 time in total.
E.T.
Newcomer
Posts: 42
Joined: Thu Jul 03, 2008 9:33 am

Re: Tyhmät kysymykset

Post by E.T. »

Soittolistan voit tehdä vaikka näin.

Code: Select all

Dim lista(3)
lista(0)=LoadSound("media/Space Door open.wav")
lista(1)=LoadSound("media/sk_battle2.mp3")
lista(2)=LoadSound("media/cannon.wav")
lista(3)=LoadSound("media/Boom 1.wav")

sound=PlaySound(lista(aani))
Repeat
    If Not SoundPlaying(sound) Then
        aani=aani+1
        If aani>3 Then aani=0
        sound=PlaySound(lista(aani))
    EndIf
    Text 0,0,"Soitetaan ääntä "+aani
    DrawScreen
Forever
Quidquid latine dictum sit, altum videtur.
Voitot: Viikkokisa XVII
anttimoi
Newcomer
Posts: 25
Joined: Mon Aug 11, 2008 7:33 pm

Re: Tyhmät kysymykset

Post by anttimoi »

Mikäs on se tilesteriä vastaava ohjelma joka on ohjelmoitu coolbasicilla. Linkkiä?
Coolbasic roguelike-projekti menossa 8)
Progress bar @@@@@10%@@@@@
Pahasti jäätymässä...
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset

Post by rami123 »

Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: Tyhmät kysymykset

Post by Jonhu »

Olen alkanut ohjelmoimaan uutta tykkipeliä, tosin tälläkertaa toteutan tekoälyn laskemalla, joten vaikeustasoa riittää ;) Teen myös moninpeli mahdollisuuden, joten toteutan jokaisen imagen/objectin typeillä xD Katsotaan riittääkö intoni tehdä tästä suurempaa kokonaisuutta. Tekoälyn olen saanut valmiiksi muuten, paitsi tuota tykinkulman tarkkaa laskentaa (johon tarvitsen tuota pisteen tarkistusta).

Miksi tämä ei toimi?
Tuo viiva ei saisi mennä imagen päälle...

EDIT: Sain ratkaistua ongelman, mutta tosin en tiedä, miksi tämä ei toiminut imagesta lukemalla... Toimiva koodi alhaalla, jos joku sitä tarvii :)

Code: Select all

SCREEN 800,600

maa=MakeImage(1000,420)
DrawToImage maa
    Color cbgreen
    Box 0,100,1000,120
    Box 300,0,100,130
DrawToScreen

maax=0
maay=300
pnx=200
pny=340

Repeat

    
    DrawImage maa,maax,maay
    kulma=WantedAngle(pnx,pny,600,3,300)
    
    Line2(pnx,pny,kulma,150)
    Circle pnx-5,pny-5,10
    Text 10,10,FPS()
    
    DrawScreen
Forever

Function Line2(x#,y#,ang#,pituus#)
    x2# = x# + Sin(ang#)*pituus#
    y2# = y# - Cos(ang#)*pituus#
    Line x#,y#,x2#,y2#
EndFunction

Function WantedAngle(x1#,y1#,EnemyX#,turnspeed,MaxDistance)
    Repeat
        If EnemyX#>x1# Then
            Repeat
                angle=Rand(1,89)
            Until ( angle Mod turnspeed ) = 0
        Else
            Repeat
                angle=Rand(1,89)+270
            Until ( angle Mod turnspeed ) = 0
        EndIf
   
        Hits=0
        Lock 
        For a=0 To MaxDistance
            x2# = x1# + Sin(angle)*a
            y2# = y1# - Cos(angle)*a
            px = GetPixel2(x2#,y2#)
            If px <> -16777216 Then Hits+1 : Exit
        Next a
        Unlock
    Until Hits=0
    Return angle
   
EndFunction
Last edited by Jonhu on Mon Dec 22, 2008 10:00 am, edited 6 times in total.
Tekeillä pikkupelejä ja ohjelmia :)
Ozcar
Advanced Member
Posts: 439
Joined: Mon Aug 27, 2007 8:43 pm
Location: Helsinki

Re: Tyhmät kysymykset

Post by Ozcar »

Jonhu wrote:
???? wrote:Miten saan tehty function, joka aina palauttaa tietyllä luvulla jaollisen luvun? :?:
Luku saa olla ainoastaan kokonaisluku..
Katso komento (a mod b)

Tässä esimerkki..

Code: Select all

    
Repeat

        luku2=Rand(2,13)

        Repeat 
            luku=Rand(3,175)
        Until ( luku Mod luku2 ) = 0

        Repeat
            Text 10,10,"luku: "+luku 
            Text 10,30,"Jaollinen luvulla: "+luku2
            DrawScreen
        Until KeyHit(28)
        
Forever
Ehkä kuitenkin

Code: Select all

luku * Rand(min, max)
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.

Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
KankiKalle
Active Member
Posts: 170
Joined: Mon Jun 23, 2008 9:04 pm

Re: Tyhmät kysymykset

Post by KankiKalle »

Mikä on kun yritän soittaa musiikkia/ääniä pääsilmukassa, niin ääni kuuluu sellaisena kauheana rääkymisenä? Ja sitten jos poistan repeatin ja foreverin niin ääni kuuluu normaalina? Jos pääsilmukassa laitan setsoundin offille niin ääni kuuluu normaalina mut peli mavittaa?
Väsyttää niin ettei jaksa edes mennä lepäämään.
Locked