Rhindon's Forum Posts

  • Good day!

    PRIMARY ISSUE: An instance of an object is not reacting to player input specifically after the player interacts with the other instance of the same object.

    Controls:

    Arrow Keys: Move the MrSpy_Move (invisible during gameplay) object.

    On-screen arrow keys: Move the MrSpy_Move object and make the MrSpy_Img rotate accordingly for the angle of movement.

    On-screen green button: Initiate theft of document from Guard when conditions are met.

    DETAILS: The character object, Guard_Steal (hereafter just "Guard") has a meter that appears over its head when the player character, Mr Spy comes within range and has line-of-sight (LOS) to the Guard and the Guard does not have LOS to Mr Spy. Using the on-screen green button, the player presses and holds the button to attempt to "steal" a document the Guard is holding. The meter indicates how long until that process is deemed complete. Any interruption - releasing the button, the Guard seeing Mr Spy, or Mr Spy losing line-of-sight to that Guard - will stop the process and the meter will go down.

    PROBLEM: Go figure, I had this working perfectly before...

    When you load the .c3p file, you'll see two instances of the Guard object. They should both be facing to the right and you can see the faint cone for those Guard's LOS.

    You can try to "steal" the doc from either Guard right away. To do so, make sure you see small green circles spawning around the Guards and shrinking smaller. That will tell you that you are in range and can attempt to steal. If the circles are red, that means you're in range but either you are in the Guard's LOS or you do not have LOS to the Guard, itself.

    The Guard on the left should initially react properly if you attempt to steal from him first. However, once you attempt to steal from the Guard on the right and then go back to the Guard on the left, the Guard on the left will not show any progression of theft. You can be completely out of LOS from the Guard, have the Guard in LOS by Mr Spy, and the green button is pressed down, but the Guard will not show its meter advancing. I've confirmed this through Debug Layout, as well.

    Both Guards start out essentially the same, so there's no reason they should be reacting differently - especially when the Guard on the left initially works the way it should.

    More info: Here is screenshot of the event sheet and a copy of the .c3p file.

    https://drive.google.com/file/d/1TsrqD13V4OapepCLXoKKIYCb07FN5Oir/view?usp=sharing

    Your insight would be much appreciated. Thank you!

    I'm going to go ahead and RE-post this in the C3-How Do I forum proper.

    Ashley, if you want to delete/lock this post, all good.

    OH!! Ooops. I honestly didn't see that I put this in C2. My mistake.

    As to Ashley investigating - naw, I know he won't look into it deeply without an official bug report. I was just thinking if there were any other suggestions for me to look at prior to a report. Either way, no worries.

    dop2000 Thank you for checking.

    (First, I'm confused as to why I should have posted this in the C3 forum. Maybe I'm missing something? Since this is an issue I needed help with, that's why I posted it here. Could you clarify, please?)

    Based on your debug, I guess the next thing to do is do a stand-alone test and submit this to the bug report on GitHub.

    Ashley If you have a moment, do you have any other suggestions or input before I post this to the bug report?

    Good day!

    PRIMARY ISSUE: An instance of an object is not reacting to player input specifically after the player interacts with the other instance of the same object.

    Controls:

    Arrow Keys: Move the MrSpy_Move (invisible during gameplay) object.

    On-screen arrow keys: Move the MrSpy_Move object and make the MrSpy_Img rotate accordingly for the angle of movement.

    On-screen green button: Initiate theft of document from Guard when conditions are met.

    DETAILS: The character object, Guard_Steal (hereafter just "Guard") has a meter that appears over its head when the player character, Mr Spy comes within range and has line-of-sight (LOS) to the Guard and the Guard does not have LOS to Mr Spy. Using the on-screen green button, the player presses and holds the button to attempt to "steal" a document the Guard is holding. The meter indicates how long until that process is deemed complete. Any interruption - releasing the button, the Guard seeing Mr Spy, or Mr Spy losing line-of-sight to that Guard - will stop the process and the meter will go down.

    PROBLEM: Go figure, I had this working perfectly before...

    When you load the .c3p file, you'll see two instances of the Guard object. They should both be facing to the right and you can see the faint cone for those Guard's LOS.

    You can try to "steal" the doc from either Guard right away. To do so, make sure you see small green circles spawning around the Guards and shrinking smaller. That will tell you that you are in range and can attempt to steal. If the circles are red, that means you're in range but either you are in the Guard's LOS or you do not have LOS to the Guard, itself.

    The Guard on the left should initially react properly if you attempt to steal from him first. However, once you attempt to steal from the Guard on the right and then go back to the Guard on the left, the Guard on the left will not show any progression of theft. You can be completely out of LOS from the Guard, have the Guard in LOS by Mr Spy, and the green button is pressed down, but the Guard will not show its meter advancing. I've confirmed this through Debug Layout, as well.

    Both Guards start out essentially the same, so there's no reason they should be reacting differently - especially when the Guard on the left initially works the way it should.

    More info: Here is another screenshot of the event sheet and a copy of the .c3p file.

    https://drive.google.com/file/d/1TsrqD13V4OapepCLXoKKIYCb07FN5Oir/view?usp=sharing

    Your insight would be much appreciated. Thank you!

  • Sure, I'll have a look.

    My apologies for the delay. I didn't get an email (or I missed it) saying that you had replied again.

    I went ahead and opted for a non-analog type of button scheme for this particular mini-game of mine. I decided it would simply work better overall that way.

    But I very much appreciate your willingness to help - that always means a lot to me. Thank you!

    I have about 3 or 4 different game modes for my game planned, so I might opt for analog-style controls for one of them. If I have further troubles, I will definitely contact you.

  • If doesn't work, share your c3p

    Yup...didn't work.

    Just to recap what I'm trying to do.

    1. Player touches Button_Alog_Stick (or "Stick").

    2. Stick is positioned to the player touch coordinates up to a maximum distance of 50 pixels from the Button_Alog_Base object.

    3. If the player's touch coordinates extend well past the Stick so that the touch isn't even within image boundaries of the Stick object, the Stick will still position accordingly from the Base to the touch and the respective angle. (So, basically, it's just a lerp detail which you helped with using min().)

    4. Once the touch is released, with or without the touch actually in contact with the Stick, the Stick will revert back to its neutral position (this feature is not yet added).

    Here's the link to my c3p file via my Google Drive: https://drive.google.com/file/d/1z7H66c9zPFrt6Mu31VreHfJ3mwVW7PiT/view?usp=sharing

  • Below is my current setup for a mobile touch screen analog (angle only) control stick.

    The idea is that the Button_Alog_Stick (hereafter just "Stick") will track the player's touch movement up to a maximum of 50 pixels from its base starting position. However, it will still move around in terms of its angled position as the player's touch moves around and even if the touch extends past the Stick's 50-pixel range.

    So long as the player initiates the touch on the Stick image and maintains that touch, even if the touch is no longer actually touching the Stick image, it recognizes the touch is in effect and the Stick will track the angle accordingly.

    The problem is that I cannot get this to work. I've reviewed the Touch object specs and apparently Has Nth Touch and On Nth Touch End are for when two or more touches are active. I simply want to isolate when the Control Stick is touched, maintain that touch regardless if the Stick is still being touched or not, and then take certain action when that Nth touch ends. Instead, the Stick acts like it's not being touched at all.

    Any suggestions/resolutions I could try?

  • And oosyrag, thank you, too for your effort to help me narrow down the problem!

  • Well, HAWT DAWG, AllanR, you are a life-saver! That did the trick! Thank you so much!

  • Nope. Not using Scale Outer. Just Letterbox Scale.

    But the Layer reference for Touch wasn't something I was aware you could do! I'll give that a try...

  • To answer your question, no I haven't been using the ViewportTop/Left expressions. My mind is drawing a blank - how would you employ them according to what you're thinking?

    So this is the only event line I'm using so far. As mentioned, I've tried using Touch.X and Touch.AbsoluteX (the difference being the distance the Button_Alog_Stick object is positioned away from the Touch coordinate.

    Here is the layout with the Button_Alog_Stick object highlighted.

    And finally, the Buttons_Steal layer highlighted.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It's definitely centered. In this issue, the whole object, when positioned per the current setup, the object isn't within the Touch vicinity at all. I'll get a video shot later today...

  • I'm trying to implement an analog (360° angle only...not "tilt") control for an on-screen touch controller for my game.

    The control "button" (just a flat circle) sits to the left-side of the screen on a 0x0 parallax layer.

    When I use the Touch object condition on the control button, I tell it to position the control button to the Touch X/Y coordinates.

    However, this results in the control button being positioned offset from where I actually touched. So, I tried Touch.AbsoluteX/Y...same difference aside from the control button being positioned differently than simply Touch.X/Y. Meaning...it's still offset from where I actually touched.

    I have a feeling that the parallax of the layer the control button is on has something to do with it but I cannot figure out a solution. Can someone help me understand why this is happening, please?

  • OH MY GOODNESS. I figured it out. I was setting the TargetY variable to Self.StarX and not Self.StartY.

    PROBLEM SOLVED.