godot常用的一些概念组件(整理于官方教程)
Posted 啊罗罗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了godot常用的一些概念组件(整理于官方教程)相关的知识,希望对你有一定的参考价值。
-
其他人的godot qa,很赞:Godot实践 Q&A | indienova 独立游戏
-
调整游戏的分辨率项目,项目设置,display,windows,设置width&height
-
另外,滚动到该小节的底部,在“Stretch”(拉伸)选项中,将 Mode 设置为“2d”、Aspect 设置为“keep”。这样就可以保证在不同大小的屏幕上,游戏都能够进行一致的比例缩放。
-
检测A,B的碰撞,使用Area2D,其子对象必须要有CollisionShape2D
-
精灵动画:AnimatedSprite-> SpriteFrames 一个精灵动画下可以包含多种动作,每一种动作会包含一系列的动画
-
添加碰撞:CollisionShape2D
-
脚本中,普通变量声明用var xx = 123,如果需要导出变量,则用export var xxx = 123,还可以导出特殊类型的变量,export(PackedScene) var mob_scene
-
当节点进入场景时,_ready将会被调用,可以理解为节点的构造函数
-
_process函数,是每一帧都会调用_process() 函数的 delta 参数是 帧长度 ——完成上一帧所花费的时间. 使用这个值的话, 可以保证你的移动不会被帧率的变化所影响,注意,如果需要设置物理相关属性,需要在_physics_process中设置
-
项目 -> 项目设置 -> 键位映射,里面可以使用字符串映射某些按键的操作
-
使用 Input.is_action_pressed() 来检测是否按下了键, 如果按下会返回 true, 否则返回 false .
-
物体常用的属性:velocity(Vector2对象)
-
操控子对象,使用$xxxx,$ 是 get_node() 的简写。因此在上面的代码中,$AnimatedSprite.play() 与 get_node("AnimatedSprite").play() 相同。$ 返回相对于当前节点路径处的节点,如果找不到该节点,则返回 null。由于 AnimatedSprite 是当前节点的子项,因此我们可以使用 $AnimatedSprite
-
vector2可以用velocity.normalized()来进行向量单位化
-
限定位置:clamp, clamp 一个值意味着将其限制在给定范围内。eg:position.x = clamp(position.x, 0, screen_size.x)
-
AnimatedSprite类型的对象可以调用play & stop 函数
-
$AnimatedSprite.animation = "walk" 可以选择动画$AnimatedSprite.flip_v = false 可以垂直翻转$AnimatedSprite.flip_h = velocity.x < 0 可以水平翻转
-
$AnimatedSprite.frames.get_animation_names(),获取animateSprite中所有的动画名
-
$AnimatedSprite.animation = mob_types[randi() % mob_types.size()]设置动画
-
如果希望每次运行场景时生成的“随机数”都不同,则必须使用 randomize()。我们将在 Main 场景中使用 randomize()
-
可以使用rand_range(a,b)来生成a,b之间的数字
-
add_child(),用于向当前实例动态添加物品
-
VisibilityNotifier2D,信号:screen_exited,会在物体离开屏幕时触发
-
修改字体:Label->themeOverrides->fonts->font->new DynamicFont
-
hide()函数可以隐藏当前实例
-
信号相关
-
定义信号:signal hit,指明某种对象会向外界触发的信号
-
触发信号:emit_signal("hit")
-
信号还可以选择声明一个或多个参数,signal hitb(old,new)
-
安全的修改属性:$CollisionShape2D.set_deferred("disabled", true),如果在引擎的碰撞处理过程中禁用区域的碰撞形状可能会导致错误。使用 set_deferred() 告诉 Godot 等待可以安全地禁用形状时再这样做。
-
# 动态链接信号
# 方法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")
angular2 官方demo heroApp
最近学习angular2,于是从官网的hero例子开始学习。经过几番周折终于完成了这个例子。收益匪浅。个人建议在开始学习例子前可以先了解一些概念,模块,组件,装饰器.....,有助于写代码时候的逻辑。说一下我在学习时遇到的问题:
1.首先附上中文的官方教程链接:https://www.angular.cn/tutorial
2.在创建项目时不要用"快速上手"这个上面的教程,因为这个教程创建的项目没有systemjs这个库后期会报错,也没有systemjs.config.js这个文件,后期自己在配置有点麻烦烦。我们采用“开发环境”:https://www.angular.cn/guide/setup,这个教程用git创建新的项目,同时按步骤删除不需要的文件。
3.由于初步认识angular2 所以在学习时基本是按步骤敲代码,自己的思维很少,多注意拼写错误。
4.附上我自己写的GitHub链接,满意请给一个star,[email protected]:lihui13603981029/heroApp.git 下载后执行npm install 安装库,然后执行npm start 项目就可以运行了。npm 安装方法 网上很多,可以自己百度。常用的安装node的方法,因为安装node就同时安装了npm。
以上是关于godot常用的一些概念组件(整理于官方教程)的主要内容,如果未能解决你的问题,请参考以下文章
COCOS CREATOR 系列教程之二脚本开发篇&事件监听常用函数等示例整合
COCOS CREATOR 系列教程之二脚本开发篇&事件监听常用函数等示例整合