integrate obelisk into alai

This commit is contained in:
2023-02-26 21:45:25 -03:00
parent 937e173fce
commit b84ed69198
24 changed files with 1619 additions and 36 deletions

View File

@@ -8,7 +8,7 @@
[node name="Main" type="Node"]
pause_mode = 2
script = ExtResource( 1 )
game_version = "1.1.0"
game_version = "1.0.0"
level = ExtResource( 2 )
[node name="Level" type="Node" parent="."]

BIN
godot/alai.kb Normal file

Binary file not shown.

View File

@@ -9,35 +9,36 @@ export var gravity = 9.8
func _ready() -> void:
if direction == 1:
$AnimatedSprite.flip_h = true
$FloorChecker.position.x = $CollisionShape2D.shape.get_extents().x * direction
$FloorChecker.enabled = detect_edges
Event.connect("level_loaded", self, "_on_level_loaded")
if direction == 1:
$AnimatedSprite.flip_h = true
$FloorChecker.position.x = $CollisionShape2D.shape.get_extents().x * direction
$FloorChecker.enabled = detect_edges
Event.connect("level_loaded", self, "_on_level_loaded")
func _physics_process(_delta: float) -> void:
if is_on_wall() or not $FloorChecker.is_colliding() and is_on_floor() and $FloorChecker.enabled:
direction *= -1
$AnimatedSprite.flip_h = not $AnimatedSprite.flip_h
$FloorChecker.position.x = $CollisionShape2D.shape.get_extents().x * direction
if is_on_wall() or not $FloorChecker.is_colliding() and is_on_floor() and $FloorChecker.enabled:
direction *= -1
$AnimatedSprite.flip_h = not $AnimatedSprite.flip_h
$FloorChecker.position.x = $CollisionShape2D.shape.get_extents().x * direction
velocity.y += gravity
velocity.x = speed * direction
velocity = move_and_slide(velocity, Vector2.UP)
velocity.y += gravity
velocity.x = speed * direction
velocity = move_and_slide(velocity, Vector2.UP)
for i in get_slide_count():
var collision = get_slide_collision(i)
if collision.collider.name == "Player":
Event.emit_signal("player_touched", 3)
for i in get_slide_count():
var collision = get_slide_collision(i)
if collision.collider.name == "Player":
Event.emit_signal("player_touched", 3)
Event.emit_signal("object_updated", self.get_name(), "Walking", global_position, velocity)
Event.emit_signal("object_updated", self.get_name(), "Walking", global_position, velocity)
Event.emit_signal("report_object", self.get_name(), "Walking", global_position, velocity)
func squash() -> void:
Event.emit_signal("object_removed", self.get_name())
queue_free()
Event.emit_signal("object_removed", self.get_name())
queue_free()
func _on_level_loaded() -> void:
Event.emit_signal("object_created", self.get_name(), "Walking", global_position, Vector2(0, 0))
Event.emit_signal("object_created", self.get_name(), "Walking", global_position, Vector2(0, 0))

View File

@@ -0,0 +1,8 @@
[gd_resource type="NativeScript" load_steps=2 format=2]
[ext_resource path="res://gdnative/alai.tres" type="GDNativeLibrary" id=1]
[resource]
resource_name = "AI"
class_name = "AI"
library = ExtResource( 1 )

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=2]
[gd_scene load_steps=11 format=2]
[ext_resource path="res://characters/player/sprites/green.tres" type="SpriteFrames" id=1]
[ext_resource path="res://characters/player/states/Idle.gdns" type="Script" id=2]
@@ -8,6 +8,7 @@
[ext_resource path="res://characters/player/states/Jump.gdns" type="Script" id=6]
[ext_resource path="res://characters/player/states/Fall.gdns" type="Script" id=7]
[ext_resource path="res://assets/sounds/jump.wav" type="AudioStream" id=8]
[ext_resource path="res://characters/player/AI.gdns" type="Script" id=9]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 7, 12 )
@@ -16,6 +17,9 @@ extents = Vector2( 7, 12 )
collision_mask = 10
script = ExtResource( 5 )
[node name="AI" type="Node" parent="."]
script = ExtResource( 9 )
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
frames = ExtResource( 1 )
animation = "idle"

