The Daily Click ::. Forums ::. Klik Coding Help ::. Camera Tricks
 

Post Reply  Post Oekaki 
 

Posted By Message

»xerus



Registered
  28/06/2002
Points
  675

You've Been Circy'd!Game of the Week Winner
21st July, 2007 at 15:07:24 -

Heres one that I just thought of, just now...

Looking down and up
Start off with some arbitrary alterable value that you can use for this. I chose an alterable value in the player sprite

* When the player is standing on the ground,
* Not pushing left,
* Not Pushing Right,
* Is pushing Down,
* Alt Value D is < 60 (60 will be the max amount of pixels the player can push the camera down.)
- Add two to Alt Value D

* Alt Value D is > 0
- Sub one from Alt Value D

Now the camera would look something like this:
* Always
- Set Y position to Y("Player") + Alt Value D

Its a little rough, but with some more events you could smooth it out a bit. And that was for looking down only. Looking up just involves doing the same thing except with negative values in Alt Value D.


Image Edited by the Author.

 
n/a

DaVince

This fool just HAD to have a custom rating

Registered
  04/09/2004
Points
  7998

Game of the Week WinnerClickzine StaffHas Donated, Thank You!Cardboard BoxDos Rules!
21st July, 2007 at 16:01:17 -

"Not 2 cameras sorry, but 2 representations. One for X and one for Y positions."

X and Y scrolling speeds will act independently. That's why.

 
Old member (~2004-2007).

Dr. James MD

Addict

Registered
  08/12/2003
Points
  11941

First GOTW AwardSecond GOTW AwardThird GOTW AwardPicture Me This -Round 26- Winner!
21st July, 2007 at 16:05:11 -

Ooh, forgot to say, you can do things like rotation on the main "camera look to" object. I've done that for the swimming bit in Tormishire since it runs in 360 degrees. When on the ground it snaps back to left/right positions. Might put in looking up+down actually...

 
Image
http://uk.youtube.com/watch?v=j--8iXVv2_U
On the sixth day God created Manchester
"You gotta get that sand out your vaj!" x13
www.bossbaddie.com

DaVince

This fool just HAD to have a custom rating

Registered
  04/09/2004
Points
  7998

Game of the Week WinnerClickzine StaffHas Donated, Thank You!Cardboard BoxDos Rules!
21st July, 2007 at 16:09:19 -

Dude, that sounds extremely cool.

 
Old member (~2004-2007).

viva/volt

Awesome Sauce

Registered
  26/08/2006
Points
  1694

Game of the Week WinnerSilverNova MemberKlikCast StarVIP Member
21st July, 2007 at 21:58:04 -

With the smooth scrolling the formula is:

Always ->
- set X of Camera to X( "Camera" )+(X( "Player" )-X( "Camera" ))*0.045
- set Y of Camera to Y( "Camera" )+(Y( "Player" )-Y( "Camera" ))*0.09

Changing the decimals will change the speed. Yes that is the same as dividing them but who cares...

EDIT: After using Jimmi's 3 object system I have an example (Because Jimmi's was only an exe?) http://www.silvernova.co.uk/Examples/ScrollingStuff.mfa hope it helps someone...


Image Edited by the Author.

 
Image
http://bfollington.tumblr.com

Liquixcat

Administrator
Lazy Coder

Registered
  08/12/2002
Points
  201

VIP MemberLikes TDCKitty
22nd July, 2007 at 00:43:14 -

Ok, here's an example. It's for MMF2, use the code all you want.
http://www.liquixcat.com/backend/Camera.rar

Image Edited by the Author.

 
thinking is like pong, it's easy, but you miss sometimes.

Dr. James MD

Addict

Registered
  08/12/2003
Points
  11941

First GOTW AwardSecond GOTW AwardThird GOTW AwardPicture Me This -Round 26- Winner!
22nd July, 2007 at 19:13:55 -

CRAP! I did didn't I! oh I'm new at this example business.

edit: it's the open source now.

Image Edited by the Author.

 
Image
http://uk.youtube.com/watch?v=j--8iXVv2_U
On the sixth day God created Manchester
"You gotta get that sand out your vaj!" x13
www.bossbaddie.com

viva/volt

Awesome Sauce

