h2 游戏概述
游戏概述
本次实操搭建零门槛2D射击游戏核心框架,包含玩家方向控制、鼠标定位发射子弹、屏幕边缘随机生成敌人、子弹-敌人碰撞销毁四大核心功能,全程使用Godot内置资源,无需下载额外素材,完成后可直接测试运行。
实操环境准备
1. 安装Godot4引擎
Windows系统打开CMD,执行命令:
``` winget install GodotEngine.Godot4 ```执行后确认安装成功:输入godot --version,输出包含4.2.x版本号即完成。
核心框架搭建实操
步骤1:创建项目
打开Godot引擎,点击主界面「新建项目」,填写项目名称为「2D射击核心框架」,选择本地空文件夹作为项目路径,引擎版本选4.2稳定版,点击「创建」完成项目初始化。
步骤2:搭建玩家节点
在Godot的2D场景编辑区,点击节点面板「+」,添加CharacterBody2D节点,命名为「Player」;为Player添加2个子节点:Sprite2D(命名为PlayerSprite)、CollisionShape2D(命名为PlayerCollision)。
设置PlayerSprite:点击其「纹理」属性,选择「内置纹理」,类型为「Rect2」,尺寸设为32×48,颜色填「0088ff」;设置PlayerCollision:「形状」属性选「RectangleShape2D」,尺寸与PlayerSprite一致(32×48)。
步骤3:玩家移动脚本编写
选中Player节点,点击脚本面板「新建脚本」,脚本附加到Player,复制以下代码:
```gdscript extends CharacterBody2D @export var move_speed = 300.0 func _physics_process(delta: float) -> void: var input_dir = Input.get_vector("left", "right", "up", "down") velocity = input_dir move_speed move_and_slide() ```步骤4:搭建子弹节点
在场景面板点击「+」,添加Area2D节点,命名为「Bullet」;添加2个子节点:Sprite2D(BulletSprite)、CollisionShape2D(BulletCollision)。
设置BulletSprite:内置纹理Rect2,尺寸8×16,颜色「ff4444」;BulletCollision:形状选「CircleShape2D」,半径4。重要操作:选中Bullet节点,右键→「将当前值保存为场景」,文件名填「Bullet.tscn」,保存到项目根目录。
步骤5:子弹发射逻辑实现
回到Player节点,点击脚本面板,修改Player的脚本,添加以下代码:
```gdscript extends CharacterBody2D @export var move_speed = 300.0 @export var bullet_scene: PackedScene preload("res://Bullet.tscn") func _physics_process(delta: float) -> void: var input_dir = Input.get_vector("left", "right", "up", "down") velocity = input_dir move_speed move_and_slide() func _input(event: InputEvent) -> void: if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT: var bullet = bullet_scene.instantiate() bullet.position = position bullet.direction = (get_global_mouse_position() - position).normalized() add_child(bullet) ```步骤6:子弹边界与碰撞逻辑
选中Bullet节点,点击信号面板,找到body_entered信号,点击「连接」,选择自身(Bullet节点),函数名填_on_body_entered,确认连接。然后修改Bullet脚本:
步骤7:敌人生成逻辑
添加敌人节点:点击节点面板「+」,添加StaticBody2D节点,命名为「Enemy」;添加子节点Sprite2D(EnemySprite)、CollisionShape2D(EnemyCollision)。设置EnemySprite:内置纹理Rect2,尺寸32×32,颜色「88ff00」;EnemyCollision:CircleShape2D,半径16。重要操作:选中Enemy节点,右键→「保存为场景」,文件名「Enemy.tscn」,存到项目根目录。
添加生成器节点:点击节点面板「+」,添加Node2D节点,命名为「EnemySpawner」,附加以下脚本:
测试与常见问题
运行测试
点击Godot顶部工具栏的绿色三角「运行」按钮,进入游戏:
- 按AWSD或方向键控制蓝色玩家移动
- 鼠标左键点击任意位置发射红色子弹
- 绿色敌人从屏幕上方随机生成,子弹碰到敌人后双方销毁,超出屏幕自动消失
常见问题解决
- 无移动:检查脚本中move_speed为正数,Input映射未修改
- 不发射子弹:确认Bullet.tscn已保存,Player脚本preload路径为「res://Bullet.tscn」
- 敌人不生成:确认Enemy.tscn已保存,Spawner脚本enemy_scene路径正确
- 无碰撞销毁:确认Bullet节点已连接body_entered信号,函数名正确为_on_body_entered
版权保护: 本文由 741卡盟 原创,转载请保留链接: http://741ka.com/gamenews/21621.html
