Sign in to follow this  
TomLeGrand

Problems due to world's scaling

Recommended Posts

Hi there,

Before reading, I want you to know that you can test my little code here : https://jsfiddle.net/TomLeGrand/meL44k5k/ (Arrows to move the player and mousse to aim in a direction)

So,

I had some problems using the camera.follow (), moveToPointer () and world.scale.set () functions simultaneously. It seems that the world's scaling influence the x and y properties of world's object (like the camera, the input, etc...).

To be more specific, I can't use the camera.follow(player), because the player get out from the camera at some point. The only solution I found was to set the x and y camera's values in the update function but now I don't know how I can get a "smooth effect" without using the camera.follow() function. The moveToPointer() method react badly too, the farthest I go, the worst It get, even with game.input.scale.set().

I'll be glad if you can help me to fix the camera and the moveToPointer() methods :)

Share this post


Link to post
Share on other sites

Hi Tom.

Camera follow has been fixed in a newer version of Phaser. You should update to either phaser-ce or 2.6.2 :)

Because you move the camera around, the pointer's arctan to the player will not be computed correctly if you use the pointer's local (x,y). You need the arctan from the pointer's (x,y) in world coordinates. Passing the world to moveToPointer(), will use the pointer's world coordinates (this is not intuitive, I know).

game.physics.arcade.angleToPointer(player, game.input.activePointer, game.world);

With these changes in, check out : https://jsfiddle.net/gauravdixitv/tmnen92m/

Share this post


Link to post
Share on other sites

Cool :)

Quote

Am i using a old version of Phaser ?

 

Your fiddle was using an older version.

You can always check what version you are using - Phaser prints it in your console!
 

Quote

If yes how can I get the newest version ?

 

Um, depends on how you are including it. It might look like

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/phaser/2.6.2/phaser.min.js"></script>

//Or If you have downloaded the source, it could be something like:

<script type="text/javascript" src="../libs/phaser/phaser.min.js"></script>

You can update to phaser-ce by

1. Grabbing the latest source from https://github.com/photonstorm/phaser-ce and including it in your project ( with something like <script type="text/javascript" src="../libs/phaser/phaser.min.js"></script>)

OR

2. Pointing to a newer phaser source with <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/phaser-ce/2.9.4/phaser.min.js"></script>

 

Share this post


Link to post
Share on other sites
11 hours ago, samme said:

You actually just need to pass true there. :)

Oh right! I stand corrected :)

Quote
* @param {boolean} [world=false] - Calculate the angle using World coordinates (true), or Object coordinates (false, the default)
 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.