【记录贴】小游戏处女作-wind扫雷,持续更新,谢谢支持

个人开发者求支持。。。

经验分享/开发记录:
【cocos creator引擎】
1、屏幕适配
var canvas = this.node.getComponent(cc.Canvas);
var size = canvas.designResolution;
var cSize = cc.view.getFrameSize();
if (cSize.width/cSize.height >= size.width/size.height){
canvas.fitWidth = false;
canvas.fitHeight = true;
}else{
canvas.fitWidth = true;
canvas.fitHeight = false;
}
canvas.alignWithScreen();
2、声音
支持动态加载:
var url = cc.url.raw(“resources/audio/”+sName+".mp3");
cc.audioEngine.play(url, false, 1);
官方的建议是使用cc.AudioSource,地址:http://docs.cocos.com/creator/manual/zh/audio/audio.html,不支持动态加载
3、tileMap地图
下载地址/Mac:http://www.pc6.com/mac/217810.html
优势:资源、性能消耗小
使用:使用tiled制作csv文件的地图,直接拖到编辑器的层级管理器中


常用接口:
gid: 图快中元素的索引,从1开始计数
iR:列数,从0开始计数
iL:行数,从0开始计数
左上为0行0列
this.iR = this.iL = 0;
this._tiledMap = this.node.getComponent(‘cc.TiledMap’);
this._layerLab = this._tiledMap.getLayer(“lab”);
var gid = this._layerLab.getTileGIDAt(this.iR, this.iL);
this._layerLab.setTileGIDAt(gid, this.iR, this.iL);
//tilemap中左下为(0, 0)
//正常坐标转换成tilemap坐标
var touchPos = event.touch.getLocation();
var nPos = this.node.convertToNodeSpace(touchPos);
实例:

【微信小游戏】
1、软件著作权
http://ry365.com.cn/software/v2/order/index
2、微信小游戏常用api
2.1 判断是否微信api: if (window.wx){};
2.2 授权、获取用户头像、名字
wx.getUserInfo({
success: function (res) {
GLB.wxUserInfo = res.userInfo;
},
fail: function (argument) {
wx.getSystemInfo({
success: function(data) {
GLB.getUserInfoBtn = wx.createUserInfoButton({
type: ‘text’,
text: ‘授权’,
style: {
left: data.screenWidth * 0.2,
top: data.screenHeight * 0.5,
width: data.screenWidth * 0.65,
height: data.screenHeight * 0.07,
lineHeight: data.screenHeight * 0.07,
backgroundColor: ‘#fe714a’,
color: ‘#ffffff’,
textAlign: ‘center’,
fontSize: data.screenHeight * 0.05,
borderRadius: 8
}
});
GLB.getUserInfoBtn.onTap(function(res) {
if (GLB.isClickCd) {
return;
}
GLB.isClickCd = true;
setTimeout(function() {
GLB.isClickCd = false;
}, 1000);
GLB.wxUserInfo = res.userInfo;
GLB.getUserInfoBtn.hide();
});
}
});
},
})
2.3 微信游戏圈
this.btn = wx.createGameClubButton({
icon: ‘green’,
style: {
left: 20,
top: 20,
width: 50,
height: 50,
}
});
this.btn.show();
2.4 banner广告
var systemInfo = wx.getSystemInfoSync();
this.bannerAd = wx.createBannerAd({
adUnitId: 'adunit-XXX’,
style: {
left: 0,
top: systemInfo.windowHeight - 144,
width: 720,
}
});
var self = this;
this.bannerAd.onResize(res => {
self.bannerAd.style.top = systemInfo.windowHeight - self.bannerAd.style.realHeight
})
this.bannerAd.show();
2.5 激励式广告
var self = this;
this.videoAd = wx.createRewardedVideoAd({
adUnitId: 'adunit-XXX’
})
this.videoAd.onClose(res => {
if (res && res.isEnded || res === undefined){
// 成功回掉 callback();
}else{

}

})
self.videoAd.show()
.catch(err => {
self.videoAd.load()
.then(() => self.videoAd.show())
})
2.6 微信分享
wx.shareAppMessage({
title: “吃老子一个雷!”,
imageUrl: canvas.toTempFilePathSync({
destWidth: 500,
destHeight: 400
})
});

【服务器插件】
matchvs插件:http://www.matchvs.com/service?page=creatorStart

3赞

【发布安卓】
1、ndk-r18无效
2、发布界面:都要选,否则apk无法打开;
3、修改app图标和名字:构建后,在proj.android-studio目录下,

res目录下5个文件内
4、修改versionCode和versionName:打开build.gradle文件,找到如下代码,修改versionCode和versionName
参考:https://blog.csdn.net/Ling_cmd/article/details/82380950
5、编译生成apk

遇到问题:无法监听安卓手机返回键

taptap:https://www.taptap.com/app/82926

优秀优秀,支持支持

免费收录小游戏!

跳转路径是什么。。。

服务器踩坑记录:最终用的,阿里云 java netty WebSocket,微信只支持websocket的ssl,需要在微信小游戏后台-开发-开发设置中,添加websocket域名;

阿里云购买地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=dbolwl71&utm_source=dbolwl71

申请免费SSL证书:依次选择产品与服务——域名与网站(万网)——域名——选中要申请SSL证书的域名,点击管理——免费开启SSL证书——单域名免费证书——根据提示申请即可——下载nginx的证书;

安装nginx:阿里云nginx安装详细过程 - ChiChengIT的专栏 - CSDN博客

启动nginx:/usr/local/nginx/sbin/nginx,路径异常报错进行连接

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1

ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

扩展:

nginx配置详解:Nginx配置详解 - 张龙豪 - 博客园

nginx查看并发链接数:Nginx查看并发链接数 - Loger - CSDN博客

nginx日志分析工具:nginx日志分析工具 goaccess-nginx

解析日志成网页:goaccess -f access.log -c -a > log.html,需先在~/.goaccessrc写入date_format %d/%b/%Y:%T %z

log_format %h - - [%d] “%r” %s %b “%R” “%u”

websocket原理:Ovear:WebSocket 是什么原理?为什么可以实现持久连接?

错误码大全:常见 HTTP/FTP/WebSocket 错误代码大全

结束扩展

将下载的证书拷贝到/root/ssl路径下,包含xx.key和xx.pem两个文件,vi /usr/local/nginx/conf/nginx.conf,加入

server {

listen 443 ssl;

listen [::]:443 ssl;

server_name localhost;

ssl_certificate “/root/ssl/xx.pem”;

ssl_certificate_key “/root/ssl/xx.key”;

ssl_session_cache shared:SSL:1m;

ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;

ssl_prefer_server_ciphers on;

location / {

proxy_pass http://localhost:port;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection “upgrade”;

}

}

其中localhost:port对应本地开启的websocket的服务,完成websocket的wss通信

1赞

游戏已经开源Wind扫雷-github,并且持续更新中。。。

mark

插旗有bug吧,给方块插旗后,点它周边的某些数字方块(和周边旗帜数量相等的数字方块)还能触发排雷 / 踩雷。

扫雷就是这样的,首页有规则

:sweat_smile:

你这个ui真的是太丑了。。

:joy:

老哥 我是腾讯云的ssl证书 改了nginx.conf文件 这句话会报错 localhost我用的自己服务器名

Mark,,

port要改成你的端口号,比如输入8848

Mark

请问 广告 显示之后 调用hide 还是无法隐藏 是什么原因呢?