Page 1 of 1

Kameran zoomaus?

Posted: Tue Nov 17, 2015 4:07 pm
by Koodari Urhea
Teen sivustakuvattua tasoloikkaa ja mietin, että voinko saada kameran zoomaamaan lähemmäs hahmoa, jotta en joudu suurentamaan kaikkia objekteja + tilemappia. Itse en ainakaan manusta tai foorumilta löytänyt tietoa asiasta.

Re: Kameran zoomaus?

Posted: Wed Nov 18, 2015 1:27 pm
by MrMonday
Coolbasicissa ei valitettavasti ainakaan itsessään ole moista ominaisuutta, enkä muista nähneeni muidenkaan tekemänä, joten täytyy itse askarrella omat viritykset moisen toteuttamiseksi.

Re: Kameran zoomaus?

Posted: Wed Nov 18, 2015 10:43 pm
by CCE
Marcoderin ScaleImagella on mahdollista tehdä aika nopea zoomaus.

Code: Select all

SCREEN 1152,864,32,0

Global gScaledImage
gScaledImage = MakeImage(1, 1)

img = LoadImage("media/car.bmp")

Repeat
   DrawImage ScaleImage(img, MouseX(), MouseY()), 0, 0
   Text 0, 0, FPS()
   DrawScreen
Forever

Function ScaleImage(_image, _width, _height)
   //By: Marcoder

   // Jos koko ei ole muuttunut niin ei tehdä mitään
   If _width = ImageWidth(gScaledImage) And _height = ImageHeight(gScaledImage) Then Return gScaledImage
   If _width <= 0 Or _height <= 0 Then Return gScaledImage
   
   DeleteImage gScaledImage
   gScaledImage = MakeImage(_width, _height)
   
   // Tehdään temppikuva johon skaalataan ensin vain leveys
   lTempImage = MakeImage(_width, ImageHeight(_image))
   DrawToImage lTempImage
   For x = 0 To _width - 1
       sx# = Float(ImageWidth(_image)) / Float(_width) * Float(x)
       DrawImageBox _image, x, 0, sx, 0, 1, ImageHeight(_image)
   Next x
   DrawToScreen
   
   // Skaalataan myös pystysuunnassa
   DrawToImage gScaledImage
   For y = 0 To _height - 1
       sy# = Float(ImageHeight(_image)) / Float(_height) * Float(y)
       DrawImageBox lTempImage, 0, y, 0, sy, ImageWidth(lTempImage), 1
   Next y
   DrawToScreen
   DeleteImage lTempImage

   Return gScaledImage
End Function

Re: Kameran zoomaus?

Posted: Fri Dec 04, 2015 8:30 pm
by aloittelijamies
viewtopic.php?f=12&t=2308

Tuossa on esimerkki, jota itse olen hyödyntänyt Routis pelissäni.
Suosittelen, vaikka se on melko raskas heikommille koneille.