Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
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 » Fri Aug 08, 2008 9:52 pm

Jonhu wrote:
OonSuomesta wrote:
Jonhu wrote:Edelleen tässä pelissä ongelmana, että en saa poistettua objecteja, ja aloitettua pelia alusta. Elämät vaikeuttavat asiaa huomattavasti =/
Ainakin ongelmana on huono sisennys. Aloitat pääloopin alusta For...Each silmukan sisällä ja hypit sen For...Each silmukan välistä pois, se aiheuttaa kaatumisen. Aseta mielummin johonkin muuttujaan tieto että ollaan kuoltu ja tee jotain For...Each silmukan ULKOPUOLELLA ei sen sisällä!
Joku korjas mun vanhan bugin pistämällä mun function ton sisälle.. no yritän siistiä tota vähäsen katotaa, jos sitten toimisi..

EDIT: Miten pystyn käyttämään tota functiota, jos en saa pistää sitä for lauseen sisään???

If ObjectsOverlap(ukko,maara\obj,2) Then
Ei se tarkota sitä ettet sais sitä käyttää siinä sisällä. Laitat vain tuon If-lausekkeen sisällä jonkin tietyn muuttujan arvoksi 1 (tai mitä vaan ikinä haluatkin) ja tarkistat silmukan ulkopuolella onko muuttujan arvo 1 (tai mikä se nyt onkaan).
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

autoilija

Re: Tyhmät kysymykset

Post by autoilija » Sat Aug 09, 2008 11:04 am

Onko cb:llä mahdollista tehdä 80x80 kokonen kartta johon tulis aina viiva sille kohdalle mistä on liikuttu "oikeassa pelissä". Elikkä siis pikkukartta mihin tulee viivaa liikkumisen mukaan? Jos on niin miten?

autoilija

Re: Tyhmät kysymykset

Post by autoilija » Sat Aug 09, 2008 12:03 pm

Joo ton sain jo ratkaistua. Nyt tarvisin apuu tälläseen: Miten saisin ukon hyppimään joka toinen sekuntti ilmaan ja laskeutumaan "painovoiman" avulla takaisin alas.

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Tyhmät kysymykset

Post by Koodiapina » Sat Aug 09, 2008 12:09 pm

Käytät vaikka timeriä. Teet muuttujan, jossa on vanha aika. Jos nykyinen aika (Timer) on vanha aika + 2000 (2 sekunttia), niin laitat ukon hyppäämään ja laitat vanhaan aikaan nykyisen ajan. Muista myös tarkistuttaa, että tyyppi on maassa hyppy hetkellä. Esimerkki painovoimasta taas löytyy learning centeristä esimerkistä 19.
Last edited by Koodiapina on Sat Aug 09, 2008 3:03 pm, edited 1 time in total.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

Guest

Re: Tyhmät kysymykset

Post by Guest » Sat Aug 09, 2008 12:23 pm

autoilija wrote:Onko cb:llä mahdollista tehdä 80x80 kokonen kartta johon tulis aina viiva sille kohdalle mistä on liikuttu "oikeassa pelissä". Elikkä siis pikkukartta mihin tulee viivaa liikkumisen mukaan? Jos on niin miten?
En oo saanu ratkastua kun joku hyypiö kokoajan laittaa tohon että ratkastu :evil: Vaikka lukis etä ratkastu niin auttakaa!

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 » Sat Aug 09, 2008 1:00 pm

Vieras wrote:En oo saanu ratkastua kun joku hyypiö kokoajan laittaa tohon että ratkastu :evil: Vaikka lukis etä ratkastu niin auttakaa!
Rekisteröidy ettei tuollaista tapahdu.
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
Olwi
Devoted Member
Posts: 557
Joined: Sun Dec 30, 2007 5:15 pm
Location: Muhos

Re: Tyhmät kysymykset

Post by Olwi » Sat Aug 09, 2008 2:57 pm

autoilija wrote:Onko cb:llä mahdollista tehdä 80x80 kokonen kartta johon tulis aina viiva sille kohdalle mistä on liikuttu "oikeassa pelissä". Elikkä siis pikkukartta mihin tulee viivaa liikkumisen mukaan? Jos on niin miten?
Ei ole tässä CB:tä nytten saatavilla,mutta tällä tavalla sen toteuttaisin:
Otetaan hahmon koordinaatit talteen tietyn ajan välein,ja merkitään se pikkukarttaan pisteellä. Sitten vain yhdistellään pisteet viivoilla sitä mukaa kun pisteitä tulee(jos kartta on reaaliaikainen,eli päivittyy jatkuvasti samalla kun ukko liikkuu).

Pitääpä alkaa toteuttaa tuollaista heti kun pääsen omalle koneelle.
Huuda mun ip:tä!

guest_jonez

Re: Tyhmät kysymykset

