精华内容
下载资源
问答
  • h5游戏屏幕适配方案

    2020-04-02 16:23:39
    提供h5适配方案参考

    适配需求

    主要适配刘海屏和全面屏
    所有游戏界面背景底图铺满屏幕,包括刘海屏,不留黑边
    刘海屏黑边不遮挡顶部信息栏ui,全面屏的对应置顶
    长屏幕,界面内容居中,特殊界面布局再处理

    处理方式

    程序处理,美术出图720 * 1280 ,适配长屏幕等比拉伸至满屏
    需统一位置ui统一命名,底层做统一处理。

    区分刘海屏

    1、策划可以配表,把所有机型的入网型号配成配置,直接读取,接sdk自会获取到手机型号等信息判断即可,麻烦就是得策划维护这个表。
    2、其他方式网上也有例子

    展开全文
  • h5游戏优化方案

    2019-05-10 18:31:00
    (5) 文件合并,减少request数量(多数对接平台有要求到某个阶段加载最长时间以及加载的文件大小上限,如微信平台:从开始游戏到登陆界面,加载时间需要在3-5秒内完成,加载大小上限5M),对于app游戏移植到H5是很蛋疼的设定...

    粗略整理几个思路:

    (1)  整理图集,将公用的图集放到同一张集中,其他的按照使用场景进行加载

    (2)  预加载,在新手引导播放四格漫画和首战的时候进行加载较大的图集

    (3)  处理图片资源,大图变小,降低清晰度等

    (4)  cdn设置GZIP,可以对指定文件进行压缩传输

    (5)  文件合并,减少request数量(多数对接平台有要求到某个阶段加载最长时间以及加载的文件大小上限,如微信平台:从开始游戏到登陆界面,加载时间需要在3-5秒内完成,加载大小上限5M),对于app游戏移植到H5是很蛋疼的设定

    转载于:https://www.cnblogs.com/czql/articles/10846084.html

    展开全文
  • 微信H5游戏界面网络营销方案.pptx
  • H5游戏前端支付参考处理方案

    千次阅读 2020-09-18 13:15:49
    该文档用作前端处理H5游戏支付参考文档,游戏引擎为egret H5游戏支付不同于web支付,H5只有单界面,不能通过路由寻址的方式跳转到对应的游戏界面 因此,在支付中需要注意要在不打断游戏进程的情况下完成支付拉起,这...

    支付文档

    该文档用作前端处理H5游戏支付参考文档,游戏引擎为egret
    H5游戏支付不同于web支付,H5只有单界面,不能通过路由寻址的方式跳转到对应的游戏界面
    因此,在支付中需要注意要在不打断游戏进程的情况下完成支付拉起,这个时候需要对支付流程
    做特殊处理,不展示各平台的网关页面,而是从中抽取能够拉起支付的deeplink,
    通过iframe来进行重定向,从而实现拉起,注意的是不同的平台,对不同的设备,在处理上有差异
    需要单独做差异化的处理
    

    支付流程(大概)

    客户端           服务端             商户平台        支付平台
    发起订单----------------------------->-------------->统一下单
    
                    订单记录<-----------订单信息<--------
    
    获取订单数据<-------------------------
    订单数据差异化处理
    拉起支付-----------------------------------------------
    支付结果通知<-----处理支付结果<-----支付结果重定向---------
    支付结果处理
    

    手机运行平台分类(暂不包括native端)

    PC
    WEB_ANDROID
    WEB_IOS
    WEB_ANDROID_WECHAT
    WEB_IOS_WECHAT
    

    微信支付

    差异化处理(关于部分特殊浏览器的支付处理方案,在特殊问题中描述):
    PC
        展示支付二维码
    WEB_ANDROID
        抽取deepLink,iframe展示,具体见**deeplink抽取**
    WEB_IOS
        抽取deepLink,window.location.href替换,具体见**deeplink抽取**
    WEB_ANDROID_WECHAT
    WEB_IOS_WECHAT
        接通jsspi,通过微信进行支付
    

    支付宝支付

    差异化处理(关于部分特殊浏览器的支付处理方案,在特殊问题中描述)
    PC
        展示支付二维码
    WEB_ANDROID
        抽取deepLink,iframe展示,具体见**deeplink抽取**
    WEB_IOS
        抽取deepLink,window.location.href替换,具体见**deeplink抽取**
    WEB_ANDROID_WECHAT
    WEB_IOS_WECHAT
        待定
    

    deepLink抽取

    微信

    微信需要抽取deeplink的部分,平台返回的数据为微信的网关页文本,核心内容为
    
            <script type="text/javascript">
                var is_postmsg="";
                if( 0!==0 && is_postmsg=="1" )
                {
                    parent.postMessage(JSON.stringify({
                        action : "send_deeplink_fail",
                        data : {
                                    deeplink : ""
                            },
                        error : {
                            error_code : "0",
                            error_msg : "ok"
                                }
                        }), "");
                }
                if( 0===0)
                {
                    window.onload=function()
                    {
            //        var fp=new Fingerprint2();
                        //      fp.get(function(result)
                        {
                            // var fingerprint="";
                            /*         if(fingerprint!=result && fingerprint)
                            {
                            document.getElementById("errpage").innerHTML='<div class="icon_area"><i class="icon_msg warn">!</i></div> \
                            <div class="text_area"> \
                            <h2 id="111" class="title"> '+result+'缃戠粶鐜鏈兘閫氳繃瀹夊叏楠岃瘉锛岃绋嶅悗鍐嶈瘯</h2> \
                            </div>';
                            return;
                            }*/
                            var is_postmsg="";
                            if(is_postmsg=="1")
                            {
                                parent.postMessage(JSON.stringify({
                                    action : "send_deeplink",
                                    data : {
                                        deeplink : "weixin://wap/pay?prepayid%3Dwx18124723988137f5141f245333fe250000&package=1371992231&noncestr=1600404444&sign=a733c49509892bfc49cfd6299d9a87c3"
                                    }
                                }), "");
                            }
                            else
                            {
                                var url="weixin://wap/pay?prepayid%3Dwx18124723988137f5141f245333fe250000&package=1371992231&noncestr=1600404444&sign=a733c49509892bfc49cfd6299d9a87c3";
                                var redirect_url="";
                                ;
    
                                if(redirect_url)
                                {
                                    setTimeout(
                                        function(){
                                            ;
                                        },
                                        5000
                                    );
                                }
                                else
                                {
                                    setTimeout(
                                        function(){
                                            window.history.back();
                                        },
                                        5000);
                                }
                            }
                        }
                        // );
                    }
                }
            </script>
            </body>
            </html>
    

    处理方案为:

    	```
    	private handleH5Response(response: PayParam) {
    	let data = response.Parameters;
    	let lines = data.split('\n');
    	for (let line of lines) {
    		if (line != "" && line.indexOf('deeplink') != -1 && line.indexOf('weixin://wap/pay') != -1) {
    			let index = line.indexOf(":");
    			line = line.slice(index + 1, line.length)
    			line = line.split(`"`)[1]
    			line = line.split(`"`)[0]
    			return line;
    		}
    	}
    	return undefined;
    }
    ```
    

    支付宝

    支付宝支付会返回一个表单,需要把表单提交转化成post请求来获取到网关页,具体为:

    	```
    	let url = `https://openapi.alipay.com/gateway.do?charset=UTF-8`;
    	let xhr = new XMLHttpRequest()
    	xhr.open('post', url);
    	xhr.onreadystatechange = (e) => {
    		if (xhr.readyState == 4) {
    			if (xhr.status == 200) {
    				//用iframe打开
    				this.openIframe(xhr.response);
    			}
    		}
    	}
    	let fd = new FormData();
    	//这一步是解析表单里面的数据,把参数解析出来
    	let datas = data.split("<input");
    	for (let i = 1; i < datas.length - 1; i++) {
    		let params = datas[i].split("/>")[0];
    		params = params.split(" type='hidden'")[1]
    		let values = params.split(" value=")
    		let names = values[0]
    		let value = values[1]
    		let name = names.split(" name=")[1]
    		name = name.trim().slice(1, name.length - 1)
    		value = value.trim().slice(1, value.length - 1)
    		fd.append(name, value);
    	}
    	xhr.send(fd);
    ```
    

    其中,openIframe的部分实际包括两个部分
    抽取deepLink以及差异化展示
    本节重点是抽取deeplink
    通过post请求返回的页面文本核心内容为

     ```
    (function(){
        var _AP = {}
        var ua = navigator.userAgent.toLowerCase(),
            locked = false,
            domLoaded = document.readyState==='complete',
            delayToRun;
    
        function customClickEvent() {
            var clickEvt;
            if (window.CustomEvent) {
                clickEvt = new window.CustomEvent('click', {
                    canBubble: true,
                    cancelable: true
                });
            } else {
                clickEvt = document.createEvent('Event');
                clickEvt.initEvent('click', true, true);
            }
    
            return clickEvt;
        }
    
        function getAndroidVersion() {
            var match = ua.match(/android\s([0-9\.]*)/);
            return match ? match[1] : false;
        }
    
        var noIntentTest = /aliapp|360 aphone|weibo|windvane|ucbrowser/.test(ua);
        var hasIntentTest = /chrome|samsung/.test(ua);
        var isAndroid = /android|adr/.test(ua) && !(/windows phone/.test(ua));
        var canIntent = !noIntentTest && hasIntentTest && isAndroid;
        var clientBtn
        // 确定浏览器类型
        var isChrome = false;
        var isWebview = false;
        if (ua.match(/(?:chrome|crios)\/([\d\.]+)/)) {
            isChrome = true;
            if (ua.match(/version\/[\d+\.]+\s*chrome/)) {
                isWebview = true;
            }
        }
        var isOriginalChrome = isAndroid && isChrome && !isWebview;
    
        if (ua.indexOf('m353')>-1 && !noIntentTest) {
            canIntent = false;
        }
    
        // 安卓走iframe方式唤起
        if (ua.indexOf('android')>-1 && !noIntentTest) {
            canIntent = false;
        }
    
        /**
        * open client
        */
        _AP.open = function (params) {
            if (!domLoaded && (ua.indexOf('360 aphone')>-1 || canIntent)) {
                var arg = arguments;
                delayToRun = function () {
                    _AP.open.apply(null, arg);
                    delayToRun = null;
                };
                return;
            }
    
            if (locked) {
                return;
            }
            locked = true;
    
            var o;
            if (typeof params === 'object') {
                o = {
                    'ios': encodeURIComponent(JSON.stringify(params)),
                    'android': encodeURIComponent(params.dataString)
                };
            } else {
                console.error('params error, pls use JSON format!')
            }
    
            // params fault tolerance
            if (typeof o.ios !== 'string') {
                o.ios = '';
            } else if(typeof o.android !== 'string') {
                o.android = '';
            }
    
            // nonsupport Android intent
            if (!canIntent) {
                if(isAndroid) {
                    var alipaysUrl = 'alipays://platformapi/startApp?appId=20000125&orderSuffix=' + o.android +'#Intent;scheme=alipays;package=com.eg.android.AlipayGphone;end';
                }
                //fix for iOS QQ browser
                else if (ua.indexOf('mqqbrowser') > -1) {
                    var alipaysUrl = 'alipay://alipayclient/?' + o.android;
                }
                else {
                    var alipaysUrl = 'alipay://alipayclient/?' + o.ios;
                }
                //FIXME: 直接判断ios,不判断os版本号
                if ( ua.indexOf('qq/') > -1 || ( ua.indexOf('safari') > -1 && ua.indexOf('os 9_') > -1 ) || ( ua.indexOf('safari') > -1 && ua.indexOf('os 10_') > -1 ) || ( ua.indexOf('safari') > -1 && ua.indexOf('os 11_') > -1 ) || ( ua.indexOf('safari') > -1 && ua.indexOf('os 12_') > -1 ) || ( ua.indexOf('safari') > -1 && ua.indexOf('os 13_') > -1 ) || ( ua.indexOf('safari') > -1 && ua.indexOf('os 14_') > -1 ) ) {
                    var openSchemeLink = document.getElementById('openSchemeLink');
                    if (!openSchemeLink) {
                        openSchemeLink = document.createElement('a');
                        openSchemeLink.id = 'openSchemeLink';
                        openSchemeLink.style.display = 'none';
                        document.body.appendChild(openSchemeLink);
                    }
    
                    //openSchemeLink.href = alipaysUrl;
                    // oppo浏览器兼容写法
                    openSchemeLink.onclick = function() {
                        window.location.href = alipaysUrl;
                    };
    
                    // trigger click
                    openSchemeLink.dispatchEvent(customClickEvent());
                }
                else {
                    var ifr = document.createElement('iframe');
                    ifr.src = alipaysUrl;
                    ifr.style.display = 'none';
                    document.body.appendChild(ifr);
                }
                $('.J-startapp').attr('href', alipaysUrl);
            }
            //support Android intent
            else {
                var packageKey = 'AlipayGphone';
                var intentUrl = 'alipays://platformapi/startApp?appId=20000125&orderSuffix='+o.android+'#Intent;scheme=alipays;package=com.eg.android.'+ packageKey +';end';
    
                var openIntentLink = document.getElementById('openIntentLink');
                if (!openIntentLink) {
                    openIntentLink = document.createElement('a');
                    openIntentLink.id = 'openIntentLink';
                    openIntentLink.style.display = 'none';
                    document.body.appendChild(openIntentLink);
                }
    
                //openIntentLink.href = intentUrl;
                // oppo浏览器兼容写法
                openIntentLink.onclick = function() {
                    window.location.href = intentUrl;
                };
    
                // trigger click
                openIntentLink.dispatchEvent(customClickEvent());
            }
    
    
        _AP.pay = function(param) {
            _AP.open(param);
        }
        window._AP = _AP;
    })();
    
    try {
        //唤起客户端快捷参数
        var data = {"requestType":"SafePay","fromAppUrlScheme":"alipays","dataString":"h5_route_token=\"RZ42lyaFqrVMr2SudPI7WhDX5RA1iSmobilecashierRZ42\"&is_h5_route=\"true\"&need_invoke_app=\"true\""};
        window.setTimeout(function(){
            _AP.pay(data);
        }, 50);
    }catch(e){
        window.console && window.console.log('e.name:' + e.name + ';e.message:' + e.message)
    }
    ```
    

    通过代码审计,抽取核心的拼接逻辑

     ```
    private handleZfbResponse(data: string) {
    	//获取inData对象,存储的是核心的支付信息
    	let lindex = data.indexOf("inData");
    	let rindex = data.lastIndexOf("inData");
    	let response = data.slice(lindex, rindex)
    	let obj = response.split("{")[1].split("}")[0];
    	let objs = obj.split(",");
    	let inData = {
    		requestType: null,
    		fromAppUrlScheme: null,
    		dataString: null,
    	}
    	for (let param of objs) {
            //这里做了一层封装,实际上是对字符串"key":"value"类型进行kv抽取
    		let kv = HttpResponseUtil.getParamKV(param, ":");
    		let v = kv.value.trim();
    		let k = kv.key.trim();
    		k = k.slice(1, k.length - 1)
    		v = v.slice(1, v.length - 1)
    		inData[k] = v
    	}
    	//注意,datsString中有个\的转义符,实际是不需要的,需要清除
    	let str = inData.dataString;
    	let datas = str.split("\\");
    	let newStr = ""
    	for (let dt of datas) {
    		newStr += dt;
    	}
    	inData.dataString = newStr
    	//获取到inData,拼接后缀
    	let o = {
    		'ios': encodeURIComponent(JSON.stringify(inData)),
    		'android': encodeURIComponent(inData.dataString)
    	};
    
    	if (typeof o.ios !== 'string') {
    		o.ios = '';
    	} else if (typeof o.android !== 'string') {
    		o.android = '';
    	}
    	//根据不同的运行平台解析出deeplink
    	if (DeviceUtil.isAndroid()) {
    		var alipaysUrl = 'alipays://platformapi/startApp?appId=20000125&orderSuffix=' + o.android + '#Intent;scheme=alipays;package=com.eg.android.AlipayGphone;end';
    	}
    	//ios的qq浏览器,这个兼容有问题,暂时忽略
    	else if (DeviceUtil.isBrowserQQ()) {
    		var alipaysUrl = 'alipay://alipayclient/?' + o.android;
    	}
    	//ios
    	else {
    		var alipaysUrl = 'alipay://alipayclient/?' + o.ios;
    	}
    	return alipaysUrl
    } 
    ```
    

    特殊问题

    QQ浏览器问题

    1.android中,QQ浏览器从点击支付到支付拉起,过程不能超过1000ms,否则不能拉起
    解决方案:针对QQ浏览器版本,获取到deepLink之后,再做一个支付信息确定提示,借此缩短拉起支付的时间
    2.ipad中,QQ浏览器无法拉起支付,原因待定
    

    iframe参考

    ```
    	const iframe = document.createElement('iframe')
    				iframe.style.position = "absolute";
    				iframe.style.display = 'none';
    				iframe.style.zIndex = "99999";
    				iframe.style.width = "100%"
    				iframe.style.height = "100%"
    				iframe.setAttribute('name', `zfbpay`);
    				iframe.setAttribute('sandbox', 'allow-top-navigation allow-scripts')
    				iframe.setAttribute('src', data)//data为deeplink
    				document.body.appendChild(iframe)
    ```
    

    说明

    1.在抽取deeplink中,仅很朴素的针对文本做了一定的处理操作,并没有用到其他的算法之类的
    如果有好的处理思路,欢迎交流
    2.仅作为参考,不代表各个项目实际运行情况,特殊操作应按实际项目需求进行
    3.出文档的初衷是网上关于H5游戏支付处理这块的文档较少,实际操作中踩了不少的坑,故记录下处理过程
    如有不妥,欢迎交流
    
    展开全文
  • 很多企业商家在设计H5的时候,一般都会选择去参考别人的H5作品,但是大多部分作品的案例都只是简单地介绍,没有详解,所以做出来的效果也不太好,七猫网络小编给大家介绍一下H5互动营销的策划方案。 1、首先构思定位...

    很多企业商家在设计H5的时候,一般都会选择去参考别人的H5作品,但是大多部分作品的案例都只是简单地介绍,没有详解,所以做出来的效果也不太好,七猫网络小编给大家介绍一下H5互动营销的策划方案。

    1、首先构思定位
    做好定位和创意,详细了解用户的特点,包括此次活动面向哪些用户群体,他们有什么爱好,如何调动用户的积极性,设置什么样的奖品,以及以优惠券、转盘以及其他形式参与。

    2、通过多渠道宣传
    全方位预热宣传,多媒体拉人、在微博、线下、广告、官网、微信公众号、朋友圈等多方面宣传此次活动。

    3、利用活动吸引用户
    微信H5营销活动以多种方式广泛使用,目前有中奖类刮刮卡、大型转盘等,无论哪种形式,都尽量让用户以简单的方式参与。

    4、做好数据管理
    后台做好数据统计,记录活动参与者人数、中奖信息等,方便后续赠品的兑换及消费验证,就算活动正在进行中,也要立即响应客户咨询,提高用户体验。

    5、设计思维
    (1)微信互动游戏要有娱乐性
    企业可以根据自己的产品或品牌定位,制作新的游戏互动形式,而不是去模仿和抄袭,本身创新自己的微信游戏是对自己品牌的提高。
    (2互动性
    微信分享传播功能非常齐全,用户看到比较有趣的东西,就会主动与朋友圈或好友分享,大大提高了微信互动游戏和活动的传播性。但是,很多商家为了进一步加强传播性,强制性要求玩家分享朋友圈,从微信活动制作者的角度来看,是不支持这样的做法的,强制分享容易引起玩家的反感。
    (3)奖励机制,游戏获胜可以赢得商家准备的奖品,促进传播。
    如果在游戏的玩法不能带来引人注目的创新让用户分享。那么就只能通过奖品来吸引用户,来达到一个传播的效果,千万不能轻视用户的好胜心理和捡漏的心理。
    其实大家在策划方案的时候,一方面是需要获取足够多的案例作品来参考,另一方面就是需要好的H5设计团队,为你提供经验。

    展开全文
  • 随着互联网红利期消退,营销成本也是水涨船高,越来越多的企业意识到微信h5游戏营销正在成为潮流。今天,小编盘点了专业的TOM游戏团队的经典H5案例,让我们一起看看各行业到底如何做好H5游戏营销呢? 一.邮乐电商...
  • WEB开发与游戏开发的区别WEB前端的大部分工作集中在...不同抽象方式的思想和实现差异巨大,如状态管理的不同实现方式:redux / mobx / rxjs.H5游戏的开发工作主要集中在基于游戏引擎的标准开发流程实现UI设计的动画...
  • 北京是一座汇聚全国资源的城市,这里拥有众多h5游戏制作平台,例如TOM游戏等知名游戏公司均坐落于此,为不同企业制定优质的游戏营销方案。 北京h5游戏制作平台有哪些,又该如何进行选择呢?今天小编就以公司背景、...
  • 本发明涉及H5游戏技术领域,尤其涉及一种基于H5游戏的页面显示方法及系统。背景技术:H5是一系列制作网页互动效果的技术集合,即H5就是移动端的web页面。而H5游戏,可以看作是移动端的web游戏,无需下载软件即可体验...
  • 移动端h5优化方案

    2019-12-16 10:36:00
    大型重资源页面(如游戏)可使用增加Loading的方法,资源加载完成后再显示页面,但Loading时间过长,会造成用户流失。 1、可感知Loading(如进入空间游戏的Loading) 2、不可感知的Loading(如提前加载下一页) 3、...
  • H5游戏优化技巧

    2020-06-08 16:58:10
    H5游戏优化技巧优化一一.内存中的资源占用:二.减少计算量三.降低draw call1.不同图集之间渲染被打断2.相同层级中间穿插Label3.使用Mask组件会打断draw call四.使用对象池减少游戏过程中动态创建对象五.动态修改游戏...
  • 随着互联网红利日渐上升,越来越多的营销方式层出不穷,很多企业为了增加用户使用电商APP的时长,更是设计出各种好玩新颖的h5游戏,让用户在玩游戏的同时也能获得优惠奖励,提升变现能力,下面以TOM游戏为例,为大家...
  • 很多企业或商家都意识到了h5游戏引流的效益,传统的营销方式已不能满足年轻消费者的口味了,而h5轻游戏恰恰就是有利的突破口。想利用H5小游戏来做吸粉,首先要开发一款有创意的H5小游戏,其次,要有一套完整的引流...
  • H5性能优化方案

    千次阅读 2016-08-17 18:06:07
    H5性能优化意义对于一个H5的产品,功能无疑很重要,但是性能同样是用户体验中不可或缺的一环。原本H5的渲染性能就不及native的app,如果不把性能优化做起来,将极大地影响用户使用产品的积极性。用户感受当用户能够...
  • 开启云时代,银狐H5游戏云通迅框架解决方案出炉! 没有时间开发服务器? 不懂服务器开发? 还在为WEB SOCKET烦恼?还在为网络卡,负载承受能力小烦恼? 银狐H5游戏云通迅框架,集成通讯SDK和开放API,1天...
  • 而想要更多的人关注H5游戏,那么H5游戏要有趣味性,对用户来说要有吸引力,那H5游戏要怎样增加趣味性? 一、掌握游戏情感,就是商家想要通过这款H5游戏表达怎样的情感,或是引起用户产生哪些情感。因为H5游戏宣传...
  • H5游戏服务器带宽 内容精选换一换云应用类型主要应用场景包括:云手游、互动广告、互动直播、在线云APPs、互动课堂等。云手游:游戏试玩、订阅;互动社交化云游戏;云原生游戏超级APPs(突破物理手机资源约束)。互动...
  • 做好H5游戏营销要把握什么 酷顶网络科技专注于为企业和品牌提供互联网推广解决方案,通过微信推广游戏开发,H5营销游戏开发,微信推广活动,推广活动策划等业务为客户定制专属推广策略。 更多关于广州微信游戏,微信...
  • H5游戏是基于html5进行开发的游戏,例如TOM游戏等许多H5开发平台也随着H5技术的成熟应运而生,h5游戏优势在于不用下载和安装应用,可直接在手机或电脑上运行。现在不少商家会使用游戏互动的方式增加店铺流量,使用...
  • H5游戏框架设计

    千次阅读 2019-09-29 11:08:27
    当我们写出了一套自己的游戏框架之后,我们就能在以后每次开发新项目的时候,快速复用以往的经验积累。一个框架的好处就是复用性,在开发一个新项目的时候,能快速专注于新游戏的业务逻辑。我们在写游戏框架的时候,...
  • H5游戏进行节日营销案列分享 H5游戏现在多是用于营销活动,或者是节日营销,而节日营销可以说是商家营销的一个契机,用H5游戏推广活动这是比较常见的节日营销方式了。那么用H5游戏进行节日营销的案列有哪些? 五一...
  • cocos creater H5游戏优化

    千次阅读 2019-06-04 10:47:05
    H5游戏注重加载速度,让用户以最快的时间进入游戏,然后可以立即体验游戏。 H5版本的优化,大方面来说以下几点: 优化文件结构 减少请求 减小包体 减少游戏中的drawcall 具体可以细分为以下几个: 优化文件...
  • 从0到1开发H5游戏

    千次阅读 多人点赞 2018-05-09 10:24:08
    前言每个游戏犹如一部电影,它能带给我们快乐,让我们在游戏世界中释放最真...H5游戏具有即开即玩、碎片化、上手简单、易玩等特点,市面上的游戏平台包括了:微信公众号、微信小游戏、QQ玩一玩、Facebook InstantGam...
  • H5游戏开发:游戏引擎入门推荐

    千次阅读 2019-11-04 18:49:03
    试想一下,在游戏开发进行到中后期的时候,才发现项目引入的游戏引擎与需求相悖,这时候不管是重新做一些修修补补的工作或者更换游戏引擎,这都是相当耗费人力物力的一件事。为了避免这种情况的出现,...
  • H5 游戏开发

    千次阅读 2018-07-15 13:31:07
    毕竟网络上的游戏引擎良莠不齐,官网上相关资料也比较少,而选择一个适合的游戏引擎是一个项目最基础,也是很核心的一部分。试想一下,在游戏开发进行到中后期的时候,才发现项目引入的游戏引擎与需求相悖,这时候...
  • 适配方案 1 竖屏游戏 在creator界面中,选中Canvas节点,勾选Fit Width选项。同时,画布内的所有节点通过Widget组件进行相对布局即可(如:所有节点都选择底部/顶部对齐)。 2 横屏游戏 在creator界面中,选中Canvas...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,605
精华内容 2,642
热门标签
关键字:

h5游戏方案