godot.bk

 1.搜索godot国内镜像,直接安装,mono是csharp版本

2.直接解压,50m,无需安装,直接运行 

3.godot里分为场景,节点

主场景用control场景,下面挂textureact放背景图片,右键实例化子场景把角色场景加进来

角色场景用node2d场景,下面挂node2d节点,下面挂sprite节点放图片做player

子弹场景用node2d场景,下面挂label节点写一个“O”做子弹

如下:

4.sprite脚本

extends Sprite2D  # 继承自Node2D,或者如果你的角色是一个精灵,可以继承自Sprite  #var speed = 200  # 角色的移动速度,可以根据需要调整  
var bullet_speed = 100
var bullet_instance = null
@onready var bullet_scene = preload("res://botton.tscn")  
@onready var player_sprite = $player_sprite
var flag = 0;# 当节点首次进入场景树时被调用  
func _ready():  if(player_sprite == null):print("player_sprite null>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")flag = 1;pass  # 初始化代码可以放在这里,但在这个例子中我们不需要  func field_booton():bullet_instance = bullet_scene.instantiate() get_tree().root.add_child(bullet_instance)if(player_sprite):bullet_instance.position = player_sprite.positionelse:bullet_instance.position = position	func _process(delta):  var velocity = Vector2.ZERO  # 初始化速度为0  # 检测WSAD键并设置相应的速度  if Input.is_action_pressed("ui_up"):  #velocity.y -= 1  position = position + Vector2(0, -5)if Input.is_action_pressed("ui_down"):  #velocity.y += 1  position = position + Vector2(0, 5)if Input.is_action_pressed("ui_left"):  #velocity.x -= 1  position = position + Vector2(-5, 0)if Input.is_action_pressed("ui_right"):  #velocity.x += 1  position = position + Vector2(5, 0)if Input.is_action_just_pressed("ui_accept"):  field_booton()# 标准化速度向量(可选,取决于你是否想要对角移动速度保持一致)  #if velocity.length_squared() > 0:  #velocity = velocity.normalized() * speed  # 更新角色的位置  #position += velocity * deltaif bullet_instance:bullet_instance.position.x += bullet_speed * delta

注意:
1、应该用delta保持不同平台的移动是一样的

2、@onready var player_sprite = $player_sprite:这个拿到的是null,不知道为什么:为什么是null,因为$是在子节点里找child,我们加脚本应该在node2d里加,不应该在sprite2d里加

3、onready已经被废弃,使用@onready

4、instanse()已经被废弃,使用instansite()

5、不能直接add_child(bullet_instance),而是应该get_tree().root.add_child(bullet_instance),不然子弹和sprite其实是一个节点,上下移动都是相对的

 5.botton脚本

extends Label# Called when the node enters the scene tree for the first time.
func _ready():pass # Replace with function body.# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):position = position + Vector2(4, 0)pass

6.注意connect在godot4也被改了,改成两个参数了

func _ready():
# 假设我们有一个 Button 节点实例,并且我们想要连接其 'pressed' 信号到一个函数  connect("button_down", self._on_button_pressed)  # 然后定义处理按钮点击的函数  
func _on_button_pressed():  print("click the button")pass # Replace with function body.

7.注意button只能是contrl和node的子类,不能是node2d的子类

8.注意层级关系 

