basic cursor
This commit is contained in:
parent
4b6d0d9e77
commit
17db704a81
|
@ -0,0 +1,9 @@
|
|||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://textures/icon.png" type="Texture" id=1]
|
||||
[ext_resource path="res://scripts/GridCursor.cs" type="Script" id=2]
|
||||
|
||||
[node name="Grid Cursor" type="Sprite"]
|
||||
modulate = Color( 0, 1, 1, 0.533333 )
|
||||
texture = ExtResource( 1 )
|
||||
script = ExtResource( 2 )
|
|
@ -0,0 +1,33 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public class GridCursor : Sprite
|
||||
{
|
||||
[Export]
|
||||
public NodePath Grid { get; set; }
|
||||
private WorldGrid _grid;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
_grid = GetNode<WorldGrid>(Grid);
|
||||
}
|
||||
|
||||
public override void _Input(InputEvent @event)
|
||||
{
|
||||
base._Input(@event);
|
||||
|
||||
if (@event is InputEventMouseMotion mouseMoveEvent)
|
||||
{
|
||||
var pos = mouseMoveEvent.Position;
|
||||
_grid.GetGridPos(pos, out var x, out var y);
|
||||
var position = new Vector2(x + .5f, y + .5f) * _grid.CellSize;
|
||||
this.Position = position;
|
||||
}
|
||||
else if (@event is InputEventMouseButton mouseButtonEvent)
|
||||
{
|
||||
var pos = mouseButtonEvent.Position;
|
||||
_grid.GetGridPos(pos, out var x, out var y);
|
||||
GD.Print($"({x}, {y})");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue