Cube drag and drop
This commit is contained in:
parent
e623429432
commit
693392ade9
@ -11,7 +11,7 @@ config_version=5
|
||||
[application]
|
||||
|
||||
config/name="导师模拟器"
|
||||
run/main_scene="res://scenes/game_manager.tscn"
|
||||
run/main_scene="res://scenes/logo_scene.tscn"
|
||||
config/features=PackedStringArray("4.3", "C#", "GL Compatibility")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
@ -20,7 +20,6 @@ config/icon="res://icon.svg"
|
||||
GameManager="*res://scenes/game_manager.tscn"
|
||||
OneSecondTicker="*res://scenes/game_manager.tscn"
|
||||
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
|
||||
SceneTransit="*res://scenes/scene_transit.tscn"
|
||||
|
||||
[dialogic]
|
||||
|
||||
@ -57,6 +56,11 @@ dialogic_default_action={
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
}
|
||||
mouse_left_press={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[rendering]
|
||||
|
||||
|
||||
@ -3,9 +3,15 @@
|
||||
[ext_resource type="Script" path="res://scripts/Cube.cs" id="1_3u72b"]
|
||||
[ext_resource type="TileSet" uid="uid://doadcdgjrsxxu" path="res://resources/TileSet/Office.tres" id="2_ya2a5"]
|
||||
|
||||
[node name="Cube" type="Node2D"]
|
||||
[node name="Cube" type="StaticBody2D"]
|
||||
collision_mask = 3
|
||||
input_pickable = true
|
||||
script = ExtResource("1_3u72b")
|
||||
|
||||
[node name="RedBG" type="Polygon2D" parent="."]
|
||||
color = Color(1, 0.0470588, 0.0666667, 0.466667)
|
||||
polygon = PackedVector2Array(-48, -96, -48, 144, 144, 144, 144, -96)
|
||||
|
||||
[node name="Chair2" type="TileMapLayer" parent="."]
|
||||
tile_map_data = PackedByteArray("AAAAAAAAAAANABwAAAAAAAEAAAANAB0AAAABAAAAAAAOABwAAAACAAAAAAAPABwAAAACAAEAAAAPAB0AAAABAP7/AAADAAoAAAABAP//AAADAAsAAAA=")
|
||||
tile_set = ExtResource("2_ya2a5")
|
||||
@ -33,3 +39,6 @@ tile_set = ExtResource("2_ya2a5")
|
||||
[node name="Chair" type="TileMapLayer" parent="."]
|
||||
tile_map_data = PackedByteArray("AAABAAEAAAABAAgAAAABAAIAAAABAAkAAAA=")
|
||||
tile_set = ExtResource("2_ya2a5")
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||
polygon = PackedVector2Array(48, 138, 97, 138, 97, 97, 144, 97, 144, -33, 97, -33, 97, -76, 48, -76, 48, -33, -10, -33, -10, 97, 48, 97)
|
||||
|
||||
121
scenes/lab.tscn
121
scenes/lab.tscn
File diff suppressed because one or more lines are too long
67
scenes/logo_scene.tscn
Normal file
67
scenes/logo_scene.tscn
Normal file
@ -0,0 +1,67 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://dv0sy1voqlq14"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://dxqtqlu4rkew7" path="res://resources/logo/bbj.png" id="1_al3ug"]
|
||||
[ext_resource type="Script" path="res://scripts/LogoScene.cs" id="1_dx6qu"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_6umjc"]
|
||||
resource_name = "logo_show"
|
||||
length = 3.0
|
||||
step = 1.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("BbjLogo/Sprite2D:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1, 2, 3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_2c4eo"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("BbjLogo/Sprite2D:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_sun07"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_2c4eo"),
|
||||
"logo_show": SubResource("Animation_6umjc")
|
||||
}
|
||||
|
||||
[node name="LogoScene" type="Node2D"]
|
||||
script = ExtResource("1_dx6qu")
|
||||
|
||||
[node name="BbjLogo" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="BbjLogo"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="BbjLogo"]
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
texture_filter = 6
|
||||
position = Vector2(960, 540)
|
||||
scale = Vector2(1.5, 1.5)
|
||||
texture = ExtResource("1_al3ug")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_sun07")
|
||||
}
|
||||
autoplay = "logo_show"
|
||||
@ -1,7 +1,6 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://xnssep8q3gm5"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://xnssep8q3gm5"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/SceneTransit.cs" id="1_2kqcs"]
|
||||
[ext_resource type="Texture2D" uid="uid://dxqtqlu4rkew7" path="res://resources/logo/bbj.png" id="2_3sfim"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_6aqtw"]
|
||||
length = 0.001
|
||||
@ -17,58 +16,6 @@ tracks/0/keys = {
|
||||
"update": 0,
|
||||
"values": [Color(0, 0, 0, 0)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("BbjLogo/ColorRect:color")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("BbjLogo/Sprite2D:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ro2x5"]
|
||||
resource_name = "logo"
|
||||
step = 0.3
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("BbjLogo/ColorRect:color")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("BbjLogo/Sprite2D:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_n35b4"]
|
||||
resource_name = "transit"
|
||||
@ -90,7 +37,6 @@ tracks/0/keys = {
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_g0ecv"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_6aqtw"),
|
||||
"logo": SubResource("Animation_ro2x5"),
|
||||
"transit": SubResource("Animation_n35b4")
|
||||
}
|
||||
|
||||
@ -106,19 +52,3 @@ color = Color(0, 0, 0, 0)
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_g0ecv")
|
||||
}
|
||||
|
||||
[node name="BbjLogo" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="BbjLogo"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="BbjLogo"]
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
texture_filter = 6
|
||||
position = Vector2(960, 540)
|
||||
scale = Vector2(1.5, 1.5)
|
||||
texture = ExtResource("2_3sfim")
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=14 format=3 uid="uid://c413oatj0eqhu"]
|
||||
[gd_scene load_steps=13 format=3 uid="uid://c413oatj0eqhu"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/Student.cs" id="1_oesea"]
|
||||
[ext_resource type="Texture2D" uid="uid://bw2007qd8eedh" path="res://resources/characters/bodies/Body_48x48_01.png" id="3_jhea4"]
|
||||
@ -12,8 +12,6 @@
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_opr6h"]
|
||||
size = Vector2(48, 96)
|
||||
|
||||
[sub_resource type="BlackboardPlan" id="BlackboardPlan_np5gt"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_f0f87"]
|
||||
length = 0.001
|
||||
|
||||
@ -108,9 +106,6 @@ script = ExtResource("1_oesea")
|
||||
position = Vector2(0, -48)
|
||||
shape = SubResource("RectangleShape2D_opr6h")
|
||||
|
||||
[node name="BTPlayer" type="BTPlayer" parent="."]
|
||||
blackboard_plan = SubResource("BlackboardPlan_np5gt")
|
||||
|
||||
[node name="parts" type="Node2D" parent="."]
|
||||
position = Vector2(0, -24)
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ using Godot;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public partial class Cube : Node2D
|
||||
public partial class Cube : StaticBody2D, ITileDraggable
|
||||
{
|
||||
private static readonly Rect2I tableRect = new(0, 0, 3, 2);
|
||||
private static readonly Rect2I table2Rect = new(0, -1, 3, 1);
|
||||
@ -74,15 +74,67 @@ public partial class Cube : Node2D
|
||||
new(new Vector2I(13, 33), equip2Rect),
|
||||
};
|
||||
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
RandomChangeTheme();
|
||||
private bool _draggable = false;
|
||||
public bool Draggable {
|
||||
get => _draggable;
|
||||
set {
|
||||
if (value == _draggable) return;
|
||||
_draggable = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
public Vector2I TilePosition { get; set; } = new Vector2I(5,5);
|
||||
private bool _isCollided = true;
|
||||
public bool IsCollided {
|
||||
get => _isCollided;
|
||||
set {
|
||||
if (_isCollided == value) return;
|
||||
_isCollided = value;
|
||||
if (value) {
|
||||
GetNode<Polygon2D>("RedBG").Show();
|
||||
} else {
|
||||
GetNode<Polygon2D>("RedBG").Hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
private static readonly Rect2I _tileRect = new(-1, -2, 4, 5);
|
||||
public Rect2I TileRect => _tileRect;
|
||||
|
||||
private Vector2I _mouseOffset;
|
||||
public Vector2I MouseOffset => _mouseOffset;
|
||||
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
RandomChangeTheme();
|
||||
IsCollided = false;
|
||||
}
|
||||
|
||||
public override void _InputEvent(Viewport viewport, InputEvent @event, int shapeIdx)
|
||||
{
|
||||
if (@event.IsActionPressed("mouse_left_press")) {
|
||||
if (Draggable) {
|
||||
var parent = GetParent<Lab>();
|
||||
parent.IsDragging = true;
|
||||
parent.DraggingTarget = this;
|
||||
var desk = GetNode<TileMapLayer>("Desk");
|
||||
_mouseOffset = desk.LocalToMap(GetLocalMousePosition());
|
||||
GD.Print($"_mouseOffset = {_mouseOffset}");
|
||||
}
|
||||
} else if (@event.IsActionReleased("mouse_left_press")) {
|
||||
var parent = GetParent<Lab>();
|
||||
parent.IsDragging = false;
|
||||
parent.DraggingTarget = null;
|
||||
}
|
||||
base._InputEvent(viewport, @event, shapeIdx);
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
GlobalPosition = TilePosition * 48;
|
||||
}
|
||||
|
||||
public void RandomChangeTheme() {
|
||||
@ -95,5 +147,4 @@ public partial class Cube : Node2D
|
||||
GD.Print(GD.RandRange(0, equip2Themes.Length-1));
|
||||
equip2Themes[x].Apply(GetNode<TileMapLayer>("Equip2"));
|
||||
}
|
||||
|
||||
}
|
||||
@ -13,8 +13,6 @@ public partial class GameManager : Node
|
||||
public override void _Ready()
|
||||
{
|
||||
Input.SetCustomMouseCursor(Arrow2x);
|
||||
var transit = GetNode<SceneTransit>("/root/SceneTransit");
|
||||
transit.Transit("res://scenes/lab.tscn", true, "logo", 1.5f);
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
|
||||
@ -5,6 +5,13 @@ using System.Linq;
|
||||
|
||||
public partial class Lab : Node2D
|
||||
{
|
||||
private static readonly Rect2I[] wallRectangles = {
|
||||
new(0,0,40,2),
|
||||
new(0,5,1, 15),
|
||||
new(0,20,40,1),
|
||||
new(39,2,1,18),
|
||||
};
|
||||
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
@ -19,10 +26,10 @@ public partial class Lab : Node2D
|
||||
Player.Timeline.OnDayChanged += d => label.Text = d.ToLongDateString();
|
||||
var table = GetNode<Cube>("Cube");
|
||||
Player.Timeline.OnDayChanged += d => table.RandomChangeTheme();
|
||||
|
||||
table.Draggable = true;
|
||||
MoneyLabel = GetNode<Label>("BottomBar/HBoxContainer/Money");
|
||||
|
||||
tileMap = GetNode<TileMapLayer>("TestMap");
|
||||
tileMap = GetNode<TileMapLayer>("OutGround");
|
||||
UpdateMap();
|
||||
}
|
||||
|
||||
@ -42,8 +49,18 @@ public partial class Lab : Node2D
|
||||
break;
|
||||
}
|
||||
MoneyLabel.Text = Player.Budget.Total.ToString("N0");
|
||||
if (IsDragging && DraggingTarget != null) {
|
||||
Vector2 mousePos = GetLocalMousePosition();
|
||||
Vector2I cell = Point2Coord(mousePos) - DraggingTarget.MouseOffset;
|
||||
var targetRect = DraggingTarget.TileRect;
|
||||
targetRect.Position += cell;
|
||||
DraggingTarget.IsCollided = wallRectangles.Any(r => r.Intersects(targetRect));
|
||||
DraggingTarget.TilePosition = cell;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsDragging { get; set; } = false;
|
||||
public ITileDraggable DraggingTarget { get; set; } = null;
|
||||
|
||||
private static readonly Vector2I tableTileCoord = new(0, 6);
|
||||
private static readonly Vector2I waterTileCoord = new(6, 9);
|
||||
@ -93,6 +110,7 @@ public partial class Lab : Node2D
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static bool IsValidPosition(Vector2I pos)
|
||||
{
|
||||
int x = pos.X;
|
||||
|
||||
@ -19,12 +19,12 @@ public partial class Loader : Control
|
||||
if (nextScene != null) {
|
||||
GameManager.NextScene = "res://scenes/lab.tscn";
|
||||
}
|
||||
resToLoad.AddRange(Res.Accessory);
|
||||
resToLoad.AddRange(Res.Body);
|
||||
resToLoad.AddRange(Res.Eye);
|
||||
resToLoad.AddRange(Res.Hair);
|
||||
resToLoad.AddRange(Res.Outfit);
|
||||
resToLoad.AddRange(Res.Smartphone);
|
||||
// resToLoad.AddRange(Res.Accessory);
|
||||
// resToLoad.AddRange(Res.Body);
|
||||
// resToLoad.AddRange(Res.Eye);
|
||||
// resToLoad.AddRange(Res.Hair);
|
||||
// resToLoad.AddRange(Res.Outfit);
|
||||
// resToLoad.AddRange(Res.Smartphone);
|
||||
ResourceLoader.LoadThreadedRequest(resToLoad[sceneLoaded]);
|
||||
progressBar.MaxValue = 100 * resToLoad.Count;
|
||||
SetProcess(true);
|
||||
@ -44,9 +44,8 @@ public partial class Loader : Control
|
||||
if(sceneLoaded < resToLoad.Count) {
|
||||
ResourceLoader.LoadThreadedRequest(resToLoad[sceneLoaded]);
|
||||
} else {
|
||||
var transit = GetNode<SceneTransit>("/root/SceneTransit");
|
||||
transit.Transit("res://scenes/lab.tscn", false);
|
||||
SetProcess(false);
|
||||
GetTree().ChangeSceneToFile("res://scenes/lab.tscn");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
15
scripts/LogoScene.cs
Normal file
15
scripts/LogoScene.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class LogoScene : Node2D
|
||||
{
|
||||
public override void _Ready() {
|
||||
GetNode<AnimationPlayer>("AnimationPlayer").AnimationFinished += OnAnimationPlayerAnimationFinished;
|
||||
|
||||
}
|
||||
public void OnAnimationPlayerAnimationFinished(StringName animationName)
|
||||
{
|
||||
GD.Print("FFF");
|
||||
GetTree().ChangeSceneToFile("res://scenes/loader.tscn");
|
||||
}
|
||||
}
|
||||
@ -17,6 +17,7 @@ public partial class SceneTransit : CanvasLayer
|
||||
|
||||
public async void Transit(string nextScene, bool needLoadResources = true, string animation = "transit", float waitSecond = 0)
|
||||
{
|
||||
SetProcess(true);
|
||||
GameManager.NextScene = nextScene;
|
||||
var ap = GetNode<AnimationPlayer>("AnimationPlayer");
|
||||
Layer = 9999;
|
||||
@ -35,6 +36,7 @@ public partial class SceneTransit : CanvasLayer
|
||||
await ToSignal(ap, AnimationMixer.SignalName.AnimationFinished);
|
||||
Layer = -1;
|
||||
Hide();
|
||||
SetProcess(false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -73,8 +73,8 @@ public partial class Student : CharacterBody2D
|
||||
public override void _Ready()
|
||||
{
|
||||
base._Ready();
|
||||
var bt = GetNode<BTPlayer>("BTPlayer");
|
||||
var bb = bt.Blackboard;
|
||||
// var bt = GetNode<BTPlayer>("BTPlayer");
|
||||
// var bb = bt.Blackboard;
|
||||
// bb.BindVarToProperty("Stayed", this, "Speed");
|
||||
// GD.Print(bb.GetVar("Stayed"));
|
||||
// GD.Print($"Speed: {Speed}");
|
||||
|
||||
@ -34,7 +34,6 @@ public partial class TestMap : TileMapLayer
|
||||
}
|
||||
lastHighlightCell = cell;
|
||||
SetCell(cell, 0, highlightTileCoord);
|
||||
GD.Print("Mouse is over cell: ", cell);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
10
scripts/TileDraggable.cs
Normal file
10
scripts/TileDraggable.cs
Normal file
@ -0,0 +1,10 @@
|
||||
using Godot;
|
||||
|
||||
public interface ITileDraggable {
|
||||
Vector2I TilePosition { get; set; }
|
||||
bool Draggable { get; set; }
|
||||
bool IsCollided { get; set; }
|
||||
Rect2I TileRect { get; }
|
||||
|
||||
Vector2I MouseOffset { get; }
|
||||
}
|
||||
@ -26,6 +26,8 @@ public partial class TileMapping : Node
|
||||
tileRect = rect;
|
||||
}
|
||||
|
||||
public TileMapping() {}
|
||||
|
||||
public void Apply(TileMapLayer layer) {
|
||||
// if pixelMap is not null, use all the pairs in pixelMap to set the tiles.
|
||||
if (pixelMap != null) {
|
||||
|
||||
14
shaders/cube.gdshader
Normal file
14
shaders/cube.gdshader
Normal file
@ -0,0 +1,14 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
void vertex() {
|
||||
// Called for every vertex the material is visible on.
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
// Called for every pixel the material is visible on.
|
||||
}
|
||||
|
||||
//void light() {
|
||||
// Called for every pixel for every light affecting the CanvasItem.
|
||||
// Uncomment to replace the default light processing function with this one.
|
||||
//}
|
||||
Loading…
Reference in New Issue
Block a user