TELLES0808's Forum Posts

  • This is one of the main issues of Construct 2, and I hope it will be solved with better support to IIDs and UIDs, as said here: http://www.scirra.com/forum/suggestion-show-i-uids-for-selected-objects_topic55109_post344056.html#344056

    So, you'll ran in two type of problems, and all the answers are "bad" in my personal opinion.

    Or you create the enemies and keep tracking them with UID or IID, so, you can manipulate their health as well, but when you destroy one of them, you'll modify the index and flush their UIDs or IIDs.

    The second method is keep them invisible after their health goes 0. This will improve the number of objects on the canvas, but will not reset the UIDs and IIDs.

    I personally did a workaround for it by this way:

    When the player shot on an enemy and hit him, set the to drop the health of the nearest enemy of that projectile. It's working nice, but when two enemies are hit by the projectile, it only drop the health of the nearest.

    So, I'll improve the code to check the overlapping enemies, so, if the enemy is overlapped, drop his health.

    This is working because one thing Ashley said on his Manual here: scirra.com/tutorials/37/beginners-guide-to-construct-2/page-6

    So, if you create a new enemy, the engine will treat this enemy as a unique object (UID and IID), but you can know where it is and manipulate him by making a conditional meeting your necessity, so, when the bullet hit the monster, that specific monster, inside that conditional, will lose health or die. ^^

    A long and terrible explanation, but I hope it's understandably!

    You can do a math.

    How to do:

    create instance radians = 0;

    create instance degrees= 0;

    create instance radius = 100; // random radius

    initial.x = 50; // random primary x position

    initial.y = 50; // random primary y position

    Every Thick

    degrees = degrees + 5; // each time degrees is increased by 5 degrees

    radians = degrees * Math.PI/ 180;

    sprite.y = initial.y + Math.sin(radians) * radius // because sin A = y/r

    sprite.x = initial.x + Math.cos(radians) * radius // because cos A = x/r

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • lerp is a function to make easy for you search and walk a path between two points.

    if you want a smoothly movement, you'll need acceleration and deceleration, or it will jump between pixels with the instantly maximum speed.

    Another thing, if you set your project to use pixel rounding, it will keep the old position then jump one pixel when the object reach this pixel distance, so, it can show an animation not much smoothly.

    If it's your case, just use linear Sampling.

  • I don't really use C2, but in CC there was an option for 'loop to' ie, when it reaches the end, loop to a certain spot. So if frames 1-3 are the bow being pulled back, then 4-6 are the holding animation, set it to loop back to 4. I use this for my jump animations, in particular, so that they player jumps, but then 'holds' at a certain point.

    If C2 does not have a 'loop to' option, then you could use events like if animation frame reaches x, go to wherever.

    My lack of C2 experience might not work, but I hope it does. Unless it's worlds different   <img src="smileys/smiley22.gif" border="0" align="middle" />

    We know, you can reach everything when using events. But a beginner don't.

    Yeah like it was in good old Flash. Not a bad idea at all.

    Flag some key frames in the animations give them a label etc.

    But to be honest it's already here.

    make three animations

    1. start jumping

    2. jump idle (looping)

    3. land

    and you can easily manipulate between them

    if "start jumping" finish play "jump idle", when "jump idle" finish play "land"

    would be the same like one animation frames

    0-10 - start jump

    11-40 - jump idle (marked as loop)

    41-51 - land

    And besides you could do this with one variable. Set frames to variable and you could do anything with the numbers.

    right?

    Edit: One thing i'm really missing with animations is ability to reverse current animation by events.

    Simple example

    Key "space" is down -> play animation "dance baby"

    Key "space" released -> revers animation

    It's what is on the sandBOX. I'm talking about another thing very different with other reasons instead eventing the transitions. Also, if you have 100kb each frame of your character, you wouldn't repeat animation frames to increase your game size, when you can just create loopings using the animation editor, without the necessity of a new repeated frame..

    You can make exactly what this request is talking about but using events, just make your animation frame by frame in event mode, something like this: every tick: set frame position to frame.position + 1;

    And handle the situations where it loop by looping it, and the transitional animations can be handled by setting limit of the frame position number. That's it, but a beginner who have more skills with drawing will stuck when handling the animations with events.

    So, it's not much intuitive for a beginner think about the pre-jump animation and his involvements with other situations. To be honest, it can frustrate many people who don't care to come here and talk, because they may think "they are not able to use the tool or they are too lazy or they fear of bias".

    Who want make these transitions and learn other features can download tons of samples, but they all still complex for a simple thing improved in the past on other tools such as Flash, IGM, EGM.. did you catches the intuit of this topic? it's not about the possibilities, nor how to do, but a topic to suggest to recover this old feature.

  • Hello Ashley and folks from Scirra xD

    I would like to know if is possible to have a very small addition to the animation editor?

    It's about to set looping for some sprites instead of the whole animation, for example. I imagined something like a small check box, where you can set what sprite will be looping and what will run once.

    This is used on IGM and EGM and by Flash games (Castle Crashers did it, awesome ^^).

    This feature improve the game by cutting of unnecessary repeated animations with little differences, and give you a huge hand when working with animations like jump, for example, where you need transition between the player being jumping and jumping in fact, the same for falling.

    So, on IGM, for example, you can setup a simple animation with all the frames necessary for your player being jump, jump in fact and land. You can uncheck the being jump sprites and the landing sprites and them your player will show them only once, and will loop only the jumping in fact animation, when the software run the jumping animation, it will hit the being jump sprites and play them once, when you set to finish the animation, it will play the lasts unchecked frames once.

    Another situations. Bending and crawling, it's a common pose for Mario type of game. Shooting arrows, you can setup the "arm the bow" once, and put the bow back once too.

    Maybe for the future, but beginners on the engine will feel better with this feature instead of doing 10 events to handle numerous situations where a transitional animation can trigger with another one, instead of checking if a main animation finished..

  • I'm doing some tests with the scaling features.

    So, you can notice a weird issue with the position detecting when scaling the game.

    How to reproduce

    Prepare the .capx

    • Start a new project;
    • Make a empty sprite object;
    • Make one boolean instance;
    • Import the mouse input;
    • Write the follow conditionals:

    -- When mouse.Y is up the sprite.Y -> Boolean is "true";

    -- When mouse.Y is down the sprite.Y -> Boolean is "false"

    • Make a text on the canvas to show the Boolean and update it every tick (for example, "Boolean: " & sprite.boolean_instance_here);
    • Preview, check, your code is showing true and false right;

    Reproduce the bug:

    • Configure the canvas to scale for any size;
    • Check the instance, it only detect the old sprite position instead of detecting the real sprite.Y on your screen;

    It broken my source code, because I can't check complex events when using touch and mouse, checking their position in relation of a sprite, for example.

    A sample working without zoom: dl.dropbox.com/u/47035927/00%20-%20EQUILIBRIUM/index.html

    And the same, but scaled: dl.dropbox.com/u/47035927/temp/BUG/index.html

    Also, I would like know if anything else is necessary to improve my reports? It's going well or bad?

    Thanks.

  • You can detect the box X and Y by checking if the mouse is over the object, and releasing the mouse button and setting to the object be the same of X and Y of that box. Later, you can also check if the box is empty or filled, etc.

  • You'll need to setup each controller inputs for a invisible player object, all the rest are sprite animations over it. Pick the nearest sprites of the player to change his animations...

    I did a little game using this concept, with mouse and keyboard.

  • jhontona, you can feel free to join the latin Brazillian afiliate communitie here: igmbrasil.com/forum

    There you will can talk spanish as well.

  • This is a bug happening on Windows 7, R99.

    Auto scrolling the window

    How to reproduce:

    • Start any project with many resources to make the lateral scroll bar happen inside the resource window, for example;
    • Select a bottom resource at that windows and drag it far around, without releasing, to make the scroll bar go to the top, then, leave the resource on any place of your canvas.
    • Your scroll bar will follow the mouse, without any click or anything else, it's detecting the mouse position and scrolling down/up all the time, looping and consuming CPU resource.
    • The only workaround is close C2 and re-open it.
  • Hello folks!

    I would like to suggest another little and pertinent improvement to C2. This is about the fade behavior. You can't handle the time after setting it on the layout, via events.

    I did a Shared_Event_Sheet where I placed all the things, but I did two tile objects with one black pixel, creating them on the layout at the start and the end, to make smooths transitions.

    I was wondering just set the fade in and the fade out time via code and clear one of these tile objects, because each one have different configurations instead of setting the configurations via events.

  • TELLES0808

    Can you please elaborate on it?

    Just make it Pin as Rope, look inside the pin chain style to see the behavior in action.

    You can also work with the conditionals to unpin him when necessary and make him walk around, etc.

    I did it by this way and on another way.

    The second way is very much complex, but give you flawless results. You'll need to work with conditionals and make a very smart AI.

    Download the sandbox on my signature to see how I implemented the detectors for various situations. After it, I did an Artificial Intelligence, where the NPC will detect if he is overlapping an area around the player, if not, detect the best path to reach the player, and the detectors are made to setup the animations necessary for various situations, like in a climb, edge, cave, underwater, etc.

    I think you can just make a circle and try improve the pin in chain style for your game. If you don't know how to setup him fall back to the ground, just unpin him, and the behavior will do the rest, them, pin again. Check left, right, and setup the right animation for each situation, also, check if the player is mirrored, and if the follower is on the left or right of the player, etc.

  • You can pin him in rope style.

  • This is just to maintain a registry

    and

    You don't have problems with your project.

    This is the procedure for the bug

    -Start a brand new project.

    -Create a tiled background.

    -Save the project in folder.

    -Close C2.

    -Open the project.

    -Create another texture.

    -Save it in CAPX file.

    -Save in folder but on new clean folder, not the first one, for example.

    Check the texture folder, it's missing the first texture and there is only the second, added while the software is running.

    It missed to import to the CAPX the pre existent textures and saved on the CAPX only the new texture added when you opened it.

    Close the project and try to open it again, it will give you an error, telling you it's missing a texture.

    Take care about new textures when working with projects in folder, if you save your job in CAPX after importing a new tile object, all the others will be missing on the CAPX and you can lose your project.

  • Ashley, finally I did a procedure for the bug!!!!

    Start a brand new project.

    Create a tiled background.

    Save the project in folder.

    Close C2.

    Open the project.

    Create another texture.

    Save it in CAPX file.

    Save in folder but on new clean folder, not the first one, for example.

    Check the texture folder, it's missing the first texture and there is only the second, added while the software is running.

    It missed to import to the CAPX the pre existent textures and saved on the CAPX only the new texture added when you opened it.

    Close the project and try to open it again, it will give you an error, telling you it's missing a texture.

    That's it, I was not going crazy =D