Tyhmät kysymykset (II/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (II/2009)

Post by skorpioni-cb »

Kiitos!
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by Hene »

Miten saan ruudulle näkymään laskun vastauksen? Ohjelma siis laskee aiemmin ykkösen ja kakkosen arvot.

Code: Select all

ero=yksi-kaksi
"Baby," I said. "I'm a genius but nobody knows it but me."
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (II/2009)

Post by skorpioni-cb »

Code: Select all

print ero/text 0,0,ero

drawscreen 

waitkey
Esim.
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by Hene »

Itse muistin tuossa juuri äsken tuon perinteisen ja pitikin tulla laittamaan että ongelma ratkaistu:

Code: Select all

Text 0,20,"Piste-ero:"+ero+""
Kiitokset Skorpalle kuitenkin : )
"Baby," I said. "I'm a genius but nobody knows it but me."
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Feuer »

Kun DrawImagen ohjeistuksessa on seuraava:
Huomaa, että kuva on piirrettävä ruudulle joka kerta ennen DrawScreeniä. Yksi kerta ei riitä, tai kuva häviää.
Niin tarkoittaako tuo sitä että kuva katoaa täysin muistista jos Drawimagea ei kutsu vai enkö vain osaa ohjelmoida välituntisin? :shock:
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Jare »

Feuer wrote:Kun DrawImagen ohjeistuksessa on seuraava:
Huomaa, että kuva on piirrettävä ruudulle joka kerta ennen DrawScreeniä. Yksi kerta ei riitä, tai kuva häviää.
Niin tarkoittaako tuo sitä että kuva katoaa täysin muistista jos Drawimagea ei kutsu vai enkö vain osaa ohjelmoida välituntisin? :shock:
Ei katoa, mutta jos DrawImagea ei kutsuta, niin kuvaa ei piirretä. Jos jätetään DrawScreen:kin kutsumatta, ei ikkunaan piirry mitään - tai oikeastaan ikkunassa jo oleva kuva jää ikkunaan, muttei muutu miksikään.
Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by Hene »

Mikä vikana? Tarkoitus laskea keskiarvo...

Code: Select all

ka2=arvo12+arvo22+arvo32/3
E: Ongelma ratkaistu purukumilla. Jos haluat auttaa, ole hyvä ja ojenna nauloja hyvien ohjeiden kanssa :--D

EE: Purukumin takia aiempi osa koodista meni sekaisin... Nauloja tarvitaan... :/
Last edited by Hene on Tue Nov 24, 2009 7:27 pm, edited 1 time in total.
"Baby," I said. "I'm a genius but nobody knows it but me."
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: Tyhmät kysymykset (II/2009)

Post by Sly_Jack0 »

Hene wrote:Mikä vikana? Tarkoitus laskea keskiarvo...

Code: Select all

ka2=arvo12+arvo22+arvo32/3
Kuten matematiikan tunneillakin on opetettu; kerto- ja jakolaskut lasketaan ennen yhteen- ja vähennyslaskuja. Elikkäs laita nuo yhteenlaskut sulkuihin. Tähän tapaan:

Code: Select all

ka2 = (arvo12 + arvo22 + arvo32) / 3
Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by Hene »

Sly_Jack0 wrote:
Hene wrote:Mikä vikana? Tarkoitus laskea keskiarvo...

Code: Select all

ka2=arvo12+arvo22+arvo32/3
Kuten matematiikan tunneillakin on opetettu; kerto- ja jakolaskut lasketaan ennen yhteen- ja vähennyslaskuja. Elikkäs laita nuo yhteenlaskut sulkuihin. Tähän tapaan:

Code: Select all

ka2 = (arvo12 + arvo22 + arvo32) / 3
Jos tämä olisi Wikipedia, ojentaisin sinulle papukaijamerkin :)
"Baby," I said. "I'm a genius but nobody knows it but me."
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Feuer »

Jare wrote:
Feuer wrote:Kun DrawImagen ohjeistuksessa on seuraava:
Huomaa, että kuva on piirrettävä ruudulle joka kerta ennen DrawScreeniä. Yksi kerta ei riitä, tai kuva häviää.
Niin tarkoittaako tuo sitä että kuva katoaa täysin muistista jos Drawimagea ei kutsu vai enkö vain osaa ohjelmoida välituntisin? :shock:
Ei katoa, mutta jos DrawImagea ei kutsuta, niin kuvaa ei piirretä. Jos jätetään DrawScreen:kin kutsumatta, ei ikkunaan piirry mitään - tai oikeastaan ikkunassa jo oleva kuva jää ikkunaan, muttei muutu miksikään.
Hienoa... Tuossa on siis jokin toinen bugi :P Mutta kiitän ja kumarran taas avusta!
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
regalis
Advanced Member
Posts: 268
Joined: Mon Aug 27, 2007 9:44 pm

