cb-hackers / cbEnchanted

A new runtime for CoolBasic
13 stars 3 forks source link

DrawGame vääränkokoiseen kuvaan sotkee objektien piirtosijainnit #86

Closed aXu-AP closed 12 years ago

aXu-AP commented 12 years ago

Jos DrawGamea kutsutaan piirtosijaintien ollessa ohjattuna kuvaan, joka on erikokoinen kuin ikkuna, piirtyy objektit väärään sijaintiin (poikkeuksena kartta).

FrameLimit 100
SCREEN 500, 500

Map = LoadMap("Media/cdm2.til", "Media/tileset.bmp")
PlayObject Map, 0, 0, 0.5

Guy = LoadObject("Media/soldier.bmp")
ShowObject Guy, OFF
For x = -4 To 4
    For y = -4 To 4
        nG = CloneObject(Guy)
        PositionObject nG, x * 70, y * 70
        RotateObject nG, Rand(360)
    Next y
Next x

Buffer = MakeImage(Rand(300, 600), Rand(300, 600))

Repeat
    TranslateCamera RightKey() - LeftKey(), UpKey() - DownKey()
    If DrawToBuffer Then
        DrawToImage Buffer
            Cls
            DrawGame
        DrawToScreen
        DrawImage Buffer, 0, 0
    Else
        DrawGame
    EndIf

    Text 0, 0, "Paina enteriä vaihtaaksesi piirron kuvaan tai ruutuun."
    Text 0, 15, "Kuvan koko: " + ImageWidth(Buffer) + ", " + ImageHeight(Buffer) + " (paina välilyöntiä)"
    If KeyHit(cbKeyReturn) Then DrawToBuffer = Not DrawToBuffer
    If KeyHit(cbKeySpace) Then
        DeleteImage Buffer
        Buffer = MakeImage(Rand(300, 600), Rand(300, 600))
    EndIf

    DrawScreen
Forever
valscion commented 12 years ago

Tämä on nähtävästi korjaantunut, kun siirryimme käyttämään transformaatiomatriiseja maailmankoordinaatteihin piirrettäessä.