IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> godot常用的一些概念、组件(整理于官方教程) -> 正文阅读

[游戏开发]godot常用的一些概念、组件(整理于官方教程)

  1. 其他人的godot qa,很赞:Godot实践 Q&A | indienova 独立游戏

  2. 调整游戏的分辨率项目,项目设置,display,windows,设置width&height

  3. 另外,滚动到该小节的底部,在“Stretch”(拉伸)选项中,将 Mode 设置为“2d”、Aspect 设置为“keep”。这样就可以保证在不同大小的屏幕上,游戏都能够进行一致的比例缩放。

  4. 检测A,B的碰撞,使用Area2D,其子对象必须要有CollisionShape2D

  5. 精灵动画:AnimatedSprite-> SpriteFrames?一个精灵动画下可以包含多种动作,每一种动作会包含一系列的动画

  6. 添加碰撞:CollisionShape2D

  7. 脚本中,普通变量声明用var xx = 123,如果需要导出变量,则用export var xxx = 123,还可以导出特殊类型的变量,export(PackedScene) var mob_scene

  8. 当节点进入场景时,_ready将会被调用,可以理解为节点的构造函数

  9. _process函数,是每一帧都会调用_process()?函数的?delta?参数是?帧长度?——完成上一帧所花费的时间. 使用这个值的话, 可以保证你的移动不会被帧率的变化所影响,注意,如果需要设置物理相关属性,需要在_physics_process中设置

  10. 项目 -> 项目设置 -> 键位映射,里面可以使用字符串映射某些按键的操作

  11. 使用 Input.is_action_pressed() 来检测是否按下了键, 如果按下会返回 true, 否则返回 false .

  12. 物体常用的属性:velocity(Vector2对象)

  13. 操控子对象,使用$xxxx,$ 是 get_node() 的简写。因此在上面的代码中,$AnimatedSprite.play() 与 get_node("AnimatedSprite").play() 相同。$ 返回相对于当前节点路径处的节点,如果找不到该节点,则返回 null。由于 AnimatedSprite 是当前节点的子项,因此我们可以使用 $AnimatedSprite

  14. vector2可以用velocity.normalized()来进行向量单位化

  15. 限定位置:clamp,?clamp?一个值意味着将其限制在给定范围内。eg:position.x = clamp(position.x, 0, screen_size.x)

  16. AnimatedSprite类型的对象可以调用play & stop 函数

  17. $AnimatedSprite.animation = "walk" 可以选择动画$AnimatedSprite.flip_v = false 可以垂直翻转$AnimatedSprite.flip_h = velocity.x < 0 可以水平翻转

  18. $AnimatedSprite.frames.get_animation_names(),获取animateSprite中所有的动画名

  19. $AnimatedSprite.animation = mob_types[randi() % mob_types.size()]设置动画

  20. 如果希望每次运行场景时生成的“随机数”都不同,则必须使用 randomize()。我们将在 Main 场景中使用 randomize()

  21. 可以使用rand_range(a,b)来生成a,b之间的数字

  22. add_child(),用于向当前实例动态添加物品

  23. VisibilityNotifier2D,信号:screen_exited,会在物体离开屏幕时触发

  24. 修改字体:Label->themeOverrides->fonts->font->new DynamicFont

  25. hide()函数可以隐藏当前实例

  26. 信号相关

    1. 定义信号:signal hit,指明某种对象会向外界触发的信号

    2. 触发信号:emit_signal("hit")

    3. 信号还可以选择声明一个或多个参数,signal hitb(old,new)

    4. 安全的修改属性:$CollisionShape2D.set_deferred("disabled", true),如果在引擎的碰撞处理过程中禁用区域的碰撞形状可能会导致错误。使用 set_deferred() 告诉 Godot 等待可以安全地禁用形状时再这样做。

    5. 更多信号资料Using signals &mdash; Godot Engine (latest) 简体中文文档

	# 动态链接信号
	# 方法1.手动指定
	#get_node("../../golden/Area2D").connect("golden_touch", self, "_on_Area2D_golden_touch")
	#get_node("../../golden/Area2D2").connect("golden_touch", self, "_on_Area2D_golden_touch")
	
	# 方法2.动态遍历
	var goldens = get_node("../../golden").get_children()
	for gold_obj in goldens:
		gold_obj.connect("golden_touch", self, "_on_Area2D_golden_touch")
		gold_obj.connect("area_enter", gold_obj, "_on_Area2D_area_entered")

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:55:11  更:2022-07-17 16:56:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:25:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码