Post by guest_jonez » Sat Aug 09, 2008 5:36 pm

Periaatteessa sun tarvii tietää maailman korkeus ja leveys, maailmaa vastaavan minimapin korkeus ja leveys sekä minimappiin piirrettävän esineen koordinaatit. Tästä saadaan pieni matemaattinen yhtälö, jolla voidaan laskea esineen koordinaatit minimapilla:

x = esineX / MAAILMAN_LEVEYS * MINIMAPIN_LEVEYS
y = esineY / MAAILMAN_KORKEUS * MINIMAPIN_KORKEUS

seuraavassa koodissa kyseinen yhtälö lasketaan riveillä 24 ja 25.

Code: Select all

Const MM_WIDTH = 200
Const MM_HEIGHT = 100

Const SCR_WIDTH = 800
Const SCR_HEIGHT = 600

Const SYNC = 40

SCREEN SCR_WIDTH, SCR_HEIGHT
FrameLimit SYNC

minimap = MakeImage( MM_WIDTH, MM_HEIGHT )

ukko = LoadObject( "media\cow.bmp" )

ShowMouse OFF
Repeat
    
    PositionObject ukko, MouseWX(), MouseWY()

    DrawToImage minimap
    //lasketaan lehmän koordinaatit minimapissa
    drawX# = Float( MouseWX() + SCR_WIDTH / 2 ) / SCR_WIDTH * MM_WIDTH
    drawY# = Float( -MouseWY() + SCR_HEIGHT / 2 ) / SCR_HEIGHT * MM_HEIGHT    

    //piirretään viiva joka viidesosasekunti.
    aika = aika + 1
    If aika > SYNC / 5 Then
        aika = 0
        
        If oldX# <> 0 Or oldY# <> 0 Then
            Line oldX, oldY, drawX, drawY
        EndIf
        
        oldX = drawX
        oldY = drawY
    EndIf
    DrawToScreen
    
    //piirretään minimappi kokonaisuudessaan
    Box 0, 0, MM_WIDTH, MM_HEIGHT, 0
    Circle drawX, drawY, 2
    DrawImage minimap, 0, 0

    DrawScreen
Forever

User avatar
Kelli
Newcomer
Posts: 25
Joined: Mon Aug 27, 2007 10:15 pm
Location: Finland

Re: Tyhmät kysymykset

Post by Kelli » Sat Aug 09, 2008 5:50 pm

Saakos tossa cb:n editorissa mitenkään väliaikaisesti pois syntaxivärjäystä? Menee nimittäin hermo kun täytyis tekstiä tulostella, missä on cb komentoja ja ne sit tulee aina isolla alkukirjaimella. Miksköhän ihmeessä se ylipäänsä tarkistaa oikeinkirjotuksen heittomerkkien sisältä? :x
Life is worthless without computer.

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Tyhmät kysymykset

Post by Koodiapina » Sat Aug 09, 2008 6:19 pm

Ei tietääkseni saa, mutta purkkaratkaisu: Jos pitää kirjoittaa esim. for, silleen, että kaikki kirjaimet ovat pienellä, niin näin:

1. Kirjoita ensin. kaksi heittomerkkiä "", eli tyhjämerkkijono.
2. Sen sisälle kirjoitat for, ja ylimääräinen heittomerkki loppuun "for"".
3. Sitten painat del näppäintä ja saat "for".

Eikä se muutu isolla alkukirjaimella kirjoitetuksi, jos et klikkaa sitä hiirellä. Ja varmaan pelittäis, jos käyttäisi Notepad++:aa editorina. Nixen ohjeet löytyy foorumihaulla.

Toinen purkka ratkaisu, jos pitää kirjoittaa merkkijonon sisällä, esimerkiksi "Hello for world".

1. Kirjoitat ensin "Hello world".
2. Kirjoitat for:n jonkun sanan alkuun, esim: "Hello forworld".
3. Painat spacea, ja se jää pienellä kirjoitetuksi, jos et klikkaa sitä: "hello for world".
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
Kelli
Newcomer
Posts: 25
Joined: Mon Aug 27, 2007 10:15 pm
Location: Finland

Re: Tyhmät kysymykset

Post by Kelli » Sat Aug 09, 2008 6:54 pm

Grandi wrote:Ei tietääkseni saa, mutta purkkaratkaisu: Jos pitää kirjoittaa esim. for, silleen, että kaikki kirjaimet ovat pienellä, niin näin:

1. Kirjoita ensin. kaksi heittomerkkiä "", eli tyhjämerkkijono.
2. Sen sisälle kirjoitat for, ja ylimääräinen heittomerkki loppuun "for"".
3. Sitten painat del näppäintä ja saat "for".

Eikä se muutu isolla alkukirjaimella kirjoitetuksi, jos et klikkaa sitä hiirellä. Ja varmaan pelittäis, jos käyttäisi Notepad++:aa editorina. Nixen ohjeet löytyy foorumihaulla.

