R0J0hound's Forum Posts

  • They aren’t available. You can see the runtime portions of them with the browser console when previewing, but the edittime part is obfuscated with the rest of the editor.

  • Updated again:

    * fixed the coloring issue.

    * let you use "white" or "black" as a color in addition to "r,g,b".

    * added an option to change the background to be darker when using lighter colors.

    * now generates the "spacing data json" that C3 uses. So in c3 no events are needed to setup the spacing. joelmayer

    * some general event cleanups.

  • Here’s one example of a way to do it. It’s a bit old so it should be possible to do it in a cleaner way now.

    construct.net/en/forum/construct-3/your-construct-creations-9/example-mesh-distort-sphere-161470

    The gist is you make the meshes by bending distort meshes around. Worst case you use a sprite per face. So you’d have a list of vertex positions that you’d rotate by multiplying by a 3x3 rotation matrix or something like that.

    Other more recent examples of distort mesh 3D. But they are focusing on some other aspects.

    construct.net/en/forum/construct-3/your-construct-creations-9/3d-raycasting-obj-loader-test-167475

    construct.net/en/forum/construct-3/how-do-i-8/create-3d-dice-rotation-167723

  • totoe

    Unfortunately in the browser you can only check if a font is installed. You can’t get a list of all the installed fonts.

    Most online editors just have a list of fonts that they check to see are installed. Perhaps I could do something like that at some point.

  • joelmayer

    I need to look around at the asjson format at bit more. It’s no problem generating it, but I don’t need all the data such as position and size.

    Currently you still need to fiddle with the grid sizes and offsets so that all the characters fit in their own boxes. A future idea would be to automatically find those values for a best fit and smaller overall image size. A side effect is it would allow larger textures too without as many workarounds as I have now.

  • ashconstruct

    Download again. It now lets you change color.

    tarek2

    I added an option to remove the aliasing with an effect. Beyond that I’ll have to go beyond construct to have more rendering options. The text object will look blurry if you change the construct project setting from high quality to low quality. So I think construct renders text at a higher res and scales down.

  • Updated.

    * aliasing with threshold.

    * offset x and y instead of using the same value.

    * color

    * gui cleanup

    * gridlines to see if the characters fit in the bounds.

    * fix so characters are less likely to be clipped.

    * fix some math errors.

    Known bugs:

    FIXED: * color with threshold seems to be broken.

    * If the image size is bigger than 1024x512 things will break.

  • Here is a tool to help generate a Spritefont from any font:

    dropbox.com/s/zh299ngxv6lbfwq/spritefont_gen.capx

    Here is an example of using the generated spritefont:

    You setup the spritefont with the generated image, set the character width/height to the same as what you used in the tool, and finally use one event to set the individual character widths from the tool. Or in C3 you just set the spacing data.

    C2 example:

    dropbox.com/s/3iw0zrr0xh8skdi/spritefont_test.capx

    C3 examples:

    dropbox.com/s/3iw0zrr0xh8skdi/spritefont_test.capx

    dropbox.com/s/6xlkjo1blewshff/spritefont_test_arial.c3p

    known bugs:

    * You need to make sure all the letters fit onscreen or it will break.

    -cheers

  • That’s got me a few times. With array: for each x it doesn’t set loopindex, you have to use array.curX

  • You just have to use two numbers to represent a vector. And do math per component.

    So instead of something like c=a+b you’d do:

    cx=ax+bx

    cy=ay+cy

    And instead of normalize(a) it would be:

    mag=sqrt(ax*ax+ay*ay)

    ax = ax/mag

    ay = ay/mag

    And stuff like that. So you may need more variables to to temporarily store the steps of the calculations.

  • Sure, I have discord, reddog. I’ll probably delete this post after you message me though.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Ah, you must have edited your post, I thought you posted a link.

    You can think of the rope as a purely visual effect and just move the hook up and down by other means.

    Here's a stripped down version without the collision detection and other extras. It just puts a rope between two sprites with drag and drop. Also added line sprites between the points for added visual. I put settings variables at the top so you can adjust the distance between points, gravity, and fluid friction.

    dropbox.com/s/z8u9sper7u3b6ya/rope.capx

  • Alternatively to using the physics behavior you can do some event based physics. Gives endless things you can tweak to give better results at times.

    You can find more info about this method online by looking up "verlet rope physics".

    Anyways, this roughly follows that with additional tweaks.

    The collision detection was probably the most math. I kind of liked the effect of the chain pulling the player, but you can tweak the mass in event 2 to make the player less or more affected.

    dropbox.com/s/p9fdgbpk59dvc4h/verlet_4.capx

  • If the motion is done with behaviors the collision response when moving along walls has never been great. There hasn’t been much traction in getting it fixed either.

    Smoother wall sliding can be done with events. A fair amount of ideas here:

    construct.net/en/forum/construct-2/how-do-i-18/8-direction-behavior-slide-95148

    When you use two behaviors to move an object at once their velocities are combined. Probably the simplest solution would be to divide the speeds by sqrt(2) when you’re moving and moving sideways to counteract the speed up. Or you can cap the speed by measuring the speed with

    Speed= Distance(0,0, sprite.behavior1.velocityX+sprite.behavior2.velocityX, sprite.behavior1.velocityY+sprite.behavior2.velocityY)

    Then when that’s more than a maxSpeed you’d multiply the speeds of both behaviors by:

    MaxSpeed/speed.

    If a behavior doesn’t have velocityX/y the usually have speed and angleOfMotion. You can calculate xy velocity from that

    Vx=speed*cos(angle)

    Vy=speed*sin(angle)

  • Hmm... I think 3D questions are confusing in general because there are lots of ways to describe things and often the questions aren’t clear.

    Unless I’m understanding wrong you are just looking for a way to rotate 3D objects on other axises? The answer you got so far looks like the start of a way to position the object at an angle from the camera, which is useful but doesn’t change the objects actual rotation.

    For 3D objects you can only rotate on the z-axis, (or on the xy plane). Construct doesn’t provide a way to rotate them any other way.

    The 3D camera can be rotated any way, but not directly. Basically the lookAt action can be used to get any rotation.

    There is a 3D third party plugin by mikal (I don’t have a link but it’s updated regularly) that lets you rotate 3D meshes on other axises too. Hopefully it has a lookAt action to allow the objects to face the camera.

    For a free solution you can make up 3D meshes with sprites using distort meshes. The orientation (or 3D rotation) of the object is a 3x3 matrix which can be represented by a 3x3 array or 9 variables. Anyways, the maths bit is needing to use matrix multiplication to apply rotation.

    RotatedVector = vector x orientation.

    Of course we can only do math with numbers, not vectors and matrices so you’ll have to expand the equations per vector component.

    Search the forum for recent posts by me for some examples of this.