Re: Tyhmät kysymykset (II/2009)

Post by regalis »

Hene wrote:Itse muistin tuossa juuri äsken tuon perinteisen ja pitikin tulla laittamaan että ongelma ratkaistu:

Code: Select all

Text 0,20,"Piste-ero:"+ero+""
Menee vähän pilkunnussinnaksi, mutta miksi lisäät tuohon tekstiin lopussa "ei-mitään"? (+"") Toimii tuo tietysti noinkin, mutta ne voisi jättää poiskin... :)
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Tyhmät kysymykset (II/2009)

Post by Wingman »

Mitenkäs saan x:n prosentin y:stä laskettua?
- - - -
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (II/2009)

Post by Awaclus »

Ellu wrote:Mitenkäs saan x:n prosentin y:stä laskettua?
Jos tarkoitat sitä, että sinulla on vaikka x 87 ja haluat tietää, monta prosenttia se on y:stä 865, niin näin onnistuu ainakin minun käsitykseni mukaan: prosentti = x*100/y.

EDIT: ja obv toimii kaikilla x ja y arvoilla, eikä pelkästään noilla random esimerkeillä.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset (II/2009)

Post by Koodiapina »

x/y*100 = Montako prosenttia x on y:stä.
y/100*x = Kuinka paljon on x% y:stä.
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Tyhmät kysymykset (II/2009)

Post by Wingman »

Kiitos!
- - - -
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ä »

Kuinka saisin oikean kokoisella tile-mapilla olevan objektin\kuvan näkymään tekemässäni mini-mapissa vaikkapa pisteenä?
\../(-_-)\../ <---klick MyBrute Image
Jotain evilii on tekeillä....
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by Jonez »

Hankala asia selittää, joten tein aika tyhjentävän vastauksen antavan koodin. Toimintatapa on kuitenkin seuraavanlainen:

Jos meillä on tilekartta, jonka koko on vaikka 1000px, ja meillä on minimap, jonka koko on 100px, ja haluamme piirtää ukon minimappiin samalle kohdalle kuin kartassa, niin:
Tämähän tarkoittaa että kun ukko on kohdassa 1000 (kartalla), niin ukkoa vastaavan pisteen täytyy olla kohdassa 100 minimapissa. Vastaavasti kohta 500 kartassa on minimapissa 50.

Matemaattisesti ajatellen kyseessä on eräänlainen prosenttilasku. Kohta 1000 kartalla on minimapissa:
100 / 1000 * 1000 = 100.
Jossa 100 on minimapin leveys, ensimmäinen 1000 on kartan leveys ja toinen 1000 on ukkelin kohta kartalla. Tuloksena 100, joka siis tarkoittaa minimapin laitaa.
Jos ukko on keskellä karttaa, laskutoimitus on: 100 / 1000 * 500, josta tulee tulokseksi 50, eli myös minimapin keskikohta.

Muuttujilla ilmaistuna yhtälö on:

MINIMAP_LEVEYS / KARTTA_LEVEYS * OBJEKTIN_X_KOORDINAATTI.

Koodina ilmaistuna, esim. seuraavanlainen:

Code: Select all

Float( MAP_WIDTH ) / ObjectSizeX( kartta ) * ObjectX( ukko )
Ja tässä itse koodi, kohtuullisesti kommentoituna. Huomaa että ukon y-koordinaatissa käytetään negatiivista ObjectY( ukko )-arvoa, koska maailmakoordinaatit ovat y-akseliltaan käänteiset ruutukoordinaatteihin.

Lisäksi, ukon piirtäminen ruudulle vaatii em. suhdelaskun lisäksi myös minimapin koordinaatit (keskikoordinaatit tarkkaan ottaen, koska tilekartan keskikohta on myös minimapin keskikohta).

Code: Select all

SCREEN 1024, 768

Const MAP_WIDTH = 200
Const MAP_HEIGHT = 300

kartta = LoadMap( "media\cdm2.til", "media\tileset.bmp" )
ukko = LoadObject( "media\guy.bmp", 72 )

