shinkan's Recent Forum Activity

  • Problem Description

    Tilemap.TilesJSON is not updating properly when changing size and filling it with tiles.

    Attach a Capx

    https://dl.dropboxusercontent.com/u/343 ... pJSON.capx

    Description of Capx

    3 buttons to change the width of the Tilemap and fill it with random tiles. and TextArea filling returned values from expression every tick.

    Steps to Reproduce Bug

    • Click on + or - buttons
    • Click on Fill button
    • Watch TextArea
    • Click again on + or - buttons
    • Click on Fill button
    • Watch TextArea

    Observed Result

    Tilemap.TilesJSON expression return values only if you change tiles on the tilemap (clicking on the Fill button) and not while changing objects size.

    Also when you increase objects width from default 8 (tiles not pixels) to something different like 10 and click Fill, You will notice that Tilemap.TilesJSON have updated properly - width, and all tiles numbers and states. But if you then decrease width from 10 to something less like 7 or 4, Tilemap.TilesJSON will only update tile numbers and states. In the TextArea "width" won't change and also number of tiles won't change. It will keep the numbers from before making Tilemap smaller.

    Expected Result

    Every change to the object should be correctly returned using Tilemap.TilesJSON expression - "width", "height", "data"

    I can only guess, but I think it's doing that because it keep tile IDs in the object and only clamping their visibility when changing size of the Tilemap - You can observe that after: make it bigger, hit Fill, make it smaller, hit Fill, and make it bigger again. After last step you should not see anything, empty new spaces for tiles but instead there are already tiles present there.

    Edit: This makes making your own Level editor impossible. Because what you see on the screen is very different from what you will save in file :/

    Edit2: Also Tilemap.AsJSON expression behaves same way. When you fill entire Tilemap with Tiles and then make Tilemap smaller both .AsJSON and .TilesJSON will remember the tiles placed outside of the "visible tilemap size". Which make files bigger and filled with stuff you will never need or see after loading a json file from HDD.

    Operating System and Service Pack

    Win 8.1 64

    Construct 2 Version ID

    R207

  • shinkan

    That depends entirely on texture size you have for each frame.

    Each frame on spritesheet have 1px border around to prevent pixel bleeding.

    Each frame of animation also should have 1px empty border around for antialiasing.

    So when you have 5 frames animation and each frame is 64x64 then after exporting you will get a 256x256 file with a lot of empty space.

    But if you make frames 62x62 then after export you will get 2 files: one 128x128 with 4 frames and one 62x62 with 5th frame.

    And if you want your sprite to have nice and smooth edges, you need to add 1px empty border around your sprite. Which will make your actual texture 60x60 (while frame is 62x62)

    If you learn how to use it properly then C2 actually is quite good with making the sprite sheets out of the textures on export. Just need to remember about some things while making your textures.

    Like this green things on your first image. If they were 254x126 and be only 10 of them then you could fit 8 frames on one 512x512 and remaining 2 frames on 256x256 - no space wasted.

    That's how C2 works. And all you can do is to accept it

    64size.capx

    62size.capx

  • "animation can be just one frame too big and take up an entire sheet,"

    This should not happen. If you have a sprite with 5 animations. Each frame is 126x126 px. Then it will make two images after export - 1 sprite sheet 256x256 with 4 frames and 1 image 126x126 with last 5th frame.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Just two words to add. I asked about that long time ago, and for some objects it was made. First for the sine behavior and then after many posts to the Fade behavior...

    If there is a parameter in the plugin/behavior you can change then you should be able to do the same in events. For every single plugin/behavior.

    Simple example: Drag&Drop. What if you want to change/limit the axes movement on the fly? Well you can't.

    You can't make event "on something" -> set sprite Drag&Drop to Horizontal only.

    You can't for some reason add another Drag&Drop behavior.

    You can't spawn/create object instance A with horizontal and instance B with vertical.

    You can create two different objects with different behavior parameters - this pointlessly multiplies drag&drop objects * 2

    You can create two instances of same object with different parameters settings - but then good look with keeping track what the hell is going on in events.

    And that's the only one behavior/plugin to show example.

    Because of that simple but very annoying things it's simply better to make your own d&d in events. But same time this denies the point of the behaviors. Instead of using and setting something what is ready to go in few seconds you are reinventing the wheel by creating entire behavior in events just to be able to set one thing.

    If you really want you can modify the behavior to suit your needs, but then it creates two more issues.

    1. You should not modify original plug/beh because at some point someone might do some optimization or bug fixing and your changes will disappear

    2. You can duplicate it, but then you need to keep track of the original plug/beh on every release just to see if nothing has changed. And you are ending up with two almost identical plugins that needlessly makes a mess in plug/beh list.

    EDIT: And like we heard a lot in the past. Saying that something may "confuse beginners" do not really apply here or anywhere else. 90% of events are confusing for new users by design.

  • As a workaround you can add a Dictionary object to the container and use it to store variables for that "group" of objects.... but you will need quite few pointless events to make that work.

    and yeah, working with multiple objects (especially with different types of objects) is quite bad in C2.... Lovely Huds and UIs made of many different kind of objects needs not so lovely but idiotic funny and long list of events that you can lost yourself in.

    Edit: and not being able to call objects by their name makes everything even more "not cool".

  • Bump. Ashley

    also, I just start making my level editor and noticed that there is no way to return the tile state from tilemap as expression

    Edited

  • Why do you ask this here? This is not a ludei support forum.

  • Yeah noticed that too in last stable and beta, It is indeed very annoying if you have to "fix" them manually on every single event sheet every time you open the project.

  • > imaffett IntelRobert

    >

    > Any news about expansion files? There was some news long time ago and it all went dark since then.

    >

    We have a plugin available, but there are some issues in Cordova builds I'm hoping to resolve soon. There also needs to be a Construct plugin for it too then.

    That's not perfect but still very good news, thank you

  • "~1000 small, cropped sprite frames" i think that can be an issue here, cause preview do not make any spreadsheeting or whatever, so the engine needs to transfer all of that to the browser (or other platform), but it's just my guess I can be wrong.

  • Tokinsom could you describe your project a bit? how many sounds, images etc you have?

  • imaffett IntelRobert

    Any news about expansion files? There was some news long time ago and it all went dark since then.

shinkan's avatar

shinkan

Early Adopter

Member since 21 Nov, 2008

Twitter
shinkan has 7 followers

Connect with shinkan

Trophy Case

  • 16-Year Club
  • x5
    Coach One of your tutorials has over 1,000 readers
  • Educator One of your tutorials has over 10,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • Enduring Visitor Visited Construct.net 90 days in a row
  • Unrelenting Visitor Visited Construct.net 180 days in a row
  • Continuous Visitor Visited Construct.net 365 days in a row
  • RTFM Read the fabulous manual
  • Email Verified

Progress

25/44
How to earn trophies