Topwo博客
首页
博客
项目
cocos2dx 屏幕适配采用ShowAll策略导致黑边的解决方案
Cocos
2021-09-27
游戏在屏幕适配中采用ShowAll策略在不同分辨率下保持设计画面比例,固定了设计分辨率大小,使得设计和制作不再考虑适配问题。 在制作上可以使用具体的数值摆放精灵位置,不会因为实际屏幕大小宽高比而使内部元素相对位置关系出现混乱。 但是采用showall必然会导致四周出现黑边的情况,下面使用图片填充黑边,解决这个问题。 ```cpp #include "EdgeMaskLayer.h" USING_NS_CC; EdgeMaskLayer * EdgeMaskLayer::create() { EdgeMaskLayer *ret = new (std::nothrow) EdgeMaskLayer();
阅读原文>>
getCacheDir、getFilesDir、getExternalFilesDir、getExternalCacheDir的作用
Android
2021-09-27
etCacheDir()方法用于获取/data/data//cache目录 getFilesDir()方法用于获取/data/data//files目录 应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。 大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。 这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。 如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢? 通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据 通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
阅读原文>>
Charles WebSockets抓包
其他
2021-09-27
### 使用工具与前提: 1. mac电脑 2. Charles 4.0+ (我是用的是Charles 4.2.5) 3. 一台ios设备(需要跟踪的设备) ### 配置: #### A:打开Charles->Proxy->Proxy settings 这里我们将SOCKS Proxy打开配置如下图: #### B:配置需要监听的设备:
阅读原文>>
SmartPush
IOS
2021-09-27
推送测试工具: [https://github.com/shaojiankui/SmartPush](https://github.com/shaojiankui/SmartPush) 1. 下载后,在Xcode运行 2. 导入.cer证书,若是p12证书,可先安装在钥匙串,重新导出,再导入工具,注意使用与app相同的证书 3. 获取设备device token,注意:卸载,安装后token改变 4. 写入推送内容,已写好事例 5. 选择环境 6. 连接服务器,若证书错误,此处会报错 7. 推送
阅读原文>>
pbxproj分析
IOS
2021-09-27
每种IDE都有自己特定的工程结构,Xcode也不例外, 它的工程描述文件都在.codeproj中, 这是一个目录, 里边包含一个主要的文件:project.pbxproj。 大家对这个文件都不会陌生, 每次合并代码的时候, 最担心的噩梦就是这个文件的冲突。要避免或者解决这些冲突的第一步, 就是先了解这个文件的结构。 ### project.bpxproj project.pbxproj其实就是一个JSON, 只不过带上了一些注释,便于理解而已。为了简单, 我们忽略掉一些无关紧要的字段, 我们发现, 这个JSON其实是一个树形结构: project.pbxproj主要包含两个子节点:objects 和 rootObject. objects是包含所有节点的字典, rootObject指向objects中的PBXProject节点。 ### PBXProject 从上图可以看到, 这个节点有四个主要节点(子树):
阅读原文>>
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
阅读原文>>
首页
上一页
25
下一页
尾页
文章推荐
cocos2dx 屏幕适配采用ShowAll策略导致黑边的解决方案
2021-09-27
getCacheDir、getFilesDir、getExternalFilesDir、getExternalCacheDir的作用
2021-09-27
Charles WebSockets抓包
2021-09-27
SmartPush
2021-09-27
pbxproj分析
2021-09-27