dop2000's Forum Posts

  • Just remove the quotes:

    Set position to (BlockMoveable(21).BBoxLeft-2, .....

    As for the second part (int(selectedObject & ".BBoxTop")), this will not work. You can't refer to objects in C2 by their string name. Same applies to expressions.

    It's hard to tell what are you trying to do from the screenshot. If multiple objects/sprites can be selected, then one possible solution would be to add all such objects to a family. Use SelectedObject variable to store UID of the selected instance.

    Then do this:

    MyFamily -> Pick by unique ID = SelectedObject

    .........HighlightBox Set position to (BlockMoveable(21).BBoxLeft-2, MyFamily.BBoxTop-2)

  • max2612 It's on the properties panel:

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Two ways to do this:

    1. Use System->Set Time Scale=0 for the object with Timer. This will stop everything for this object.

    2. Save timer remaining time in a variable (I believe it's object.Timer.Duration-object.Timer.TotalTime)

    Then stop the timer. After player answered the question, start the timer again for the remaining time.

  • NeronSparda

    Mayfly

    Here are my thoughts -

    I think Bullet behavior would be a poor choice for a billiards game, it's very inaccurate. Physics may work a little better as you can set "Collision mask=circle" for balls, but I'm still not sure.

    If you want precision, you will need to calculate reflection angles and collision points in advance. Collision points too because a fast moving ball can travel long distances in one tick and if you rely on C2 collision detection, it will also be very inaccurate.

    You can also try these plugins:

    https://c2rexplugins.weebly.com/rex_light.html

    plugin-jcw-trace-raycast_t172320

  • Are you moving the sprite with Bullet behavior?

    If yes, disable "Set angle" in Bullet settings.

    Then use Bullet->Set angle of motion -> Angle (sprite.x, sprite.y, destination.x, destination.y)

  • Darxoon

    Say you have Enemy sprite with instance variable Health.

    And you want to count all enemies with full health and display this number in MyText.

    Add event

    Enemy -> Compare instance variable Health=100 -> MyText set text to ("Enemies with 100% health:" & Enemy.PickedCount)

  • Local Storage has nothing to do with layers or layouts.

    It's just a method of storing data. What data you store and when in the game you retrieve it - it's up to you.

  • Well, if you want the bullet to immediately change angle, you can remove the alnglelerp part.

    Simply set angle to angle(Self.X, Self.Y, Target.X, Target.Y)

    anglelerp was to make the trajectory smoother.

  • Try this:

    Every tick -> BulletSprite set Angle to anglelerp(Self.Angle, angle(Self.X, Self.Y, Target.X, Target.Y), dt*4)

    In Bullet behavior set "Set angle=Yes"

  • What you probably looking for is Else condition.

    If condition A -> action A

    else -> action B

    You can also use other conditions after Else:

    If condition A -> action A

    else if condition B -> action B

    else if condition C -> action C

    else -> action D

    "Else" can't be used with triggered events like "On created" event on your screenshot.

    Triggered events have a little green arrow and usually start with "On.."

    You can see the list of all expression in the expression editor, there is a semi-transparent window with all objects in your project. If you click System for example, you'll find all system expressions.

  • I'm guessing you want to select rotation direction randomly?

    Use choose(0,1) to "flip a coin".

    if choose(0,1)=1 then rotate clockwise

    else rotate counterclockwise

    Or you can use choose() expression in a formula: Rotate (choose(-1,1)*degrees)

  • No worries!

  • Sorry, I had to change pretty much everything:

    https://www.dropbox.com/s/g4gnllwg7fpg9 ... .capx?dl=0

  • If I understand you correctly, you can try this: