Login Register
Frontpage Code library Pastebin

LimitCamera

Author: Hedge
Added: 17. kesäkuuta 2012 kello 23.23
Edited: 17. kesäkuuta 2012 kello 23.23
Category: Kamera

Description

Pitää kameran tilekartan rajojen sisäpuolella. Olettaa että kartta ON ladattu globaaliin muuttujaan gMap. Ottaa parametreinä kameran koordinaatit ennen liikuttamista.

Code

Select all
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Kartan pitää olla tässä muuttujassa
Global gMap
gMap = LoadMap( "Media\testmap.til", "Media\tileset.bmp" )

// Esimerkki
Dim oldX, oldY As Integer

Repeat

	// Otetaan kameran koordinaatit talteen
	oldX = CameraX()
	oldY = CameraY()
	
	TranslateCamera ( RightKey() - LeftKey() ) * 3, ( UpKey() - DownKey() ) * 3
	LimitCamera( oldX, oldY )

	DrawScreen

Forever

// By Hedge
// http://www.cbrepository.com/codes/code/73/
// oldX&oldY = kameran koordinaatit ennen liikuttamista
Function LimitCamera( oldX As Integer, oldY As Integer )

	If CameraX() < -( ObjectSizeX( gMap ) / 2 - ScreenWidth() / 2 ) Or CameraX() > ( ObjectSizeX( gMap ) / 2 - ScreenWidth() / 2 ) Then 
		PositionCamera oldX, CameraY()
	EndIf
	If CameraY() < -( ObjectSizeY( gMap ) / 2 - ScreenHeight() / 2 ) Or CameraY() > ( ObjectSizeY( gMap ) / 2 - ScreenHeight() / 2 ) Then 
		PositionCamera CameraX(), oldY
	EndIf
	
EndFunction

Comments

No comments. You can be first!

Leave a comment

You must be logged in to comment.