Registered
  26/08/2006
Points
  1694

Game of the Week WinnerSilverNova MemberKlikCast StarVIP Member
23rd July, 2007 at 06:07:24 -

Pff 3 examples to do the same thing . Jimmi uses actives, I used co-ordinates ... And Jimmi knows what he's doing lol...

 
Image
http://bfollington.tumblr.com

Dr. James MD

Addict

Registered
  08/12/2003
Points
  11941

First GOTW AwardSecond GOTW AwardThird GOTW AwardPicture Me This -Round 26- Winner!
23rd July, 2007 at 06:32:08 -

I use co-ordinates in my games. Actives are just the super cheap quick and dirty way of doing it. Super... fly?

 
Image
http://uk.youtube.com/watch?v=j--8iXVv2_U
On the sixth day God created Manchester
"You gotta get that sand out your vaj!" x13
www.bossbaddie.com

Liquixcat

Administrator
Lazy Coder

Registered
  08/12/2002
Points
  201

VIP MemberLikes TDCKitty
23rd July, 2007 at 09:42:11 -

Solid engine, use mine. Wierd buggy jumping camera, use Jimmi's. Have fun.

 
thinking is like pong, it's easy, but you miss sometimes.

»xerus



Registered
  28/06/2002
Points
  675

You've Been Circy'd!Game of the Week Winner
31st July, 2007 at 14:11:40 -

Wee I'm going to add another post here!

For boss fights I rigged up a little camera setup thats kinda nifty.

Always
.. set x position of Target to (x("boss") + x("player"))/2
.. set y position of Target to (y("boss") + y("player"))/2

x position of Target > x("player") + 95
.. set x position of Target to x("player") + 95

x position of Target < x("player") - 95
.. set x position of Target to x("player") - 95

Now just set your camera smoothing events and whatever to focus on "Target" instead of the player, and its done. What this does is always set the camera position to inbetween the player and the boss. Then, if the player gets too far away from the boss the camera gets pulled along with the player so that the player can't leave the screen. It works pretty well, and its easier to keep an eye on your enemy.

Oh yeah, and you probably want to adjust "95" to fit your window size if you plan on using this. This was done in a 320 x 240 game.

 
n/a

Liquixcat

Administrator
Lazy Coder

Registered
  08/12/2002
Points
  201

VIP MemberLikes TDCKitty
1st August, 2007 at 11:06:14 -

I'm sure 95 can be a ratio of "Screen width:number" as well. That way the code doesn't need to be changed everytime.
Like instead of 95 use: screen width/2.5.

Anyways, very cool!

 
thinking is like pong, it's easy, but you miss sometimes.

nim



Registered
  17/05/2002
Points
  7234
2nd August, 2007 at 04:23:48 -

The method I use is similar to the code posted by Ben smileyface (not the example file - I haven't opened it.) If you're unfamiliar with that formula then do try to get your head around it because it's very useful.

Liquixcat - Why are you encouraging the use of fast loops to move camera objects? (I haven't opened your example file, I'm just referring to the code posted here and your comments to James.) Is there any difference between x("camera") + 5 and loop 5 times(x("camera")+1)? It's not essential to break out the fast loops every time you need to move an active object. I think you had the right intentions; people need to realise how useful fast loops can be, but they have their place.

Edit: Here's what I use. It's one event and doesn't need any extra active objects.

Always -
X( "player" )-((X( "player" )-(X Left Frame+((X Right Frame-X Left Frame)/2)))/1.1)
Y( "player" )-((Y( "player" )-(Y Top Frame+((Y Bottom Frame-Y Top Frame)/2)))/1.1)

Open source .mfa file: http://tinyurl.com/2h8ng4

Image Edited by the Author.

 
//

Ski

TDC is my stress ball

Registered
  13/03/2005
Points
  10130

GOTW WINNER CUP 1!GOTW WINNER CUP 2!GOTW WINNER CUP 3!KlikCast HelperVIP MemberWii OwnerStrawberryPicture Me This Round 28 Winner!PS3 OwnerI am an April Fool
Candy Cane
2nd August, 2007 at 15:53:46 -

Awesome! \/

 
n/a
   

Post Reply



 



Advertisement

Worth A Click