Topwo博客
首页
博客
项目
其他
H5游戏引擎的选择
其他
2021-09-27
HTML5,新的Web标准在2014年10月份发布,旨在让浏览器上运行的页面内容和互动更加丰富。许多之前需要插件完成的事情,标准都以简洁的形式予以支持。各大浏览器都在近几年都开始支持H5,Chrome、Safari、IE、腾讯等。过去两年基于H5开发的游戏也不胜枚举,放弃了之前的基于Flash的页游方式,如今跨平台跨设备变得更加便捷,加上硬件性能的提升,基于Web的应用和游戏估计会越来越多。 ## 1.HTML5为游戏开发提供了什么? ### 三大核心标准: #### Canvas:画布元素可以使用Javascript脚本动态在其上绘制2D的图形和图像。一些简单的二维游戏可以直接用时Canvas渲染即可。操作Canvas的脚本接口,和Windows下的图像接口GDI非常类似。 #### WebGL:WebGL是基于OpenGL ES 2.0制定的硬件图像接口标准,OpenGL ES则是OpenGL嵌入式设备的标准,开放的OpenGL和Windows下DirectX,还有最新的Vulcan都是需要硬件支持的。WebGL标准意味着可以在Web页面中不借助住插件的情况下,使用GPU来绘制2D、3D的图形和图像。这应该是基于H5进行游戏开发的最大福音。 #### WebSocket:基于Web的全双工通信方式。之前基于HTTP实现全双工通信,比较麻烦并且低效。有了WebSocket,基于Web的游戏可以非常方便地和游戏服务器进行通信。 ### 其他相关标准: #### WebStorage: 旨在代替之前的Cookie方式,一种新的方式来存储浏览器和网页服务器交互的中间数据,支持全局存储和一次性会话存储。 #### GeoLocation : Web也可以方便地获得设备的地理位置信息,使得基于位置开发LBS的应用和游戏成为可能。 #### TouchEvents : 移动设备多以触屏方式进行操作,H5对其触发的事件也进行了支持。
阅读原文>>
PM2 常用命令
其他
2021-09-27
```shell $ pm2 start app.js # 启动app.js应用程序 $ pm2 start app.js -i 4 # cluster mode 模式启动4个app.js的应用实例(4个应用程序会自动进行负载均衡) $ pm2 start app.js --name="api" # 启动应用程序并命名为 "api" $ pm2 start app.js --watch # 当文件变化时自动重启应用 $ pm2 start script.sh # 启动 bash 脚本 $ pm2 list # 列表 PM2 启动的所有的应用程序 $ pm2 monit # 显示每个应用程序的CPU和内存占用情况 $ pm2 show [app-name] # 显示应用程序的所有信息
阅读原文>>
Linux下使用git命令及github项目
其他
2021-09-27
### 在linux下搭建git环境 #### 1、创建Github账号,[https://github.com](https://github.com) #### 2、Linux创建SSH密钥: `ssh-keygen` ##一直默认就可以了 #### 3、将公钥加入到Github账户信息Account Settings->SSH Key #### 4、测试验证是否成功。 `ssh -T git@github.com` Hi someone! You've successfully authenticated, but GitHub does not provide shell access. ### 同步github到本地
阅读原文>>
Linux源码安装过程中选项—prefix的作用
其他
2021-09-27
#### 在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件除了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式。 #### 原因是: (1)没有类似rpm那样让人恼火的包依赖关系。 (2)源码安装灵活自由,适用于不同的平台,维护也十分方便。 #### 源码的安装一般由3个步骤组成: 配置(configure)、编译(make)、安装(make install)。 具体的安装方法一般作者都会给出文档,这里主要讨论配置(configure)。 Configure是一个可执行脚本,它有很多选项,使用命令./configure –help输出详细的选项列表,如下:
阅读原文>>
移动客户端与服务端Session那点秘密
其他
2021-09-27
众所周知,做过Web开发的小伙伴可能知道,在浏览器向服务器发一个请求,服务器端会为当前的访问者创建一个session会话,随着浏览器的关闭而会话结束。但是移动客户端咋整呢(IOS/Android啥的)。鄙人研究了一番,发现IOS/Android用原生接口发请求最大滴特点是每一次建一个会话,这样登录功能也就基本废了。登录功能的意义是将用户身份验证成功的信息存储在session里,结果每一次请求一个新的session这可不OK啊。 那么如何保证客户端的登录时创建的session在后续的接口请求中都能够行之有效的为客户端提供会话的操作,比如用户信息实体的存放,用户权限功能菜单的存放啥的。首先来科普一个概念:Cookies,不懂的自己百度,还有一个比较流行的移动端开发概念access_token,做过微信开发的应该都懂,不懂自己百度。 浏览器的工作原理也是基于cookies,这也就能解释每一次为何清空cookie后网站需要重新登录。浏览器访问服务端时,服务端在响应信息里包含了cookie信息,这个cookie里就有sessionId,这个sessionId会被浏览器自己缓存在本地cookie里,后续访问该网站的一切请求时都会自动在HTTP请求头Header里带着cookie信息。因此,服务器通过cookie里的sessionId来判断当前访问者的身份,并且从会话集合里匹配当前sessionId所对应的会话对象。 再说说另外一个概念access_token令牌,这个是自己约定的,根据开发需要。比如有这样的一个场景:用户登录请求,用户登录时,会带着用户名name和密码pwd来访问登录接口。如果服务端确认该用户是合法的,那么咱们应该由服务端生成一个access_token,保存在服务端的session会话里,并且将这个access_token返回给客户端。 OK,到这里,客户端总共获取到了两个东西,包含有sessionId的cookie和access_token,有了这两个东西,客户端后续在请求服务端的任何一个接口时,需带着access_token和Cookie即可。服务端会通过cookie识别你属于哪个session,通过access_token判断你是否合法,此次登录是否过期(服务端说了算)。上代码: ```java
阅读原文>>
shell——tr的用法
其他
2021-09-27
### tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换。 语法:`tr [–c/d/s/t] [SET1] [SET2]` SET1:字符集1 SET2:字符集2 -c:complement,用SET2替换SET1中没有包含的字符 -d:delete,删除SET1中所有的字符,不转换 -s:squeeze-repeats,压缩SET1中重复的字符 -t:truncate-set1,将SET1用SET2转换,一般缺省为-t ### 1、去除重复的字符
阅读原文>>
解决shell脚本遍历带空格的文件/文件夹名
其他
2021-09-27
#### 由于shell数组默认拿空格当分隔符,所以通过临时改变数组分隔符的方式,可以解决遍历带空格的文件/文件夹名的问题。至于分隔符可以选择文件/文件夹名不可以使用的换行符\n,代码如下: ```shell #临时改变数组分隔符 OLD_IFS="${IFS}" IFS=$'\n'#这里特别注意,一定要这么写,有疑惑的可以看一下这篇文章:IFS的使用 for file in `ls`; do echo "${file}" done IFS="${OLD_IFS}"
阅读原文>>
shell中的特殊变量IFS的使用,以及其值为'\n'
其他
2021-09-27
在shell中使用到for循环时,是通过IFS同样也是来定义分隔符。如果要指定多个IFS字符,只要将他们在赋值行串起来就行。如下: ```shell IFS=$'\n':;" ``` 这个赋值会将换行符、冒号、分号和双引号作为字段分隔符。如何使用 IFS 字符解析数据没有任何限制。那么下面三个的区别是什么呢? ```shell IFS='\n' #将字符\和字符n作为IFS的换行符。 IFS="\n" #与上面一样。 IFS=$'\n' #正真的使用换行符做为字段分隔符。
阅读原文>>
shell如何使目录下的文件按文件大小排序
其他
2021-09-27
### 在目录下运行:`ls -l|sort -n -k5`
阅读原文>>
shell里读取Json数据
其他
2021-09-27
#### 推荐python方法,通过引用python方法来更方便的解析。 ### 一、json字符串 ```shell echo '{"hostname":"test","domainname":"example.com"}' | python -c 'import json,sys;obj=json.load(sys.stdin);print obj[0]["hostname"]' ``` ### 二、json文件 ```shell cat file.json | python -c "import json; import sys; obj=json.load(sys.stdin); print obj['province'][1]['name'].encode('utf-8')" ```
阅读原文>>
首页
上一页
6
下一页
尾页
文章推荐
H5游戏引擎的选择
2021-09-27
PM2 常用命令
2021-09-27
Linux下使用git命令及github项目
2021-09-27
Linux源码安装过程中选项—prefix的作用
2021-09-27
移动客户端与服务端Session那点秘密
2021-09-27