The Game Engine  1
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 
10  mObject=NULL;
11 }
12 
14  pos=p;
15 }
16 
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){
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 }