Juryiel's Forum Posts

  • Read my reply again. When you use int() it will truncate to an integer and integers don't have decimals. What you want is a float

    Use float() instead, so round(float(value)*10)/10 will give you one decimal place, replace the two 10s with 100s for 2 decimal places, etc

  • You can use multiple conditions, so in one event do

    Score > 300

    Score <=500

    That gives 1 star. Etc. Since you won't have a score of both <= 500 AND > 500, you also don't need those else statements.

  • I know this will sound like a silly question but, have you tried NOT rounding the number? You're probably using int() to convert from text or something.

    If you want a specific number of decimal places rather than all of them (which is a lot) the formula is round(Num*N)/N, where N is 1 followed by a number of zeroes equal to the numberof decimal places you want to keep (1 for no decimal places, 10 for 1 decimal place, 100 for 2 decimal places, etc)

  • Try this, it's fairly general so it should work:

    Assuming you're using the platform behavior, put every single object that could be a platform in a family called Platforms

    Every Tick --> Set Player Angle to 0
          Player is Overlapping Platforms at X=0, Y= 5
          Platforms Pick Nearest, Player.X, Player.Y   --> Set Player Angle to Platforms.Angle[/code:mjxwhive]
    
    You need to make sure that you don't rotate platforms more than 90 degrees or else bad things will happen
  • If you describe how you have your slopes set up someone can help, but the solution will depend on that. E.g. off the top of my head, if you are careful to set up all your slopes the same way by taking a horizontal rectangle and rotating it clockwise, then you would simply need to check if the horse overlaps that rectangle and rotated it by the same amount. But if you're doing something else that solution won't work.

  • If there are many layouts I would probably just create one global var with a unique FromLayoutID for each layout, then process that when you load the new layout

  • Decided to read C2 docs and learn some XPath

    According to C2 docs: In a loop in C2 XPath relative paths are relative to the current loop node.

    And according to XPath docs: XML.StringValue("name()") will return node names

  • I'm trying to loop through an XML object's nodes to do stuff for each node, but I'm not sure how to reference the current node, read its label, and read its data. Any help would be appreciated. I don't see anything in the expressions or actions.

  • If you upload your best attempt (using my original example) to figure out how split up the groups of overlapping objects so that each group only spawns one other sprite, I can take a look at it and help in getting it to work

  • Going to go ahead and bump this and request a frame-rate dependent mode for the various behaviors that move objects. Collisions in the game I'm working on fail at around 15 fps, and while I don't intend for people to play at that FPS, I don't want this to be a viable mechanic for cheating since I want to include things like rankings. My game is unplayable at 15 fps anyway since it relies on crisp control.

    A setting to allow us to set the minimum frame rate to something else (currently it's 10 fps according to the docs) would be great and I imagine simple.

  • Have a variable called WireNum, set that to 0. When the player clicks on a wire, check this:

    tokenat(CString, WireNum, ":") = WireVar (where WireVar is the wire "R", "G", etc)

    Then add 1 to WireNum.

    Remember to re-set WireNum to 0 when you start a new wire puzzle

  • > The key is wherever variable you want to store it to, you can name that whatever you want, as long as you use that same key to load the score. The value is the actual score.

    Ok thats good to know. so if i want my key to be highscore, and the value to be what is in ScoreText. Would the proper way of storing it be

    sub event under my

    if x passes y add 1 to score event.

    - webstorage : local key exists >> Action >> webstorage Set local key "highscore" to ScoreText.Text

    Score text is what actually appears on the screen as you are playing and counts

    Yes, but I wouldn't check if the local key exists, you can just write to that key whether it exists or not, it will create it. If you check if the key exists, and the key doesn't exist, then you won't write anything, and therefore won't create it (unless you create it in another action)

  • Uh, as far as I'm aware C++ is compiled to native code (unless you use an interpreter for some reason) which is processor instructions, and is no different from C in that regard, as opposed to being the language the operating system was coded in, which I don't think is relevant. Those languages become compiled to the instruction set of the processor on the system. Javascript is interpreted by some other program at run-time and is far slower as a result. I think with modern engines there's some sort of just-in-time compilation for javascript which means that when you run the program it is compiled to machine code at the time you run it, or part of the program is anyway.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • The key is wherever variable you want to store it to, you can name that whatever you want, as long as you use that same key to load the score. The value is the actual score.

  • Yeah I don't know, the sense I get is that C2 is basically still a beta-stage product for many of the platforms it supports because it has a slew of dependencies most of which are still heavily changing and in flux, and just downright incomplete. You can't really trust features to work consistently on different browsers or machines, especially not just out of the box, whether it's performance or just functionality. I still think the product is more than worth the price for what it does, but it does set too high of an expectation in its marketing.