Fixed many Bugy and added Labels for Time and Score

This commit is contained in:
Exobyt 2024-08-20 00:34:24 +02:00
parent 632eeddc64
commit ee5e17c3e0
14 changed files with 430 additions and 179 deletions

View file

@ -7,6 +7,7 @@
[node name="BlockPattern" instance=ExtResource("1_sj41y")]
[node name="PositionMarker" parent="Positions" index="0" instance=ExtResource("2_csenr")]
turningPoint = true
[node name="PositionMarker2" parent="Positions" index="1" instance=ExtResource("2_csenr")]
position = Vector2(0, -64)

View file

@ -5,67 +5,113 @@ extends Node2D
var lastDirection = null
var type = GLOBAL.BLOCKTYPES.LIGHT
var expand = false
func getPositions():
return positions.get_children()
func checkDirection():
var leftCollision = true
var rightCollision = true
positions.position.x = 0
collision.position.x = 0
if await getCollidingAreas() != []:
positions.position.x += GLOBAL.GRID
collision.position.x += GLOBAL.GRID
if await getCollidingAreas() == []:
rightCollision = false
else:
rightCollision = true
positions.position.x = 0
collision.position.x = 0
if await getCollidingAreas() != []:
positions.position.x -= GLOBAL.GRID
collision.position.x -= GLOBAL.GRID
if await getCollidingAreas() == []:
leftCollision = false
else:
leftCollision = true
positions.position.x = 0
collision.position.x = 0
if not rightCollision:
positions.position.x += GLOBAL.GRID
collision.position.x += GLOBAL.GRID
elif not leftCollision:
positions.position.x -= GLOBAL.GRID
collision.position.x -= GLOBAL.GRID
else:
positions.position.x = 0
collision.position.x = 0
print("xfsdfdsfd")
var leftCollision = false
var rightCollision = false
func turn(direction,newPosition):
positions.position.x = 0
collision.position.x = 0
position = newPosition
match direction:
GLOBAL.Direction.LEFT:
positions.rotation_degrees += 90
collision.rotation_degrees += 90
if await getCollidingAreas() != []:
checkDirection()
if await getCollidingAreas() != []:
positions.rotation_degrees += 90
collision.rotation_degrees += 90
GLOBAL.Direction.RIGHT:
positions.rotation_degrees -= 90
collision.rotation_degrees -= 90
if await getCollidingAreas() != []:
checkDirection()
if await getCollidingAreas() != []:
positions.rotation_degrees -= 90
collision.rotation_degrees -= 90
#positions.rotation_degrees += 90
#collision.rotation_degrees += 90
movePattern(GLOBAL.Direction.RIGHT)
print("0: ", await isColliding())
if await isColliding():
movePattern(GLOBAL.Direction.LEFT)
print("1: ", await isColliding())
#if await isColliding():
#movePattern(GLOBAL.Direction.RIGHT, 2)
#print("2: ", await isColliding())
#if await isColliding():
#movePattern(GLOBAL.Direction.LEFT, 2)
#print("3: ", await isColliding())
#if await isColliding():
#resetPosition()
#print("4: ", await isColliding())
#if await isColliding():
#rightCollision = true
#resetPosition()
#movePattern(GLOBAL.Direction.LEFT)
#if await isColliding():
#leftCollision = true
#print(" LEFT: ", leftCollision, "\n RIGHT: ", rightCollision)
#resetPosition()
#if await getCollidingAreas() != []:
#rightCollision = true
#resetPosition()
#movePattern(GLOBAL.Direction.LEFT)
#if await getCollidingAreas() != []:
#leftCollision = true
#resetPosition()
#
#if leftCollision:
#movePattern(GLOBAL.Direction.RIGHT)
#elif rightCollision:
#movePattern(GLOBAL.Direction.LEFT)
#else:
#resetPosition()
func moveToPosition(newPosition):
resetPosition()
position = newPosition
func turn(direction, newPosition):
reset(newPosition)
#moveToPosition(newPosition)
rotatePattern(direction)
#if await isColliding():
#print(1)
#movePattern(GLOBAL.Direction.RIGHT, 1)
#if await isColliding():
#print(2)
#movePattern(GLOBAL.Direction.LEFT,2)
#if await isColliding():
#print(3)
#movePattern(GLOBAL.Direction.RIGHT, 3)
#if await isColliding():
#print(4)
#movePattern(GLOBAL.Direction.LEFT, 4)
#if await isColliding():
#print(1)
#movePattern(GLOBAL.Direction.RIGHT, 2)
#if await isColliding():
#print(2)
#movePattern(GLOBAL.Direction.LEFT,4)
#
if await isColliding():
movePattern(GLOBAL.Direction.RIGHT, 1)
if await isColliding():
movePattern(GLOBAL.Direction.RIGHT, 1)
if await isColliding():
movePattern(GLOBAL.Direction.LEFT,3)
if await isColliding():
movePattern(GLOBAL.Direction.LEFT,1)
#if await isColliding():
#print(2)
#movePattern(GLOBAL.Direction.RIGHT, 1)
#if await isColliding():
#print(3)
#movePattern(GLOBAL.Direction.LEFT,3)
#if await isColliding():
#print(4)
#movePattern(GLOBAL.Direction.LEFT,1)
#if await isColliding():
#print(3)
#movePattern(GLOBAL.Direction.LEFT, 1)
#movePattern(GLOBAL.Direction.RIGHT, 3)
#if await isColliding():
#movePattern(GLOBAL.Direction.LEFT, 2)
if await isColliding():
resetPosition()
func getCollidingAreas():
@ -81,7 +127,31 @@ func getCollidingAreas():
else:
collidingAreas.append(i)
return collidingAreas
func isColliding():
return await getCollidingAreas() != []
func getCollidingBorder():
await get_tree().process_frame
await get_tree().process_frame
await get_tree().process_frame
await get_tree().process_frame
var collidingAreas = []
for i in collision.get_overlapping_areas():
if not i.is_in_group("Block"):
collidingAreas.append(i)
return collidingAreas
func getCollidingBlocks():
await get_tree().process_frame
await get_tree().process_frame
await get_tree().process_frame
var collidingAreas = []
for i in collision.get_overlapping_areas():
if i.is_in_group("Block"):
if i.UID != GLOBAL.currentUID:
collidingAreas.append(i)
return collidingAreas
#func _on_collision_test_area_entered(area: Area2D) -> void:
#if lastDirection == null:
@ -102,3 +172,30 @@ func reset(newPosition):
positions.position.x = 0
collision.position.x = 0
rotation_degrees = 0
func movePattern(direction, steps = 1):
match direction:
GLOBAL.Direction.LEFT:
positions.position.x -= GLOBAL.GRID * steps
collision.position.x -= GLOBAL.GRID * steps
#print("Left")
#print(positions.position)
GLOBAL.Direction.RIGHT:
positions.position.x += GLOBAL.GRID * steps
collision.position.x += GLOBAL.GRID * steps
#print("Right")
#print(positions.position)
func resetPosition():
#print("RESET")
positions.position.x = 0
collision.position.x = 0
func rotatePattern(direction):
match direction:
GLOBAL.Direction.LEFT:
positions.rotation_degrees += 90
collision.rotation_degrees += 90
GLOBAL.Direction.RIGHT:
positions.rotation_degrees -= 90
collision.rotation_degrees -= 90