场景
main(contrl)
--background(textureact)
--player(node2d, this position add script)--player(sprite),preload(res//boom.tscn)
--A(contrl)--A(button), preload(res//menu.tscn)资源
menu.tscn(button)--get_tree().root.add_child()
boom.tscn(label or others)--get_tree().root.add_child()

9.lable不能放在node下面,应该放在node2的下面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/21419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

961题库 北航计算机 计算机网络 附答案 简答题形式

有题目和答案,没有解析,不懂的题问大模型即可,无偿分享。 第1组 习题 某网络拓扑如题下图所示,其中 R 为路由器,主机 H1~H4 的 IP 地址配置以及 R 的各接口 IP 地址配置如图中所示。现有若干以太网交换机…

Python高效遍历文件和目录的方法

在 Python 中,遍历文件和目录可以使用 os、pathlib 等模块。以下是一些高效遍历文件和目录的方法: 使用 os.walk() os.walk() 是一个高效的递归遍历指定目录及其子目录的方法,它返回一个生成器,生成一个三元组 (root, dirs, fil…

Instruction-Tuningpromote tuning原理,对比区别

Instruction-Tuning 原理 Instruction-Tuning(指令调优)是一种通过对模型提供明确指令或任务描述,从而提升其在特定任务上的表现的技术。这种方法通过预先定义好的任务说明(instructions)对模型进行微调,使…

鸿蒙应用开发之OpenGL应用和X组件9

接着下来,我们来分析函数CreateProgram的实现,它是实现着色器程序的编译、加载和删除资源。 GLuint EGLCore::CreateProgram(const char *vertexShader, const char *fragShader) { if ((nullptr == vertexShader) || (nullptr == fragShader)) { OH_LOG_Print(L…

MySQL—函数—函数小结

一、引言 前面博客我们已经学完了MySQL的函数,下面快速的对MySQL的函数做一个小结。 在讲解了MySQL的函数的时候,主要有四个方面: 1、字符串函数 (1)CONCAT:字符串连接 (2)LOWER、…

Java 多线程创建:三种主要方法

多线程编程是Java中一个重要的技术点,它允许程序并行执行多个任务,从而提高程序的执行效率。本文将详细介绍在Java中创建多线程的三种主要方法:继承Thread类、实现Runnable接口以及使用Callable和Future接口。 1. 继承 Thread 类 继承Threa…

【前端每日基础】day34——HTTP和HTTPS

HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是互联网通信协议,用于在Web浏览器和Web服务器之间传输数据。以下是对HTTP和HTTPS的详细介绍: HTTP(Hypertext…

Ubuntu server 24 (Linux) IPtables 双网卡 共享上网NAT 安装配置DHCP

一 开启路由转发功能 sudo vim /etc/sysctl.conf net.ipv4.ip_forward1 sudo sysctl -p 二 安装DHCP #更新软件包列表: sudo apt update #安装DHCP服务器 sudo apt install isc-dhcp-server #修改监听网卡,根据实际修改 sudo vi /etc/default/isc-dhcp-server …

配置 HTTP 代理 (HTTP proxy)

配置 HTTP 代理 [HTTP proxy] 1. Proxies2. curl2.1. Environment2.2. Proxy protocol prefixes 3. Use an HTTP proxy (使用 HTTP 代理)3.1. Using the examples (使用示例)3.1.1. Linux or macOS3.1.2. Windows Command Prompt 3.2. Authenticating to a proxy (向代理进行身…

Tailwindcss Layout布局相关样式及实战案例,5万字长文,附完整源码和效果截图

aspect 相关样式类 基础样式 ClassPropertiesaspect-autoaspect-ratio: auto;aspect-squareaspect-ratio: 1 / 1;aspect-videoaspect-ratio: 16 / 9; 案例:引入B站视频 Use the aspect-* utilities to set the desired aspect ratio of an element. 使用’ asp…

两款 IntelliJ IDEA 的 AI 编程插件

介绍两款 IntelliJ IDEA 的 AI 编程插件:通义灵码和 CodeGeeX。 通义灵码 这是由阿里推出的一个基于通义大模型的 AI 编码助手。 它提供了代码智能生成、研发智能问答等功能。通义灵码经过海量优秀开源代码数据训练,可以根据当前代码文件及跨文件的上下…

kafka-偏移量图解

生产者偏移量:生产者发送消息时写入到哪个位置(主题的每个分区会存储一个 leo 即将写入消息的偏移量),每次写完消息 leo 会 1 消费者偏移量:消费者从哪个位置开始消费消息,小于等于 leo,每个组…

数据赋能(107)——体系:数据采集——概述、关注焦点

概述 数据采集是指利用特定设备或技术,从原始数据源中捕获和记录数据的过程。 数据采集的主要目的是为了获取特定目标或现象的相关信息,以支持后续的数据分析、决策制定、业务优化等过程。 数据采集的重要性在于为企业和组织提供了关键的信息基础&…

【Qt】对话框

文章目录 1 :peach:对话框介绍:peach:2 :peach:对话框的分类:peach:2.1 :apple:模态对话框:apple:2.2 :apple:非模态对话框:apple:2.3 :apple:混合属性对话框:apple: 3 :peach:Qt 内置对话框:peach:3.1 :apple:消息对话框 QMessageBox:apple: 1 🍑对话框介绍&#x…

如何配置Oracle的ACL权限

配置Oracle的ACL(访问控制列表)权限是一个涉及多个步骤的过程。以下是一个清晰的步骤指南,用于配置Oracle的ACL权限: 1. 创建ACL 使用DBMS_NETWORK_ACL_ADMIN.CREATE_ACL过程来创建一个新的ACL。 sql BEGIN DBMS_NETWORK_ACL_…

pod 控制器介绍

一 pod 控制器相关理论介绍 1,Pod控制器 是什么 Pod控制器,又称之为工作负载(workload),是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行…

头歌springboot初体验

头歌(HeadGo)平台上的Spring Boot初体验课程为学习者提供了一个深入了解和实践Spring Boot 框架的机会。以下是对头歌Spring Boot初体验课程的清晰归纳和介绍: 1. 课程概述 目标:通过本课程,学习者将能够掌握Spring Boot的基础知识、核心特性和实践应用。 内容:课程内容…

[数据集][目标检测]水下管道泄漏破损检测数据集VOC+YOLO格式2069张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2069 标注数量(xml文件个数):2069 标注数量(txt文件个数):2069 标注…

【2024年5月备考新增】】 考前篇(30)《必备资料(13) - 论文串讲-干系人管理》

过程定义输入工具技术输出实际应用识别干系人识别能影响项目决策、 活动或结果的个人、 群体或组织,以及被 项目决策、活动或结 果所影响的个人、群 体或组织,并分析和 记录他们的相关信息 的过程1、项目章程2、立项管理文件 3、项目管理计划.沟通管理计划.干系人参与计划 4、…

时间序列的谱分解pt.2

16.dvi (berkeley.edu)https://www.stat.berkeley.edu/~bartlett/courses/153-fall2010/lectures/16.pdfpt1 时间序列的谱分解-CSDN博客