Kameran zoomaus?

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
User avatar
Koodari Urhea
Newcomer
Posts: 8
Joined: Mon Oct 28, 2013 5:29 pm
Location: Oulu

Kameran zoomaus?

Post by Koodari Urhea » Tue Nov 17, 2015 5:07 pm

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.
Koodari Urhea (ei ehkä ihan niin urhea)

MrMonday
Advanced Member
Posts: 377
Joined: Fri Oct 10, 2008 2:35 pm

Re: Kameran zoomaus?

Post by MrMonday » Wed Nov 18, 2015 2:27 pm

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.

User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: Kameran zoomaus?

Post by CCE » Wed Nov 18, 2015 11:43 pm

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

User avatar
aloittelijamies
Newcomer
Posts: 45
Joined: Fri Nov 18, 2011 10:55 pm

Re: Kameran zoomaus?

Post by aloittelijamies » Fri Dec 04, 2015 9:30 pm

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.

Post Reply

Who is online

Users browsing this forum: No registered users and 8 guests