Static Camera View, and Portal?

Hello everyone,

i am new in this forum and from Germany. So sorry for my bad english.
I have two qeustions, and find no answer in the inet. Maybe u can help me a little.
I want to make a game with a static camera like Dino Crisis Resident Evil etc. A little bit old school. I have try it with the near senso. When the player hit it, it will change the view. But it dont work perfect.
The 2nd problem i have is to change the Levels. When the player walk through a door it sholud change the blend file and not the szene, bz the player should keep every item he have collect and not loose it all then and the enemies should not respawn when they are dead. The reason why i will change the file and not the szene is, when i put everything together in one file its getting to big.
I have try the portal Tutorial from the gamekit 2 but it doesn’t work with blender 2.6
Do u know there a good way too?

For saving the Inventory and the Enemies’ Disposition, you may use the GlobalDict, a global Dictionary in which Values can be saved and kept even when the .blend gets changed.
However, I cannot help you on that. Someone else will jump on here and elaborate on that, hopefully.

Concerning the Camera, though, you should not use the Near Sensor because, as you surely know already, it works with a Radius and therefore you would only be able to define radial Circle/spheric Æreas.
I suggest you rather use Collision with Cubes or Planes that own some Properties for the Camera Coordinates.

(edit) So, you can try making an Ærea, pull two Cubes into it and apply a Python Script to both connected with a Collision Sensor (property: player). Within the Script, the one single Camera that you use (only one) gets its Coordinates exchanged with the Properties, like in:


from bge import logic as g
own=g.getCurrentController().owner
cam=g.getCurrentScene().active_camera
cam.worldPosition[0]=own["locX"]
cam.worldPosition[1]=own["locY"]
cam.worldPosition[2]=own["locZ"]
cam.worldOrientation.to_euler().x=own["rotX"]
cam.worldOrientation.to_euler().y=own["rotY"]
cam.worldOrientation.to_euler().z=own["rotZ"]

I have not tested this, it may contain a few Mistakes!

(edit2) Ô, and you may as well consider adding Properties to activate or deactivate whether the Camera shall track to the Player or follow a particular Axis. For me, I am also likely to set Æreas to set the camera.lens, to zoom in or out.