mirror of
https://github.com/Steffo99/looping-for-loops.git
synced 2024-11-21 23:54:23 +00:00
❇️ Implement GameButtons (clickable)
This commit is contained in:
parent
c8342b9e1c
commit
a7f3f9302c
7 changed files with 109 additions and 3 deletions
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=7 format=2]
|
||||
[gd_scene load_steps=8 format=2]
|
||||
|
||||
[ext_resource path="res://Objects/SpecialObjects/Player.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://Objects/SpecialObjects/Conductor.tscn" type="PackedScene" id=2]
|
||||
|
@ -6,6 +6,7 @@
|
|||
[ext_resource path="res://Objects/SpecialObjects/SingleScreenWalls.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://Objects/SpecialObjects/Wrapper.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://Objects/ScrollingObjects/ScrollingBlock.tscn" type="PackedScene" id=6]
|
||||
[ext_resource path="res://Objects/ScrollingObjects/Buttons/GameButton.tscn" type="PackedScene" id=7]
|
||||
|
||||
[node name="Main" type="Node2D"]
|
||||
__meta__ = {
|
||||
|
@ -20,7 +21,6 @@ __meta__ = {
|
|||
|
||||
[node name="ConveyorBelt" parent="." instance=ExtResource( 3 )]
|
||||
position = Vector2( 640, 700 )
|
||||
cb_speed = 100.0
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource( 1 )]
|
||||
position = Vector2( 340, 500 )
|
||||
|
@ -33,3 +33,6 @@ position = Vector2( 840, 660 )
|
|||
|
||||
[node name="ScrollingBlock3" parent="." instance=ExtResource( 6 )]
|
||||
position = Vector2( 980, 660 )
|
||||
|
||||
[node name="GameButton" parent="." instance=ExtResource( 7 )]
|
||||
position = Vector2( 1000, 480 )
|
||||
|
|
32
Objects/ScrollingObjects/Buttons/GameButton.gd
Normal file
32
Objects/ScrollingObjects/Buttons/GameButton.gd
Normal file
|
@ -0,0 +1,32 @@
|
|||
extends Node2D
|
||||
class_name GameButton
|
||||
|
||||
export(Color, RGB) var color: Color = Color.white setget set_color
|
||||
export(Texture) var active_sprite: Texture = null
|
||||
export(Texture) var pressed_sprite: Texture = null
|
||||
export(bool) var is_active: bool = true setget set_active
|
||||
|
||||
|
||||
signal clicked
|
||||
|
||||
|
||||
func _ready():
|
||||
set_color(color)
|
||||
set_active(is_active)
|
||||
|
||||
|
||||
func set_color(value):
|
||||
color = value
|
||||
$Sprite.modulate = value
|
||||
|
||||
func set_active(value):
|
||||
is_active = value
|
||||
if value:
|
||||
$Sprite.texture = active_sprite
|
||||
else:
|
||||
$Sprite.texture = pressed_sprite
|
||||
|
||||
|
||||
func _on_GameButton_input_event(viewport: Viewport, event: InputEvent, shape_idx: int):
|
||||
if is_active and event.is_pressed():
|
||||
emit_signal("clicked")
|
29
Objects/ScrollingObjects/Buttons/GameButton.tscn
Normal file
29
Objects/ScrollingObjects/Buttons/GameButton.tscn
Normal file
|
@ -0,0 +1,29 @@
|
|||
[gd_scene load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://Sprites/button.png" type="Texture" id=1]
|
||||
[ext_resource path="res://Objects/ScrollingObjects/Buttons/GameButton.gd" type="Script" id=2]
|
||||
[ext_resource path="res://Objects/ScrollingObjects/Utilities/ConveyorScrollParent.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://Objects/ScrollingObjects/Utilities/WrapParent.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://Sprites/button_pressed.png" type="Texture" id=5]
|
||||
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 20, 20 )
|
||||
|
||||
[node name="GameButton" type="Area2D"]
|
||||
collision_layer = 8
|
||||
collision_mask = 2147483648
|
||||
script = ExtResource( 2 )
|
||||
active_sprite = ExtResource( 1 )
|
||||
pressed_sprite = ExtResource( 5 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="ConveyorScrollParent" parent="." instance=ExtResource( 3 )]
|
||||
|
||||
[node name="WrapParent" parent="." instance=ExtResource( 4 )]
|
||||
[connection signal="input_event" from="." to="." method="_on_GameButton_input_event"]
|
|
@ -3,7 +3,6 @@
|
|||
[ext_resource path="res://Sprites/player_danny_devito.png" type="Texture" id=1]
|
||||
[ext_resource path="res://Objects/SpecialObjects/Player.gd" type="Script" id=2]
|
||||
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 16, 16 )
|
||||
|
||||
|
|
BIN
Sprites/button_pressed.png
(Stored with Git LFS)
Normal file
BIN
Sprites/button_pressed.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
Sprites/button_pressed.png.import
Normal file
34
Sprites/button_pressed.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/button_pressed.png-36b20c9854df3037cade8d1ea8f243a6.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/button_pressed.png"
|
||||
dest_files=[ "res://.import/button_pressed.png-36b20c9854df3037cade8d1ea8f243a6.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
|
@ -29,6 +29,11 @@ _global_script_classes=[ {
|
|||
"language": "GDScript",
|
||||
"path": "res://Objects/ScrollingObjects/Utilities/ConveyorScrollParent.gd"
|
||||
}, {
|
||||
"base": "Node2D",
|
||||
"class": "GameButton",
|
||||
"language": "GDScript",
|
||||
"path": "res://Objects/ScrollingObjects/Buttons/GameButton.gd"
|
||||
}, {
|
||||
"base": "KinematicBody2D",
|
||||
"class": "Player",
|
||||
"language": "GDScript",
|
||||
|
@ -64,6 +69,7 @@ _global_script_class_icons={
|
|||
"Conductor": "",
|
||||
"ConveyorBelt": "",
|
||||
"ConveyorScrollParent": "",
|
||||
"GameButton": "",
|
||||
"Player": "",
|
||||
"Press": "",
|
||||
"ScrollParent": "",
|
||||
|
|
Loading…
Reference in a new issue