代码、游戏、以及有趣的故事
不知为何自己写 Unity
还有一点想吐槽的是,这两家推荐的默认 IDE 是真难用啊。
Unity 推荐 VS 和 VSCode,前者体积太大,且要在安装 Unity 时同时下载配置,如果你安装时没配置,使用体验会遭很多。后者,轻巧但依赖插件,而且这破插件还经常掉,连基本的语法提示都掉没了,只能查着文档看着视频敲,那代码写得我真是汗流浃背啊。
靠北的,Godot 那就更是个乐色,原生内置的纯纯是个残废,狗都不用!!!
其他主流 IDE 又普遍不支持 Godot 或也是半残废支持。
最后还得是 jetBrains 的 Rider!完美支持 Unity 和 Godot,用起来也比其他的用起来舒服多了。
之前吐槽你内存占用高、配置冗余;我承认其实是我的问题。
总之,你知道的,我一直是 jetBrains 全家桶的忠实用户!!!
企鹅的幽默后台系统,只是录个静态资源,非得把全库的资源对象拉回来
页面也有问题,请求数据时,任意操作一下键盘直接中断请求,又因为请求是嵌套的,所有请求的数据都会丢失
只能说相当炸裂了,哪位神通开发的,非得这样折磨人啊
补个之前关于中文字符串处理的漏。
之前在关于 go 判断字符串中汉字,说过可以用内置的 unicode 包的 Han 处理集去进行判断处理,但也补了一句这个处理集可能处理的不全面;今天在 Javascript 处理类似问题时,心血来潮想对比一下各语言的处理情况,看了一下 Unicode 的汉字编码范围和 go 的源码里支持的汉字范围,发现其实基本都覆盖到了。
但还是要说一下,汉字目前保守都超十万了,Unicode也是不能完美支持的。
撤销之前错误提交的 Commit
# 重置暂存区的指定文件,与上一次 commit 保持一致,但工作区不变
git reset [文件路径]
# 重置暂存区与工作区,与上一次 commit 保持一致
git reset --hard
# 重置当前分支的指针为指定 commit,同时重置暂存区,但工作区不变
git reset [commit id]
# 重置当前分支的 HEAD 为指定 commit,同时重置暂存区和工作区,与指定 commit 一致
git reset --hard [commit id]
# 重置当前 HEAD 为指定 commit,但保持暂存区和工作区不变
git reset --keep [commit id]
# 新建一个 commit,用来撤销指定 commit 后者的所有变化都将被前者抵消,并且应用到当前分支
git revert [commit id]
# 暂存操作
# 只暂存被追踪的文件
git stash
# 暂存所有文件并添加说明
git stash [save '说明信息'] [-u]
# 查看 stash 列表
git stash list
# 取出最近一次的 stash
git stash apply
# 取出 stash 列表里对应数字的暂存
git stash apply 数字
# 取出并删除最近一次的 stash
git stash pop
# 清空所有 stash
git stash clear
feat : 新功能、新特性
fix : 修改 bug
perf : 更改代码,以提高性能(在不影响代码内部行为的前提下,对程序性能进行优化)
refactor : 代码重构(重构,在不影响代码内部行为、功能下的代码修改)
docs : 文档修改
style : 代码格式修改, 注意不是 css 修改(例如分号修改)
test : 测试用例新增、修改
build : 影响项目构建或依赖项修改
revert : 恢复上一次提交
ci : 持续集成相关文件修改
chore : 其他修改(不在上述类型中的修改)
release : 发布新版本
workflow : 工作流相关文件修改
iPhone X 以上手机添加安全距离
@mixin safe-area($direction, $value) {
@if not index(top right bottom left, $direction) {
@error '$direction 必须为 `top`, `right`, `bottom`, `left`';
}
@if $value {
padding-#{$direction}: $value;
padding-#{$direction}: calc(constant(safe-area-inset-#{$direction}) + #{$value});
padding-#{$direction}: calc(env(safe-area-inset-#{$direction}) + #{$value});
} @else {
padding-#{$direction}: constant(safe-area-inset-#{$direction});
padding-#{$direction}: env(safe-area-inset-#{$direction});
}
}
写一个只需要 HTML + CSS 就能实现的圆形精度条;
为了方便这里使用了 SCSS,使用原生 CSS 也是可以的,但就是冗余代码会比较多。
<div class="progress" data-progress="75">
<!-- ... -->
</div>
.progress {
position: relative;
width: 120px;
height: 120px;
border-radius: 50%;
&::before { // 内圆心
content: '';
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 80%;
height: 80%;
background: #ffffff;
border-radius: 50%;
}
&::after {
content: '0%';
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
color: #38b7ff;
}
@for $i from 1 through 100 {
&[data-progress="#{$i}"] {
// 第一个 color 控制进度条的颜色,第二个 color 控制进度条的背景色
background: conic-gradient(#38b7ff calc(#{$i} * 1%), #F5F5F5 0);
&::after { content: '#{$i}%' }
}
}
}
这样的写法比较简单,适合一些比较简单固定的场景。
HLS是最常见的视频流媒体协议,HLS是一种自适应流媒体技术,可以根据用户的设备和网络条件对播放媒体内容,以获得最佳播放性能。
Nginx RTMP是一个Nginx插件,支持将RTMP和HLS流添加到媒体服务器。以ubuntu为力,下面介绍如何安装使用nginx Rtmp 插件的步骤。
# 更新
apt-get update
# 安装依赖
apt-get install -y git build-essential ffmpeg libpcre3 libpcre3-dev libssl-dev zlib1g-dev
# 下载RTMP模块
git clone https://github.com/sergey-dryabzhinsky/nginx-rtmp-module.git
# 下载解压
wget http://nginx.org/download/nginx-1.17.6.tar.gztar -xf nginx-1.17.6.tar.gzcd nginx-1.17.6
# 拷贝一份nginx配置文件出来,准备写配置文件
mv /usr/local/nginx/conf/nginx.confnano /usr/local/nginx/conf/nginx.conf
worker_processes auto;
events {
worker_connections 1024;
}
# RTMP configuration
rtmp {
server
{
listen 1935;
# Listen on standard RTMP
portchunk_size 4000;
application show
{
live on;
# Turn on HLS
hls on;
hls_path /mnt/hls/;
hls_fragment 3;
hls_playlist_length 60;
# disable consuming the stream from nginx as rtmpdeny
play all;
}
}
}
http {
sendfile off;
tcp_nopush on;
directio 512;
default_type application/octet-stream;
server {
listen 8080;
location / {
# Disable cache
add_header 'Cache-Control' 'no-cache';
# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';
# allow CORS preflight requests
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
types {
application/dash+xml mpd;
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /mnt/;
}
}
}
# 启动
/usr/local/nginx/sbin/nginx
# 测试
ffmpeg -re -i example-vid.mp4 -vcodec libx264 -vprofile baseline -g 30 -acodec aac -strict -2 -f flv rtmp://localhost/show/stream