The Game Engine
1
Main Page
Related Pages
Classes
Files
File List
File Members
Camera.cpp
Go to the documentation of this file.
1
#include "
Camera.h
"
2
#include "
Game.h
"
3
4
void
Camera::follow
(
WorldObject
* o,
Point2D
padding){
5
mObject
=o;
6
mPadding
=padding;
7
}
8
9
void
Camera::stopFollow
(){
10
mObject
=NULL;
11
}
12
13
void
Camera::move
(
Point2D
p){
14
pos
=p;
15
}
16
17
void
Camera::updatePos
(){
18
if
(
mObject
){
19
Point2D
position =
mObject
->
getCenterPos
();
20
Point2D
diff = position-
pos
;
21
Point2D
screen =
Point2D
(
Game::game
()->mScreen->w/2,
Game::game
()->
mScreen
->h/2);
22
if
(
mPadding
.
x
== 0 &&
mPadding
.
y
== 0)
23
pos =
mObject
->
getCenterPos
()-screen;
25
else
if
(diff.
x
>
mPadding
.
x
|| diff.
x
< -
mPadding
.
x
|| diff.
y
>
mPadding
.
y
|| diff.
y
< -
mPadding
.
y
){
26
}
27
}
28
}
29
30
void
Camera::zoom
(
double
z){
31
Size2D
s =
Game::game
()->
getScreenSize
();
32
Size2D
scaled = s*z;
33
Size2D
diff = (scaled-s)/2;
34
glMatrixMode( GL_PROJECTION );
35
glLoadIdentity();
36
37
glOrtho( -diff.
w
, s.
w
+ diff.
w
, s.
h
+ diff.
h
, -diff.
h
, -1, 1 );
38
39
glMatrixMode( GL_MODELVIEW );
40
glLoadIdentity();
41
mZoom
= z;
42
}
43
44
45
void
Camera::zoomIn
(
double
z){
46
zoom
(
mZoom
-z);
47
}
48
49
void
Camera::zoomOut
(
double
z){
50
zoom
(
mZoom
+z);
51
}
Camera.cpp
Generated on Tue Apr 16 2013 02:32:41 for The Game Engine by
1.8.3.1