View File

@@ -0,0 +1,5 @@
extends Area2D
func _process(_delta: float) -> void:
Event.emit_signal("report_object", self.get_name(), "not collected", global_position, Vector2())

View File

@@ -1,10 +1,11 @@
[gd_scene load_steps=11 format=2]
[gd_scene load_steps=12 format=2]
[ext_resource path="res://assets/coin.png" type="Texture" id=1]
[ext_resource path="res://state_machine/StateMachine.gdns" type="Script" id=2]
[ext_resource path="res://collectables/coin/states/CoinNotCollected.gdns" type="Script" id=3]
[ext_resource path="res://collectables/coin/states/CoinCollected.gdns" type="Script" id=4]
[ext_resource path="res://assets/sounds/coin.wav" type="AudioStream" id=5]
[ext_resource path="res://collectables/coin/Coin.gd" type="Script" id=6]
[sub_resource type="CircleShape2D" id=1]
radius = 6.0
@@ -43,6 +44,7 @@ tracks/0/keys = {
[node name="Coin" type="Area2D"]
collision_layer = 4
script = ExtResource( 6 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2( 9, 9 )
@@ -51,7 +53,6 @@ shape = SubResource( 1 )
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
frames = SubResource( 4 )
animation = "spin"
frame = 1
playing = true
centered = false

5
godot/goal/Goal.gd Normal file
View File

@@ -0,0 +1,5 @@
extends Area2D
func _process(_delta: float) -> void:
Event.emit_signal("report_object", self.get_name(), "not touched", global_position, Vector2())

View File

@@ -1,9 +1,10 @@
[gd_scene load_steps=9 format=2]
[gd_scene load_steps=10 format=2]
[ext_resource path="res://assets/flag.png" type="Texture" id=1]
[ext_resource path="res://goal/GoalNotReached.gdns" type="Script" id=2]
[ext_resource path="res://goal/GoalReached.gdns" type="Script" id=3]
[ext_resource path="res://state_machine/StateMachine.gdns" type="Script" id=4]
[ext_resource path="res://goal/Goal.gd" type="Script" id=5]
[sub_resource type="RectangleShape2D" id=5]
extents = Vector2( 10, 18 )
@@ -25,15 +26,13 @@ animations = [ {
} ]
[node name="Goal" type="Area2D"]
position = Vector2( 324, 378 )
collision_layer = 32
script = ExtResource( 5 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2( 18, 18 )
shape = SubResource( 5 )
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
position = Vector2( 18, 18 )
frames = SubResource( 8 )
animation = "flagmove"
playing = true

View File

@@ -13,7 +13,7 @@
[node name="TestLevel" type="Node2D"]
[node name="Player" parent="." instance=ExtResource( 5 )]
position = Vector2( 36, 444 )
position = Vector2( 36, 498 )
collision_layer = 5
[node name="Camera2D" type="Camera2D" parent="Player"]
@@ -63,15 +63,21 @@ position = Vector2( 216, 504 )
[node name="Coin8" parent="Coins" instance=ExtResource( 2 )]
position = Vector2( 459, 468 )
[node name="Coin9" parent="Coins" instance=ExtResource( 2 )]
position = Vector2( 560, 468 )
[node name="BGM" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 6 )
volume_db = -25.0
autoplay = true
[node name="Goal" parent="." instance=ExtResource( 3 )]
position = Vector2( 621, 486 )
position = Vector2( 656, 504 )
[node name="Enemies" type="Node" parent="."]
[node name="Shelly" parent="Enemies" instance=ExtResource( 1 )]
position = Vector2( 379, 510 )
[node name="Shelly2" parent="Enemies" instance=ExtResource( 1 )]
position = Vector2( 628, 510 )