Condition doesn't stop being met. Setting position every frame

Godot Version

4.2

Question

if position.y > 2376 or position.y < 0 or position.x < 0 or position.x > 3168:
		position = Vector2(1428,129)
		

Whenever the object meets the conditions of the if statement, the if statement keeps repeating. But the position that i set doesn’t meet the condition. Why does this happen?

Nothing about this looks crazy to me so far.
So to be helpful, we need a bit more info, probably.

Like, if you do something like:

prints("Before", position)
if position.y > 2376 or position.y < 0 or position.x < 0 or position.x > 3168:
		position = Vector2(1428,129)
prints("After", position)

it may become clearer if, for example the position is the wrong type. Like if it’s a Vector3 for example. It’ll also be clearer what’s actually going on here.

Obviously if something else is setting the position, that would be a problem. That could be some code that is further down, but if this is a physics object, for example, then you shouldn’t be setting the position manually because other things outside of your view are updating the position.

Where is this code running? Is it in _process? Is it in _physics_process?

i’m running this in the _physics_process, and i still can’t figure it out. Can you? this is the log:

Godot Engine v4.2.1.stable.official.b09f793f5 - https://godotengine.org
Vulkan API 1.2.231 - Forward+ - Using Vulkan Device #0: Apple - Apple M1

Before (2071, 265.4031)
Before (639.4981, 806.7241)
Before (1159, 680)
Before (2071, 263.238)
Before (639.4981, 808.8897)
Before (1159, 680)
Before (2071, 263.238)
Before (639.4981, 808.8897)
Before (1159, 680)
Before (2071, 260.8043)
Before (639.4981, 811.3235)
Before (1159, 680)
Before (2071, 255.1328)
Before (639.4981, 816.995)
Before (1159, 680)
Before (2071, 251.8959)
Before (639.4981, 820.2319)
Before (1159, 680)
Before (2071, 248.3922)
Before (639.4981, 823.7356)
Before (1159, 680)
Before (2071, 244.6221)
Before (639.4981, 827.5057)
Before (1159, 680)
Before (2071, 240.586)
Before (639.4981, 831.5417)
Before (1159, 680)
Before (2071, 236.2845)
Before (639.4981, 835.8433)
Before (1159, 680)
Before (2071, 231.7179)
Before (639.4981, 840.4099)
Before (1159, 680)
Before (2071, 226.8867)
Before (639.4981, 845.241)
Before (1159, 680)
Before (2071, 221.7914)
Before (639.4981, 850.3364)
Before (1159, 680)
Before (2071, 216.4323)
Before (639.4981, 855.6954)
Before (1159, 680)
Before (2071, 210.8099)
Before (639.4981, 861.3178)
Before (1159, 680)
Before (2071, 204.9246)
Before (639.4981, 867.2031)
Before (1159, 680)
Before (2071, 198.777)
Before (639.4981, 873.3507)
Before (1159, 680)
Before (2071, 192.3673)
Before (639.4981, 879.7603)
Before (1159, 680)
Before (2071, 185.6962)
Before (639.4981, 886.4315)
Before (1159, 680)
Before (2071, 178.7639)
Before (639.4981, 893.3637)
Before (1159, 680)
Before (2071, 171.571)
Before (639.4981, 900.5566)
Before (1159, 680)
Before (2071, 164.1178)
Before (639.4981, 908.0098)
Before (1159, 680)
Before (2071, 156.4048)
Before (639.4981, 915.7228)
Before (1159, 680)
Before (2071, 148.4325)
Before (639.4981, 923.6951)
Before (1159, 680)
Before (2071, 140.2012)
Before (639.4981, 931.9264)
Before (1159, 680)
Before (2071, 131.7114)
Before (639.4981, 940.4162)
Before (1159, 680)
Before (2071, 122.9636)
Before (640.7824, 946.5497)
Before (1159, 680)
Before (2071, 113.9581)
Before (641.9624, 953.6164)
Before (1159, 680)
Before (2071, 104.6953)
Before (643.0491, 960.9988)
Before (1159, 680)
Before (2071, 95.17585)
Before (644.0463, 968.5908)
Before (1159, 680)
Before (2071, 75.36823)
Before (645.757, 984.3239)
Before (1159, 680)
Before (2071, 65.08095)
Before (646.4741, 992.4577)
Before (1159, 680)
Before (2071, 54.53859)
Before (647.1019, 1000.768)
Before (1159, 680)
Before (2071, 43.74158)
Before (647.6429, 1009.253)
Before (1159, 680)
Before (2071, -51.75114)
After (1428, 129)
Before (649.2091, 1083.326)
Before (1159, 680)
Before (2071, -64.82099)
After (1428, 129)
Before (649.1791, 1093.448)
Before (1159, 680)
Before (1428, 129)
Before (649.1791, 1093.448)
Before (1159, 680)
Before (2071, -78.14128)
After (1428, 129)
Before (649.0708, 1103.616)
Before (1159, 680)
Before (2071, -91.71159)
After (1428, 129)
Before (648.8672, 1113.975)
Before (1159, 680)
Before (2071, -105.5315)
After (1428, 129)
Before (648.6185, 1124.506)
Before (1159, 680)
Before (2071, -119.6006)
After (1428, 129)
Before (648.3524, 1135.221)
Before (1159, 680)
Before (2071, -133.9185)
After (1428, 129)
Before (645.5741, 1135.137)
Before (1159, 680)
Before (2071, -148.4847)
After (1428, 129)
Before (656.3303, 1137.172)
Before (1159, 680)
Before (2071, -163.2989)
After (1428, 129)
Before (658.4441, 1137.504)
Before (1159, 680)
Before (2071, -178.3606)
After (1428, 129)
Before (658.8605, 1137.542)
Before (1159, 680)
Before (2071, -193.6695)
After (1428, 129)
Before (658.9429, 1137.542)
Before (1159, 680)
Before (2071, -209.225)
After (1428, 129)
Before (658.9594, 1137.542)
Before (1159, 680)
Before (2071, -225.0269)
After (1428, 129)
Before (658.9627, 1137.542)
Before (1159, 680)
Before (1428, 129)
Before (658.9627, 1137.542)
Before (1159, 680)
Before (2071, -241.0746)
After (1428, 129)
Before (658.9633, 1137.542)
Before (1159, 680)
Before (2071, -257.3678)
After (1428, 129)
Before (658.9633, 1137.542)
Before (1159, 680)
Before (2071, -273.9061)
After (1428, 129)
Before (658.9636, 1137.542)
Before (1159, 680)
Before (2071, -290.689)
After (1428, 129)
Before (658.9636, 1137.542)
Before (1159, 680)
Before (2071, -307.7162)
After (1428, 129)
Before (658.9638, 1137.542)
Before (1159, 680)
Before (2071, -324.9872)
After (1428, 129)
Before (658.9638, 1137.542)
Before (1159, 680)
Before (2071, -342.5016)
After (1428, 129)
Before (658.9638, 1137.542)
Before (1159, 680)
Before (2071, -360.2591)
After (1428, 129)
Before (659.0426, 1138.142)
Before (1159, 680)
Before (2071, -378.2592)
After (1428, 129)
Before (659.1078, 1138.231)
Before (1159, 680)
Before (2071, -396.5016)
After (1428, 129)
Before (659.1116, 1138.239)
Before (1159, 680)
Before (2071, -414.9857)
After (1428, 129)
Before (659.1116, 1138.239)
Before (1159, 680)
Before (2071, -433.7113)
After (1428, 129)
Before (659.1116, 1138.239)
Before (1159, 680)
Before (2071, -452.6779)
After (1428, 129)
Before (659.1116, 1138.239)
Before (1159, 680)
Before (2071, -471.8851)
After (1428, 129)
Before (659.1116, 1138.239)
Before (1159, 680)
Before (2071, -491.3326)
After (1428, 129)
Before (659.1116, 1138.239)
Before (1159, 680)
Before (2071, -511.0198)
After (1428, 129)
Before (659.1116, 1138.239)
Before (1159, 680)
Before (2071, -530.9464)
After (1428, 129)
Before (659.1116, 1138.239)
Before (1159, 680)
Before (2071, -551.1121)
After (1428, 129)
Before (659.1116, 1138.239)
Before (1159, 680)
Before (2071, -571.5163)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -592.1588)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -613.0391)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -634.1568)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -655.5115)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -677.1029)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -698.9305)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -720.994)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -743.2929)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -765.8268)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -788.5955)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -811.5984)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -834.8352)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -858.3055)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -882.0089)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -905.9449)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -930.1134)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -954.5138)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -979.1458)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1004.009)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1029.103)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1054.427)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1079.981)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1105.765)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1131.779)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1158.021)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1184.491)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1211.19)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1238.116)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1265.27)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1292.651)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1320.258)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1348.091)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1376.151)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1404.436)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1432.945)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1461.68)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1490.639)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1519.822)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1549.228)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1578.858)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1608.71)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1638.785)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1669.082)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1699.601)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1730.341)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1761.302)
After (1428, 129)
Before (659.1116, 1138.241)
Before (1159, 680)
Before (2071, -1792.484)
After (1428, 129)
Before (659.6453, 1137.425)
Before (1159, 680)
Before (2071, -1823.886)
After (1428, 129)
Before (659.0253, 1137.48)
Before (1159, 680)
Before (2071, -1855.508)
After (1428, 129)
Before (659.2255, 1137.267)
Before (1159, 680)
Before (2071, -1887.35)
After (1428, 129)
Before (659.3075, 1137.125)
Before (1159, 680)
Before (2071, -1919.41)
After (1428, 129)
Before (659.3212, 1137.1)
Before (1159, 680)
Before (2071, -1951.689)
After (1428, 129)
Before (659.2532, 1137.204)
Before (1159, 680)
Before (2071, -1984.187)
After (1428, 129)
Before (659.1009, 1137.439)
Before (1159, 680)
Before (2071, -2016.903)
After (1428, 129)
Before (659.1008, 1137.438)
Before (1159, 680)
Before (2071, -2049.837)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2082.988)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2116.355)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2149.94)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2183.741)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2217.757)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2251.99)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2286.437)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2321.099)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2355.975)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2391.066)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2426.37)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2461.888)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2497.619)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2533.562)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2569.718)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2606.086)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2642.665)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
Before (2071, -2679.456)
After (1428, 129)
Before (659.1008, 1137.439)
Before (1159, 680)
— Debugging process stopped —

It looks like you put the "After" print inside the if statement, meaning it only prints when it makes a change.

But basically this looks like it’s working to me. It mostly is positive, so it doesn’t set anything, but then sometimes it’s negative so it runs the “After” code.

But, what we can’t see here, is what else is setting this position. Clearly the position is changing over time, the “Before” position on one line isn’t equal to the one that came before it. So something else besides this one “if-statement” is making some kinds of changes.

What are you seeing on your end? What do you expect to be happening, and what’s happening instead to convince you something is wrong?

1 Like

wait i know what’s wrong. i’m setting the position of a rigibody. would you know how to set the position of a rigidbody without it freaking out?

What is see happen is the object falling off screen and then freezing at the position i set, wich keeps repeating so it can’t fall. I want to set the position once and then let the rigidbody fall down with normal gravity.

Yup! You can read the docs: RigidBody2D — Godot Engine (stable) documentation in English

It tells you you should not set the position, but if you have to you can use _integrate_forces to set the position at a safe time, rather than using _physics_process

1 Like

i got it working! is copied some code from this post: gdscript - Set a Rigid body position in Godot 4 - Stack Overflow

Thanks for helping!

1 Like