Feat: Add syntax highlighting for a lot more languages
This commit is contained in:
81
samples/gdscript.gd
Normal file
81
samples/gdscript.gd
Normal file
@@ -0,0 +1,81 @@
|
||||
# Sample GDScript for syntax highlighting
|
||||
|
||||
extends Node2D
|
||||
|
||||
# ============================================================
|
||||
# Constants
|
||||
# ============================================================
|
||||
const MAX_HEALTH = 100
|
||||
const PLAYER_SPEED = 200
|
||||
const PI_APPROX = 3.14159
|
||||
|
||||
# ============================================================
|
||||
# Exported variables
|
||||
# ============================================================
|
||||
@export var player_name: String = "Hero"
|
||||
@export var is_alive: bool = true
|
||||
|
||||
# ============================================================
|
||||
# Signals
|
||||
# ============================================================
|
||||
signal health_changed(new_health)
|
||||
|
||||
# ============================================================
|
||||
# Member variables
|
||||
# ============================================================
|
||||
var health: int = MAX_HEALTH
|
||||
var velocity: Vector2 = Vector2.ZERO
|
||||
var inventory: Array = []
|
||||
|
||||
# ============================================================
|
||||
# Functions
|
||||
# ============================================================
|
||||
func _ready() -> void:
|
||||
print("Player ready:", player_name)
|
||||
_initialize_inventory()
|
||||
set_process(true)
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if is_alive:
|
||||
_handle_input(delta)
|
||||
_check_health()
|
||||
|
||||
# Private functions
|
||||
func _initialize_inventory() -> void:
|
||||
inventory.append("Sword")
|
||||
inventory.append("Shield")
|
||||
|
||||
func _handle_input(delta: float) -> void:
|
||||
var direction: Vector2 = Vector2.ZERO
|
||||
if Input.is_action_pressed("ui_right"):
|
||||
direction.x += 1
|
||||
if Input.is_action_pressed("ui_left"):
|
||||
direction.x -= 1
|
||||
if Input.is_action_pressed("ui_down"):
|
||||
direction.y += 1
|
||||
if Input.is_action_pressed("ui_up"):
|
||||
direction.y -= 1
|
||||
|
||||
velocity = direction.normalized() * PLAYER_SPEED
|
||||
position += velocity * delta
|
||||
|
||||
func _check_health() -> void:
|
||||
if health <= 0:
|
||||
is_alive = false
|
||||
print("Player is dead!")
|
||||
else:
|
||||
emit_signal("health_changed", health)
|
||||
|
||||
# ============================================================
|
||||
# Example of class definition inside another script
|
||||
# ============================================================
|
||||
class Weapon:
|
||||
var name: String
|
||||
var damage: int
|
||||
|
||||
func _init(name: String, damage: int):
|
||||
self.name = name
|
||||
self.damage = damage
|
||||
|
||||
func attack():
|
||||
print(name, "attacks for", damage, "damage")
|
||||
Reference in New Issue
Block a user