Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit)

I came to the similar idea (as like as enjoy the concept). As advice, I think you should change player’s position based on object scale. I mean, if a player stands on the edge of a block, when it scales, the player needs to stay on the edge. To achieve this, I ray-casted block under the Player and change the position based on Transform’s basis (Godot terminology). In code:

var origin_offset := global_position - ground_transform_previous.origin
var basis_change := ground_transform_current.basis * ground_transform_previous.basis.inverse()

var player_offset := basis_change * origin_offset - origin_offset
global_position += player_offset

Also, for scaling I use mouse wheel.

Really good idea, thanks for the suggestions, and thanks for playing! :)