SetupCollision ukko, kartta, 2, 4, 2

imgMinimap = MakeImage( MAP_WIDTH, MAP_HEIGHT )

//Tässä lasketaan kuinka suuri on yksi minimapin tile. Suhde siis on:
// minimapin pituus / tilmäärä leveyssuunnassa.
mapTileSizeX# = Float( MAP_WIDTH ) / MapWidth()

//sama korkeudelle
mapTileSizeY# = Float( MAP_HEIGHT ) / MapHeight()

//Piirretään minimap
DrawToImage imgMinimap
For x = 1 To MapWidth()
    For y = 1 To MapHeight()
        //Tarkastetaan onko kohdalla seinä, jos on...
        If GetMap2( 2, x, y ) Then
            //Niin piirretään laatikko minimappiin suhteessa samaan kohtaan.
            Color cbWhite
        ElseIf GetMap2( 0, x, y ) <> 0 Then
            Color 5, 5, 5
        Else
            Color cbBlack
        EndIf
        Box ( x - 1 ) * mapTileSizeX, ( y - 1 ) * mapTileSizeY, mapTileSizeX, mapTileSizeY
    Next y
Next x
DrawToScreen

Repeat
    
    //Liikutetaan ukkoa
    MoveObject ukko, ( KeyDown( CbKeyW ) - KeyDown( CbKeyS ) ) * 3
    RotateObject ukko, GetAngle( ObjectX( ukko ), -ObjectY( ukko ), MouseWX(), -MouseWY() )
    UpdateGame
    
    CloneCameraPosition ukko

    DrawGame
    
    //Piirretään minimap
    mmX = 20
    mmY = 20
    DrawImage imgMinimap, mmX, mmY

    //Tässä lasketaan tässä kohtaan ukko piirretään, näin:
    //1. ukon kohta on minimapin piirtokoordinaatti (mmX + MAP_WIDTH / 2), koska
    //tämä on oikea nollakohta.
    //2. Tämän jälkeen lasketaan kartan suhde minimapin suhteeseen, ja asetetaan
    //ukko tämän suhteen mukaan kartalle. (Float( MAP_WIDTH ) ...)
    
    //Sama tehdään y-koordinaatille. Y-koordinaatissa ObjectY on negatiivinen, koska
    //maailmakoordinaatit ovat "väärinpäin" verrattuna ruutukoordinaatteihin.
    
    _dX# = mmX + MAP_WIDTH / 2 + Float( MAP_WIDTH ) / ObjectSizeX( kartta ) * ObjectX( ukko )
    _dY# = mmY + MAP_HEIGHT / 2 + Float( MAP_HEIGHT ) / ObjectSizeY( kartta ) * -ObjectY( ukko )
    
    //Piirretään ukko kohdalleen.
    Color cbRed
    Box  _dX - mapTileSizeX / 2, _dY - mapTileSizeY / 2, mapTileSizeX, mapTileSizeY
 
    DrawScreen
Forever
Edit. Muutin mapin ulkoasua mucho 1337.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Feuer »

Pystyisikö joku nimeämään freewaresoftan jolla tehdä ja muokata noita SDK:n 3d-moottorin tukemia .obj - tiedostoja?
EDIT:

Danke :P

EDIT:

Miksi kumpikin ohjelma aiheuttaa tilanteen jossa 64-bit Vista ilmoittaa että ei toimi? :O

Last edited by Feuer on Wed Dec 02, 2009 8:33 pm, edited 2 times in total.
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (II/2009)

Post by phons »

Blender!! Ja kyllä Wings3D:kin pystyy avamaan. Kyllä niitä varmaan riittää mutta nuo olivat ne mitkä tuli ekana mieleen. Ja en sitten usko että CB pystyy rendaamaan mitään himo 3D-modeleja, jotain perus palikoita. :P Tai mistäs sitä tietää en ole kyllä testannut, mutta olettaisin näin.

Edit: File->Export, ja avamaan File->Import. Lukee niitä käyttöohjeita..
Last edited by phons on Wed Dec 02, 2009 10:26 pm, edited 1 time in total.
Image
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (II/2009)

Post by koodaaja »

Omalla systeemilläni 1000 polygonia menee vielä (toki noin puolet bcullautuu pois), minimillään n. 15fps - riippuu sitten minkä katsoo isoksi modelliksi, monet artistit pitävät 5k polyn mallejakin vielä suht pieninä :)
Locked