반응형

추가한 캐릭터를 삭제해 보자.

 

Sprite2D 노드를 추가하고 이름을 Character로 바꾼다. Texture 속성에 이미지를 넣고 스크립트를 추가한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using Godot;
 
public partial class Character : Sprite2D
{
    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {
    }
 
    // Called every frame. 'delta' is the elapsed time since the previous frame.
    public override async void _Process(double delta)
    {
        await ToSignal(GetTree().CreateTimer(1.0), SceneTreeTimer.SignalName.Timeout);
        QueueFree();
    }
}
 

 

 

1초 대기 후 큐에서 삭제하는 스크립트를 작성한다.

 

새로운 씬을 만들고 Node 노드를 생성해서 Main으로 이름을 바꾸고 스크립트를 추가한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using Godot;
 
public partial class Main : Node
{
    [Export]
    public PackedScene CharacterScene { get; set; }
 
    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {
    }
 
    // Called every frame. 'delta' is the elapsed time since the previous frame.
    public override void _Process(double delta)
    {
        if (Input.IsActionJustPressed("lclick"))
        {
            Character character = CharacterScene.Instantiate<Character>();
            character.Position = GetViewport().GetMousePosition();
 
            AddChild(character);
        }
    }
}
 

 

 

왼쪽 마우스 버튼을 클릭하면 캐릭터를 생성하는 스크립트를 작성한다.

 

 

Project Settings - Input Map 에 마우스 클릭 액션을 추가한다.

 

Main 씬에서 Build 버튼을 클릭한다. Inspector에 CharacterScene 속성이 생기면 Character.tscn을 추가한다.

 

Main 씬을 실행하고 왼쪽 버튼을 클릭하면 스프라이트가 표시되고 1초 후 사라진다.

 

이번엔 특정 액션(마우스 오른쪽 버튼 클릭) 발생시 모든 캐릭터를 한번에 삭제해 보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using Godot;
 
public partial class Character : Sprite2D
{
    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {
    }
 
    // Called every frame. 'delta' is the elapsed time since the previous frame.
    public override async void _Process(double delta)
    {
        //await ToSignal(GetTree().CreateTimer(1.0), SceneTreeTimer.SignalName.Timeout);
        //QueueFree();
    }
}
 

 

 

캐릭터 클래스에서 1초 대기 후 큐에서 삭제하는 코드를 삭제한다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using Godot;
 
public partial class Main : Node
{
    [Export]
    public PackedScene CharacterScene { get; set; }
 
    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {
    }
 
    // Called every frame. 'delta' is the elapsed time since the previous frame.
    public override void _Process(double delta)
    {
        if (Input.IsActionJustPressed("lclick"))
        {
            Character character = CharacterScene.Instantiate<Character>();
            character.Position = GetViewport().GetMousePosition();
 
            AddChild(character);
        }
        if (Input.IsActionJustPressed("rclick"))
        {
            GetTree().CallGroup("chargroup", Node.MethodName.QueueFree);
        }
    }
}
 

 

 

메인 클래스에서 마우스 우클릭시 "chargroup"에 속한 노드의 QueueFree()를 호출하는 코드를 작성한다.

 

Character씬에서 Node 탭 - Group 탭에서 chargroup을 추가한다.

 

Godot의 group은 다른 게임엔진의 tag와 같은 역할을 한다.

 

마우스 왼쪽 버튼을 클릭하면 스프라이트가 생성되고 오른쪽 버튼을 클릭하면 모두 사라진다.

 

※ 참고

Node - void QueueFree()

Groups

 

반응형
Posted by J-sean
:
반응형

전자기 유도 방식으로 통신하는 NFC나 RFID는 이제 일상생활에 흔히 사용되는 통신이다.

 

  RFID NFC
사용 주파수 125kHz~2.45GHz 13.56MHz
연결범위 ~100m ~10cm
통신 단방향 양방향

RFID와 NFC의 차이

 

NFC는 양방향 통신이 가능하므로 태그와 리더가 통합될 수 있지만 RFID는 태그와 리더가 분리 되어있다. 또, RFID는 장거리 통신이 가능하고, NFC는 암호화가 가능해 보안성이 높다는 특징 때문에 NFC는 모바일 기기 등 개인 단말기에 자주 사용되는 반면, RFID는 개인뿐 아니라 물류 등 각종 산업에서 활발하게 이용되고 있다.

 

이렇게 우리 생활에 편리함을 더해주는 NFC와 RFID 태그를 쉽게 읽고 복사하는 방법을 알아보자.

 

스마트 카드 키 머신(?)이라고 한다. 중국어로 정신 없이 적혀 있지만 아래 주파수 대역의 통신 방식을 읽고 쓸 수 있는걸 알 수 있다.

125kHz, 250kHz, 375kHz, 500kHz, 625khz, 750kHz, 875kHz, 1000kHZ, 13.56MHz

 

태그 복사기의 각 부분 설명.

 

상자를 열어 보자. 바로 태그 복사기가 보인다.

 

몇몇 기능키와 숫자키가 있다.

 

 

뒷면에는 읽고 쓸 카드를 고정할 수 있는 밴드와 배터리(AAA) 커버가 있다. USB 전원으로도 동작 가능하다.

 

간단한 매뉴얼과 USB 케이블도 함께 들어있다.

 

같이 구매한 125kHz, 13.56MHz 태그들.

 

사용 방법은 영상으로 확인하자.

 

 

ISO/IEC 14443 Type A 규격의 태그라도 위 영상의 방법으로 복사 되지 않는 경우가 있다. (NFC라는 설명이 붙은 태그) Google Play Store에서 MIFARE Classic Tool을 설치하고 WRITE TAG를 선택한다.

 

Clone UID - OPEN THE CLONE UID TOOL을 선택한다.

 

원본 태그를 스캔하면 자동으로 UID가 입력된다. GENERATE BLOCK 0 AND CLONE UID 버튼을 누른다.

 

Waiting for magic tag(2nd gen) 메세지가 나오면 복사될 태그를 스캔한다.

 

 

복사가 완료되면 검증을 위해 다시 스캔한다.

 

문제없이 복사되었다면 Successfully cloned UID 메세지가 나오고 복사 과정이 다시 진행된다.

 

반응형
Posted by J-sean
: