REVBENT You're sending a node reference as the signal argument while signal handler is expecting to get a position.
Instead of:

action1.emit(marked)

Try:

action1.emit(marked.position)
newzip.zip
9kB

THIS SHOULD BE WORKING.... not been a good look for me. ANYWAY I was following an online tutorial (roughly)... of what i thought i knew, and have been trying to learn/apply as much as i can before moving forward. I have tried everything i could to find my error and moved a lot around, but i put it back in the order that i believe it was in. FYI i played with visual scripting far more than i should have while learning logic, so i more or less now am trying to learn what i was doing visually with code. I think i understand the concepts but for some reason this has been an embarrassment.

@xyz thankyou, i updated that to how i should have had it.... really should have ran that file when i uploaded it.
GLAD TO SEE THE ZIP UPLOAD WORKED LOL

  • xyz replied to this.

    REVBENT i know this noob stuff is very annoying to answer. i value the time everyone takes to build the community via forums, and i understand people aren't coming here to teach people.... so genuinely, THANKS

    No problem. We have all been noobs at one point, and I try to help people who are struggling like I was back then. It's also fun diagnosing and finding out the reason for the problems. Sometimes you think it's simple, but it's not, and sometimes you think there's a bug with the engine but it's just a typo.

    xyz Change node type of POINTS to Node2D.

    yep. I came to the same conclusion.

    See, Node doesn't have a transform, so it's children don't inherit the transform from player, so they end up at position 0 0.
    Changing Node POINTS to a Node2D solves the issue.



    @xyz YOU SIR, (perhaps presumptuous) ARE THE MAN!!!!! GENUINELY AWESOME!!!! can you help me understand why the node/node2d mattered here or more so when to use one vs the other. i will reread the documentation to understand it more thoroughly, but if there is a simple way to remember.... i'm all ears. Been having a really bad day.... so THIS was much needed.

      @Jesusemora as well... you responded while i was typing. and you answered the questions i had posted above.... with pictures... very impressive. This site has been awesome!

      REVBENT As @Jesusemora already stated, a plain Node doesn't have any transformation properties so when it's inserted into the scene tree hierarchy, it will effectively reset any cumulative positioning/rotation inherited by its ancestors, so the coordinate space for its children will "start anew" from global coordinate space. In contrast to that, a Node2D has normal transformation properties and will inherit and pass on positioning/rotation to its children.

      @xyz thankyou for your input as well. I do have a good understanding of the differences... now anyway lol. having it explained has been really helpful. I've been in a state of documentation learning, where the answers seem so convoluted without better understanding.

      REVBENT node/node2d

      You can see this clearly in the documentation:

      Node
      https://docs.godotengine.org/en/4.2/classes/class_node.html
      Inherits: Object
      Scroll down to Properties. There's no position property.

      Node2D
      https://docs.godotengine.org/en/4.2/classes/class_node2d.html
      Inherits: CanvasItem < Node < Object
      A 2D game object, inherited by all 2D-related nodes. Has a position, rotation, scale, and Z index.
      Scroll down to Properties. There is a position property.

      i do remember looking at that before and i was thinking that the node was acting simply as a place holder for the markers, so it wouldn't matter that the parent had no location. reading better may have worked, but now i see how to use the documentation and what to look for. honestly i thought "node" was more so used generally like an organizer, just to be able to collapse the children and make it look "pretty" . i see now that i was very mistaken there. i still cant really get my logic to understand why the parent needed the position, but i will go on the understanding that it just bc that is what the "inherited by" chart says, so just do that. a node would work to organize timers/etc, where as "things/canvas items" need to be represented by their respective bodies node path. you have gone above and beyond

      • xyz replied to this.

        One thing that may not be obvious. (At least it wasn't obvious to me.) If you have a chain of Node2D's (parent/child/grandchild etc.), then changing the position of one of them will also move its descendants. But if you stick a Node (not Node2D) in the middle of the chain, that will break that behavior.

          REVBENT Every node class that inherits its properties from either Node2D or Node3D class can be positioned, rotated and scaled in 2d or 3d space. Each such node represents a coordinate space defined by its transformation matrix. The matrix is contained within node's transform property.

          Coordinates spaces are cumulative, meaning that child's coordinate space is relative to its parent coordinate space, which is again relative to its parent coordinate space and so on all the way up to the top of the scene tree.

          This is very useful as it lets you do precisely the type of thing you tried to do here. You positioned the marker nodes relative to player node. And when you move the player node, the marker nodes are expected to follow because their position is always relative to the player node. Similarly, the player node can be a child of a level node. When you scroll the level node the player will be scrolled as well because its position is relative to the level node, etc.

          Unless you break this chain of coordinate spaces by inserting a node that does not feature a coordinate space.

          you two are truly a wealth of knowledge. I assume you are both admins... but if not... you get my vote. This information has been very complete, I'm thoroughly impressed. i appreciate the effort/dedication you both have towards your field AND the willingness to share it. The world would be a much better place if those qualities were present in our day to day lives.

          DaveTheCoder i learned that recently the hard way, spending few days on a problem that shouldnt have been there in the first place 😃