写博文
1 markdown编辑器Typora安装略 2 OSS图床配置云存储不是必须的,担心费用可以使用自建云存储,比如MinIO。 OSS是阿里云的对象存储服务,最低费用9¥/年,腾讯云、华为云等都有对应的对象存储服务,可以根据自己喜好选择,配置方法基本一致。 注意:一定!一定!要注意保护好唯一标识!桶名、服务器IP、CDN域名、accessKeyId、accessKeySecret! 1 创建bucket功能按需开通 没使用CDN的时候,需要匿名访问,把权限设置为公共读 后面使用CDN访问,就把权限设置为私有读写 2 创建子用户点右上角头像——AccessKey管理——开始使用子用户AccessKey 一定不要嫌麻烦而用主账号的AccessKey! 注意!点击确定之后出现的accessKeySecret只会在这时候出现一次,务必保存下来,之后无法获取! 3 给子用户OSS权限点击添加权限 选择OSS权限 4...
nodejs
1 Nodejs介绍1 什么是Nodejs Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,可以使 JavaScript 运行在服务器端。 2 如何安装nodejs 打开官网https://nodejs.org/en下载对应操作系统的 LTS 版本。 双击安装包进行安装,安装过程中遵循默认选项即可(或者参照https://www.runoob.com/nodejs/nodejs-install-setup.html )。安装完成后,可以在命令行终端输入 node -v 和 npm -v 查看 Node.js 和 npm 的版本号。 定义一个app.js文件,cmd到该文件所在目录,然后在dos上通过 node app.js 命令即可运行 app.js 1234567function sum(a,b){ return a+b;}function main(){ console.log(sum(10,20))}main() 2 npm 配置和使用1...
Godot基础
1 节点继承关系2 脚本生命周期 创建节点 把节点加到树中 12345678910111213141516171819202122232425262728293031323334extends Sprite2Dvar jishiqi:float = 5;#节点添加到节点树的时候调用func _enter_tree() -> void: #先调用父节点,再调用子节点 print("enterTree")# Called when the node enters the scene tree for the first time.# 节点全部加载好后调用,所以比上面个方法晚一点,是冒泡调用func _ready() -> void: #先调用子节点,再调用父节点 print("ready")# Called every frame. 'delta' is the elapsed time since the previous frame.func _process(delta: float) ->...
搭建hexo个站
1. 安装前的准备安装 Hexo 相当简单,只需要先安装下列应用程序即可 Node.js (本次使用 Node.js 22.14.0) Git 2. 安装Hexohexo官网:https://hexo.io/ 所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。 1234567891011121314151617#安装npm install hexo-cli -g#初始化npx hexo init buxianxian#进入项目cd buxianxian#安装依赖npm install#启动服务npx hexo server#查看hexo版本npx hexo -v 3. 运行hexo1npx hexo cl && npx hexo g && npx hexo s 分别对应清除生成的静态文件,生成新的静态文件,启动项目 4. 访问本地访问http://localhost:4000/ 5....
ES6
1. es6的介绍 ECMAScript 6,简称ES6,是JavaScript语言的一次重大更新。它于2015年发布,是原来的ECMAScript标准的第六个版本,大大提升了JavaScript的开发体验。 2 es6的变量和模板字符串 ES6 新增了let和const,用来声明变量,使用的细节上也存在诸多差异 let 和var的差别1、let有块级作用域,非函数的花括号遇见let会有块级作用域,也就是只能在花括号里面访问。 2、let 不能重复声明 3、let不会预解析进行变量提升(先声明,在使用) 4、let 定义的全局变量不会作为window的属性 5、let在es6中推荐优先使用 123456789101112131415161718192021222324252627<script> //1. let只有在当前代码块有效代码块. 代码块、函数、全局 { let a = 1 var b = 2 } console.log(a); // a is not defined ...
Godot游戏开发日志-19
1 蝙蝠随机游荡新建Node2D节点WanderController,保存到enemies目录下,用来保存小怪游荡的初始位置 建一个一次性计时器,勾选一次性和自动开始,等待时间为1 蝙蝠游荡逻辑,WanderController.gd 12345678910111213141516171819202122232425262728293031extends Node2D@export var wander_range:int = 32#小怪开始游离位置@onready var start_position = global_position#游离目标位置@onready var target_position = global_position@onready var timer: Timer = $Timer#不加开始时不会移动,因为@onready var target_position = global_positionfunc _ready() -> void: update_target_position()func...
Godot游戏开发日志-18
1 镜头跟随玩家在Player节点下,新建Camera节点,运行游戏,相机就会跟随玩家 问题是,当玩家节点被摧毁,相机会重置到初始位置,而不是玩家消失的位置 2 解决节点消失,相机重置的问题把镜头移出来,添加RemoteTransform2D节点,RemoteTransform2D节点作用是,让指定节点跟随这个节点,指定相机跟随,这样,当RemoteTransform2D跟随玩家移动时,相机也会跟随玩家,当玩家节点消失,镜头不会重置到初始位置 3 UI跟随使用CanvasLayer节点,将UI节点挂载到它下即可
Godot游戏开发日志-17
1 小怪软碰撞新建一个Area2D节点softCollsion,挂载脚本soft_collsion.gd,添加碰撞形状 脚本逻辑: 12345678910111213141516171819202122extends Area2Dfunc is_colliding(): #1.判断是否重叠区域 var areas = get_overlapping_areas() return areas.size() > 0 func get_push_vector(): #定义重叠区域 和 软碰撞移动方向 var areas = get_overlapping_areas() var push_vector=Vector2.ZERO #如果重叠 if is_colliding(): var area = areas[0] #移动方向 push_vector =area.global_position.direction_to(global_position) push_vector = push_vector.normalized() return...
Godot游戏开发日志-16
1 尝试基础label节点新建labelUI 2 监听玩家health123456789101112131415extends Node2D@export var max_health:int = 1@onready var health = max_health:set=set_healthsignal no_healthsignal health_changed(value)#health被设置时,set函数会被自动调用func set_health(value): health = value emit_signal("health_changed",health) if health <= 0: emit_signal("no_health") 3 方法1——数字型生命条123456789101112131415161718192021extends Controlvar hearts = 4:set = set_heartsvar max_hearts = 4:set =...
Godot游戏开发日志-15
1 全局变量stats新建场景player_stats.tscn,挂载脚本stats.gd,作为全局变量,全局自动加载 //WARN,有更好的方法 2 no_health回调获取PlayStats,一旦接收到no_health信号,回调queue_free 12var stats = PlayerStatsstats.connect("no_health",queue_free) 3 玩家属性 player节点引入hurtbox,给碰撞形状和碰撞层 实现player生命属性 123func _on_hurtbox_area_entered(area: Area2D) -> void: stats.health -= 1 给蝙蝠hitbox,给碰撞形状,给层级 4 show_hit优化show_hit有更好的方法优化,断开hurtbox的信号,把他抽取成函数 12345678910func create_hit_effect(): var effect =...





