phaser小游戏框架学习中的屏幕适配
这篇博客主要讲一下上一篇博客的右侧和底部出现的问题。就是页面会有偏移量。说一下这个产生的原因吧。
一开始在构建html页面的时候,习惯性的在页面中加了
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
加了这个,导致canvas画出的图在移动端上有些模糊,尤其是后面我们在画文字的时候,文字根本看不清楚。这个其实并不是插件的问题,也不能完全归罪于这句代码。canvas本身就会出现画出的图片模糊的问题,所以网上的方式基本都是找到设备的分辨率,让canvas依据分辨率来画图。而我在这个插件中去掉那句代码,主要是因为懒。。。然后调整canvas偏移的问题就可以了。然而事实并不是这样的。
我把代码贴一下,由于这个游戏既要在pc上运行,也要在移动端运行,样式的话,想共用一套,而且,移动端界面适配很复杂,现在大部分人用的手机是全面屏的,因此,通过一个比例关系算出来全面屏和非全面屏的区别。这样是可以解决大部分的适配问题,但仍有一个问题,就是有的手机屏幕比较宽,并且高度比较小,像这种的话,建议将界面算出来,其余的部分,可以和UI和产品沟通一下,看看可不可以增加一个统一的背景图,只针对pc和这种比较宽的手机上显示,这样基本上所有的页面适配都解决了。而我们就是采用的这种方法。
/*根据设计图和屏幕宽度的比例自动缩放图片和精灵图的大小*/
var winH = window.innerHeight
var winW = window.innerWidth console.log(winH,winW) var H5 = winH > winW var isGullScreen = winH/winW;//是否是全面屏 var canH,canW,bl; if(isGullScreen>1.9 && H5 ){//全面屏
canW = winW;
canH = winH;
}else if(H5 && isGullScreen < 1.9){ canH = winH;
canW = canH * 640 /1136;
}else{
canW = winH * 640 / 1136;
canH = winH;
} bl = canW / 640;
上述方法在后面添加文字的时候,文字也不会出现模糊的情况了。不建议在phaser的页面出现操作DOM元素的事件。除非迫不得已,因为会有很多细节的问题需要调整。
phaser小游戏框架学习中的屏幕适配的更多相关文章
- phaser小游戏框架学习(一)
这两天由于项目的需要,所以简单学了一下phaser框架. 官网:http://phaser.io/ 还有一个phaser小站,是中文的网站,但是内容不如英文文档全,大家也可以去看这个网站,需要查阅AP ...
- phaser小游戏框架学习(二)
今天继续学习phaser.js.上周写的学习教程主要内容是创建游戏场景,游戏中的显示对象,按钮对象的使用以及如何在不同屏幕大小中完美适配.这篇博客以介绍游戏榜单的渲染更新为主. 代码地址:https: ...
- 游戏框架设计中的。绑定binding。。。命令 command 和消息message 以及MVVM
游戏框架设计中的.绑定binding...命令 command 和消息message
- Python---战机小游戏,学习pygame
import pygame # 导入游戏包 pygame.init() # 导入并初始化所有pygame模块,使用其他模块之前必须先调用init()方法 print('下面是游戏代码:') # 绘制矩 ...
- Android 开发中的屏幕适配技术详解
本文主要介绍Android开发中比较头疼繁琐的一个问题-屏幕适配问题.主要从适配原因.基本核心概念.适配方法等方面介详细 介绍从而是的深入或者进一步对Android屏幕适配技术的掌握和理解. 真题园网 ...
- 关于Unity中的屏幕适配
一.Game视图的屏幕分辨率可以先自定义添加,供以后选择,以下是手游经常用到的分辨率: 1.1136X640,iPhone5 2.1920X1080,横屏,主流游戏都是这个分辨率 3.1080X192 ...
- Phaser小游戏
本来今天打算阅读AngularJs源代码的,但是上头下来了任务,做个小霸王上面的那种接金蛋的游戏,想象最近系统的学习了一下gulp和之前熟悉了一遍的Phaser,于是就打算用这两个东西一起来做个dem ...
- ci框架学习中注意的事项
视图: 加载视图:$this->load->view('name'); 一次可以加载多个视图,如: public function index() { $data['page_title' ...
- 微信小程序组件学习中
一.轮播图 wxml代码: <swiper indicator-dots="true" autoplay="true" duration="10 ...
随机推荐
- MySQL 更新失效
create table t(id int not null PRIMARY key,c int default null) engine=innodb;insert into t(id,c)valu ...
- windows下socket编程:区分shutdown()及closesocket()
以下描述主要是针对windows平台下的TCP socket而言. 首先需要区分一下关闭socket和关闭TCP连接的区别,关闭TCP连接是指TCP协议层的东西,就是两个TCP端之间交换了一些协议包( ...
- linux下不用空格执行带参数的5种姿势
在搞安全的时候经常会遇到代码/命令执行,不能用空格的情况,总结了几种的绕过方法. 1.!! [root@iZ28wg1kditZ tmp]# pwd /tmp [root@iZ28wg1kditZ t ...
- 第五章 Java中锁
Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁).在Lock接口出现之前,Java程序 ...
- angular之增删改查
<!DOCTYPE html> <html lang="en" ng-app="app"> <head> <meta ...
- apache将不带www域名301重定向到带www的域名的配置方法
#强制重定向到wwwRewriteEngine OnRewriteCond %{HTTP_HOST} ^jb51.net/ [NC]RewriteRule ^(.*)$ http://www.jb51 ...
- 正则表达式 notes
nfs 网络文件系统 存储类型:块存储,对象存储,文件存储 nfs属于文件存储 crond 分钟小时日月周 命令:绝对路径 命令是由crond解释 /bin/bash a.sh */2 * * * * ...
- python学习笔记(1)python下载及运行
进入https://www.python.org/官网下载python,根据需要选择2.*或3.*版本 安装完将安装目录添加到环境变量path中 运行cmd,输入python出现版本号即配置成功 下载 ...
- group()、start()、end()、span()
- js面试题知识点全解(一作用域)
问题: 1.说一下对变量提升的理解 2.说明this几种不同的使用场景 3.如何理解作用域 4.实际开发中闭包的应用 知识点: js没有块级作用域只有函数和全局作用域,如下代码: if(true){ ...