Hi! I try to make basic collisions in my game. I make variable 'collides' and it changes to true if body_entered() and false if body_exited() then loop check variable's value and if it true then plus coordinate y on 1. But when i test it player some minutes player don't fall but some minutes later he's fall from map. What's wrong?
Here's my code:
extends Node2D
var jumpMinWidth = 100
var jumpMaxWidth = 400
var score = 0
var objectsCount = 0
var collides = false
onready var waterLily = get_node("/root/Main/WaterLilyExample")
onready var reeds = get_node("/root/Main/ReedsExample")
onready var sky = get_node("/root/Main/Sky")
onready var player = get_node("/root/Main/Player")
func infinityMapGeneration():
objectsCount += 1
sky.scale.x += 200
print(collides)
if main.collides == false:
player.position.y += 1
var rng = RandomNumberGenerator.new()
rng.randomize()
var myRandomNumber = round(rng.randf_range(1, 2))
if myRandomNumber == 1:
var waterLilyClone = waterLily.duplicate()
add_child(waterLilyClone)
rng.randomize()
myRandomNumber = round(rng.randf_range(jumpMinWidth * 3, jumpMaxWidth))
waterLilyClone.position.x += myRandomNumber
waterLily.position = waterLilyClone.position
reeds.position = waterLilyClone.position
waterLilyClone.visible = true
waterLilyClone.name = "WaterLily" + str(objectsCount)
else:
var reedsClone = reeds.duplicate()
add_child(reedsClone)
rng.randomize()
myRandomNumber = round(rng.randf_range(jumpMinWidth * 3, jumpMaxWidth))
reedsClone.position.x += myRandomNumber
rng.randomize()
myRandomNumber = round(rng.randf_range(-jumpMinWidth * 3, jumpMaxWidth - 200))
reedsClone.position.y += myRandomNumber
reeds.position = reedsClone.position
waterLily.position = reedsClone.position
reedsClone.visible = true
reedsClone.name = "Reeds" + str(objectsCount)
get_node("/root/Main/Timer").start(0.1)