Toinen purkka ratkaisu, jos pitää kirjoittaa merkkijonon sisällä, esimerkiksi "Hello for world".

1. Kirjoitat ensin "Hello world".
2. Kirjoitat for:n jonkun sanan alkuun, esim: "Hello forworld".
3. Painat spacea, ja se jää pienellä kirjoitetuksi, jos et klikkaa sitä: "hello for world".
Juu tiedän kyllä että toisinaan välilyönneillä sun muilla saa sen pysymään, mutta sitten jos maalaa tai klikkaa niin taas muuttuu. Täytyy varmaan tosiaan vaihtaa notepad++:aan.
Life is worthless without computer.

Pangut

Re: Tyhmät kysymykset

Post by Pangut » Sat Aug 09, 2008 8:45 pm

Miten saan laitettua Windows tyylisennappulan vaihtamaan kuvaa?
Ois tärkeetä saada vastaus.

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Tyhmät kysymykset

Post by Koodiapina » Sat Aug 09, 2008 8:47 pm

Täältä löytyy WinXP namiska, ja kuvan vaihtaminen löytyy kun selaat hieman tätä aihetta taaksepäin.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
Smuliii
Newcomer
Posts: 11
Joined: Wed Jul 30, 2008 4:39 pm

Re: Tyhmät kysymykset

Post by Smuliii » Sat Aug 09, 2008 10:39 pm

Heitetääs ilmoille pari kysymystä:

Ensinnäkin milläs tekniikalla jää-efektin voisi toteuttaa? Eli tyyppi liukuu pikkasen matkaa ja sitten stoppaa?
Ja toinen kysymys käsittelee liukuhihnaa. Mietiskelin MoveObject-komentoa, eikös se sillä helpoiten onnistuisi?

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Tyhmät kysymykset

Post by Koodiapina » Sat Aug 09, 2008 10:54 pm

milläs tekniikalla jää-efektin voisi toteuttaa? Eli tyyppi liukuu pikkasen matkaa ja sitten stoppaa?
Teet muuttujan ukon vauhdista. Kun ukkoa liikutetaan, syntyy vauhtia, joka tavallisella maalla nollataan heti. Mutta jäällä ollessa laitat sen pienenemään hitaammin.
Ja toinen kysymys käsittelee liukuhihnaa. Mietiskelin MoveObject-komentoa, eikös se sillä helpoiten onnistuisi?
Jos tarkoitat sellaista, jonka päälle ukon astuessa ukko lähtee liukumaan johonkin suuntaan, niin moveobject / translateobject (Jos käytät objekteja).
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

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 » Sat Aug 09, 2008 11:07 pm

Kelli wrote:
Grandi wrote:Ei tietääkseni saa, mutta purkkaratkaisu: Jos pitää kirjoittaa esim. for, silleen, että kaikki kirjaimet ovat pienellä, niin näin:

1. Kirjoita ensin. kaksi heittomerkkiä "", eli tyhjämerkkijono.
2. Sen sisälle kirjoitat for, ja ylimääräinen heittomerkki loppuun "for"".
3. Sitten painat del näppäintä ja saat "for".

Eikä se muutu isolla alkukirjaimella kirjoitetuksi, jos et klikkaa sitä hiirellä. Ja varmaan pelittäis, jos käyttäisi Notepad++:aa editorina. Nixen ohjeet löytyy foorumihaulla.

Toinen purkka ratkaisu, jos pitää kirjoittaa merkkijonon sisällä, esimerkiksi "Hello for world".

1. Kirjoitat ensin "Hello world".
2. Kirjoitat for:n jonkun sanan alkuun, esim: "Hello forworld".
3. Painat spacea, ja se jää pienellä kirjoitetuksi, jos et klikkaa sitä: "hello for world".
Juu tiedän kyllä että toisinaan välilyönneillä sun muilla saa sen pysymään, mutta sitten jos maalaa tai klikkaa niin taas muuttuu. Täytyy varmaan tosiaan vaihtaa notepad++:aan.
Voit myös käyttää samaa tapaa kuin minä välillä, eli jos pitää vaikka kirjoittaa pienellä "on" (ilman heittomerkkejä) niin olen laittanut CB-koodina sen näin (purkkaa ;))

Code: Select all

Print "Tämä o"+"n purkkaa, mutta toimii"
Eli olen vain poikkaissut sanan keskeltä ja yhdistänyt sitten merkkijonot + operaattorilla toisiinsa.
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
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Tyhmät kysymykset

Post by Koodiapina » Sat Aug 09, 2008 11:21 pm

Ei sitä tarvitse edes yhdistää. Typistetty versio:

Code: Select all

