dop2000's Forum Posts

  • I think you need to use two objects - TextBox and List.

    In "TextBox On Text Changed" event you can refresh the list of items for the List. For example, if you keep these strings in an array, you need to clear the list, then loop through the array and check if

    lowercase(left(Array.At(loopindex), len(TextBox.text))) = lowercase(TextBox.text)

    If this expression is true, add this string to the list.

  • Preventing overlapping is not an easy task for objects moving with PathFinding. You can add units as obstacles for pathfinding, so that they will try to avoid each other. You will need to recalculate path often and it may not work very well if you have lots of units and narrow passages – they will get stuck, will try to find another path etc.

    Here is a very quick and dirty fix (see events 46-48), maybe you could improve it further:

    dropbox.com/s/t7pzh9tx2q2ep3j/tmp2.c3p

    Displaying the path is easy, just open the PathFinding demo project in C3.

  • WRS You need to switch Construct to English before making screenshots. Not many people here understand Russian :)

  • replace(Self.AnimationName, "_Bright", "")

    Or

    left(Self.AnimationName, len(Self.AnimationName)-7)

  • Start a different browser (where you are not logged into Dropbox) and try to open that link, you'll see if it's working. Spoiler alert - it's not :)

    You probably just have a mess with events. Try to organize your code better. Make sure that you don't have multiple conflicting events like "On start of layout" which are executed at the same time. Be careful with using "Reset global variables" action.. Learn how to debug - run the game in Debug mode to see what's going on. Use "Browser Log" and output important information (like variables values) in key events to see how they are changing etc. And I'm sure you'll be able to fix all these problems yourself.

  • Use Anchor behavior for UI objects.

    Usually you target one resolution (for example 1280x720) and one aspect ratio (in this case 16:9). You design the entire game for this resolution. On bigger screens everything will be automatically scaled up, on smaller screens - scaled down.

    To support different aspect ratios (for example 4:3), you need to use Anchor and make your backgrounds bigger. You might also need to make other adjustments with events, but this depends on the game.

  • Use Scale Outer, enable Unbounded scrolling on the layout, and make backgrounds about 20% bigger than the viewport size, tutorial:

    construct.net/en/tutorials/supporting-multiple-screen-sizes-77

    Demo:

    dropbox.com/s/vjyximq2059wbvt/ScaleOuter_demo.c3p

  • Well, simply don't reset lives variable when entering level 2.

  • There are several ways to do this, depends on the complexity of the game and your programming skills.

    1. You can do this with variables and layouts. Each location will be a separate layout and you can add an invisible object (sprite) LocationInfo with a bunch of instance variables, which will contain all the data required for this location. So, when player goes to a new location, on start of the layout you read variables from LocationInfo sprite and change music, display messages etc.

    2. You can store all the data in one of several text files, which can be in XML, JSON, CSV or your own format. When changing location, read the file for this location and load the data from it. Take a look at this post to see how it can be done with XML. Also, check out the tutorials section:

    construct.net/en/tutorials

    PS: Not all tutorials are good. This one demonstrates how text adventure games should not be made. Hard-coding everything in events is a bad practice and I don't recommend it.

  • 1st layout - why do you loop to array.height? I don't know your array structure, but it's usually array.width. Also, when you are loading multiple images into one sprite, you need to load them to different frames. Otherwise all sprite instances will have the same image. So you create a sprite, change its frame, and then load image.

    2nd layout - after you switch to another layout, "hm" sprite is no longer available. Even if you set it as Global, this layout doesn't know which sprite was tapped. So before changing layouts you need to save hm.Qname in a global variable and then on start of the second layout use that variable to request a file with AJAX.

    .

    You need to start using debugging tools. Run the game in Debug Mode, you will be able to see the array content, how many hm sprites are created, instance variables for these sprites etc.

    Also, use "Browser Log" to output debug messages. For example, after "AJAX request hm.Qname" add another action:

    Browser Log "Requesting filename: " & hm.Qname

    Then run the project, press F12, open Console and see what happens.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Check the origin point position in the progress bar sprite. If you want it to grow from left to right, than Origin image point needs to be set at X=0.

  • Your link still leads to the same old version of the project.

    The problem with your animations may be with the collision polygons. If polygons are different in different frames/animations, this can trigger events like "On fall" at the wrong time. It's recommended to have the same collision polygon in all frames, or use a separate sprite with Platform behavior.

  • ..................
    	Function call "CreateObjectByName" (parameter: "Zombie")
    
    
    On Function "CreateObjectByName" 
    	System create object by name Function.param(0) 
    

    You can also add all such objects to a family and use "System Pick last created Family" event, if you need to change some other properties of the created object.

  • Where did you see "loopindex" in my comment??

    Change all Touch.X with Touch.X("UI")

    Change all Touch.Y with Touch.Y("UI")

    Everywhere, in all formulas!