项目经验总结[1]屏幕自适应

/// <summary>
        /// Sets the viewport.
        /// </summary>
        /// <param name="fWidth">F width.</param>
        /// <param name="fHeight">F height.</param>
        public static void SetViewport(float fWidth, float fHeight)
        {
            //--- 屏幕分辨率 ---//
            float w = (float)Screen.width;
            float h = (float)Screen.height;

            //--- 游戏制作的目标分辨率 ---//
            float destW = fWidth;
            float destH = fHeight;

            float fx = 0f;
            float fy = 0f;
            float fw = 1f;
            float fh = 1f;

            //--- 现在宽高比 不足, 即 宽度不足,高度足够,那么按照 不足的为基准,调整足够的(按新的宽度来调) ---//
            if(destW/destH > w/h)
            {
                //高度缩小 ,宽度不变为1
                fw = 1f;
                fh =  destH * w/destW / h;
                fy = (1f - fh) / 2f; //为了保证视口在屏幕中央, 需要调整视口高度
            }
            else if(destW/destH < w/h)
            {
                //宽度缩小,高度不变
                fh = 1f;
                fw = destW * h/destH  / w;
                fx = (1f - fw) / 2f;
            }

            for(int i = 0; i < Camera.allCameras.Length; i++)
            {
                Camera cam =  Camera.allCameras[i];
                cam.rect = new Rect(fx, fy, fw, fh);
            }
        }

这是一段屏幕自身应的代码,运用的是C#写的。当我们的游戏项目在不同的屏幕上运行的时候,我们都要考虑到屏幕的自适应情况,给玩家最好的体验。。。

时间: 2024-08-07 22:53:34

项目经验总结[1]屏幕自适应的相关文章

vue-cli脚手架里如何配置屏幕自适应

很多同学可能在写h5的时候,也会遇到移动端如何控制屏幕自适应问题!在移动端网页开发中,我们可以用手机淘宝的flexible.那么在vue当中,也同样可以用!接下来就介绍下如何在vue-cli配置的项目里来实现屏幕自适应首先,我们需要安装flexible库.npm i lib-flexible --save然后在项目入口文件main.js里引入lib-flexibleimport 'lib-flexible'记得配置meta标签,在index.html文件当中<meta name="view

Vue项目屏幕自适应方案

安装lib-flexible cnpm i lib-flexible -D Vue项目引入 lib-flexible. main.js: import 'lib-flexible/flexible' 安装px2rem loader cnpm i px2rem-loader -D 修改配置文件 /build/util.js: const cssLoader = { loader: 'css-loader', options: { minimize: process.env.NODE_ENV ===

移动终端屏幕自适应的一点经验

1)地球人都知道采用标签: <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-    scale=1.0,user-scalable=no;"> <meta name="apple-mobile-web-app-capable" content="yes"> &l

关于android屏幕自适应的个人心得

这是一些博主自己对安卓的屏幕自适应的理解,有什么不到之处也别喷. 首先,观察新建的项目res文件夹,大家估计都能找到drawable文件夹有很多个,如drawable-hdpi.drawable-ldpi.drawable-mdpi.drawable-xhdpi,这些文件夹是谷歌公司为屏幕自适应做的准备,意思说各位朋友在做屏幕自适应之前应该准备5套资源图片来出来该问题.相应的比例关系大概是 1 : 0.5 : 0.75 : 1.5 : 2 ,而现在大部分4.0的机子不再适用于240*320和32

近期Responsive web design项目经验分享

关于meta   <meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, user-scalable=0, width=device-width, minimal-ui"> minimal-ui 默认浏览器的URL缩小 <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.

[cocos2d-x]屏幕自适应解决的方法

近期在写一个项目,要求pc,ipad,andriod平台上都能够执行,所以选择用cocos2d-x来开发. 我们的资源大小是1024*768的,在pc上和苹果上都是没有问题的,但是到了andriod上.问题就来了.andriod上有有各种各样的分辨率.那么程序在全部的分辨率上都能够正常执行显示呢?针对这个问题,我想了好几种方法: (1)弄多套资源 由于这个项目里面有非常多动画资源,假设要弄多套资源,工作量比較大,项目时间比較紧,不同意用这套方案 (2)cocos2d-x里面有一个方法 pDire

firemonkey 手机屏幕自适应程序问题

我是新手.在我才学了2个星期的时候,那个白痴老板说什么手机屏幕自适应程序,我当时不能理解呀,觉得用Delphi的布局设计不就行了吗.结果他说:我就是想让控件内容什么的放在小屏幕手机上也不出来.我就说,那用布局layout.结果那个傻x又是画控件关于屏幕的位置,又是记录控件的位置,整了一大套.整个把我给整晕了,新手伤不起啊,我不知道Delphi xe5有一个控件布局叫ScaledLayout,结果捣鼓了很长时间.我在Delphi交流群里说这个功能时,大家都说我想多了.唉 ,没办法自己又把控件布局什

Lync 项目经验-12-为某上市企业Skype for Business购买Godday证书

<要想看Lync 2013升级SFB 2015真实项目经验:请看Lync 项目经验-01-到-Lync 项目经验-10> 本系列博文: Lync 项目经验-01-共存迁移-Lync2013-TO-SFB 2015-规划01http://dynamic.blog.51cto.com/711418/1858520 Lync 项目经验-02-共存迁移-Lync2013-TO-SFB 2015-规划02http://dynamic.blog.51cto.com/711418/1859143 Lync

佩特来项目经验小集合(2)___组合查询存储过程,报错 &amp;quot;varchar JBID=&amp;#39;&amp;#39; 转换成数据类型 int 时失败&amp;quot;

今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID ='' 转换成数据类型 int 时失败.错误详情如图所看到的: 经百度:字符串变量和整型变量连接不能用+连接. 于是我採用cast()函数将DLSJB这个整型变量转换成字符串,这样问题就攻克了. 正确代码例如以下所看到的: ALTER PROCEDURE [dbo].[Proc_SH_WXJDList] @DH