Print "Tämä o""n purkkaa"
Tämä menee jo pilkunviilaamiseksi, mutta tulipa nyt tämäkin laitettua.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
Kelli
Newcomer
Posts: 25
Joined: Mon Aug 27, 2007 10:15 pm
Location: Finland

Re: Tyhmät kysymykset

Post by Kelli » Sat Aug 09, 2008 11:38 pm

OonSuomesta wrote: Voit myös käyttää samaa tapaa kuin minä välillä, eli jos pitää vaikka kirjoittaa pienellä "on" (ilman heittomerkkejä) niin olen laittanut CB-koodina sen näin (purkkaa ;))

Code: Select all

Print "Tämä o"+"n purkkaa, mutta toimii"
Eli olen vain poikkaissut sanan keskeltä ja yhdistänyt sitten merkkijonot + operaattorilla toisiinsa.
Hei, tuohan onkin kätevä vaikka purkkaa onkin. Enpä tullut itse ajatelleeksi. :D Kiitokset!
Life is worthless without computer.

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

Re: Tyhmät kysymykset

Post by Jonhu » Sun Aug 10, 2008 10:21 am

Miten saisin värjättyä segmentin pinta-alan?
onko mitään sektorin piirtokäskyä, tai voiko tuon alueen merkata jotenkin?

Code: Select all

SCREEN 800,600
    AddText "Tämä ohjelma laskee segmentin x pinta-alan"
    AddText "Anna keskuskuma : "
Repeat    
    keskuskulma#=Input(">> ")
    If keskuskulma>180 Then
        MakeError "Keskuskulma ei voi olla suurempi kuin 180 astetta!!!"
    EndIf
    DrawScreen
Until KeyHit(28)
    CloseInput
    Cls
    ClearText
    AddText ""
    AddText "Anna ympyrän säde (cm): "
Repeat    
    sade#=Input(">> ")
    DrawScreen
Until KeyHit(28)
    
    // itse lasku:
    janne1#=2*Sin(keskuskulma/2)*sade
    janne2#=2*Sin((360-(keskuskulma*2))/4)*sade
    pii#=3.1415926535
    vastaus#=((pii#*sade#*sade#)-(janne1#*janne2#))/4
    piirto(keskuskulma#,sade#)
    
    Color cbwhite
    Text 10,100,"Vastaus = "+vastaus#+" (cm2)"
    DrawScreen
    WaitKey
    End
    
Function piirto(keskuskulma#,sade#)
  
    Circle 400,200,300,0
    Line 550,350,550+Sin(keskuskulma#)*150, 350-Cos(keskuskulma#)*150
    Line 550,350,550+Sin(360)*150, 350-Cos(360)*150
    CenterText 500,300, "Säde = "
    CenterText 500,312, sade#+" (cm)"
    Color cbgreen
    Line 550+Sin(360)*150, 350-Cos(360)*150,550+Sin(keskuskulma#)*150, 350-Cos(keskuskulma#)*150

EndFunction
Tekeillä pikkupelejä ja ohjelmia :)

User avatar
Kelli
Newcomer
Posts: 25
Joined: Mon Aug 27, 2007 10:15 pm
Location: Finland

Re: Tyhmät kysymykset

Post by Kelli » Sun Aug 10, 2008 11:48 am

Jonhu wrote:Miten saisin värjättyä segmentin pinta-alan?
onko mitään sektorin piirtokäskyä, tai voiko tuon alueen merkata jotenkin?
Vaikkapa tällä tavalla :

Code: Select all

Function draw_sector(x1#, y1#, x2#, y2#, x3#, y3#, resolution)

    x_dif1# = x1# - x2# : x_dif2# = x2# - x3# : x_dif3# = x3# - x1#
    y_dif1# = y1# - y2# : y_dif2# = y2# - y3# : y_dif3# = y3# - y1#

    to_x# = x2# : to_y# = y2#
    
    For i=1 To resolution
        Line x1#,y1#,to_x#,to_y#
        to_x# = to_x# - x_dif2#/resolution
        to_y# = to_y# - y_dif2#/resolution
    Next i

    to_x# = x3# : to_y# = y3#
    
    For i=1 To resolution
        Line x2#,y2#,to_x#,to_y#
        to_x# = to_x# - x_dif3#/resolution
        to_y# = to_y# - y_dif3#/resolution
    Next i
    
    to_x# = x1# : to_y# = y1#
    
    For i=1 To resolution
        Line x3#,y3#,to_x#,to_y#
        to_x# = to_x# - x_dif1#/resolution
        to_y# = to_y# - y_dif1#/resolution
    Next i

End Function
sinun koodissasi sitten piirrät sektorin vain

draw_sector(550, 350, 550+Sin(360)*150, 350-Cos(360)*150,550+Sin(keskuskulma#)*150, 350-Cos(keskuskulma#)*150, 200)
Life is worthless without computer.

Locked