• Tui-x 自适应屏幕 (转) ----- 6


    1.Tui-x 是怎么设置自适应屏幕的

    Tui-x 是默认开启自适应的。开发者只需要关注自己设计尺寸就好了,而Tui-x的默认设计分辨率是480*800,如果你是希望设计分辨率是960*640的话,你需要手动设置一下

    1. <span style="font-size:14px;"><span style="font-size:14px;">TuiManager::getInstance()->setAdaptResolution(true,960,640); //手动设置设计分辨率</span></span>  

    开启自适应后,Tui-x会根据真实分辨率和设计分辨率的缩放比来进行坐标缩放,这个自适应的容器是CWidgetWindow,目前只有它是自适应容器,所有它的子节点都会进行坐标缩放,从而达到自适应的目的。

    2.Tui-x 是怎么对动态点做自适应的

    虽然说2dx自带了几种适应的设置方案,但它们都仅仅是对渲染画面进行拉伸,没有达到 真正的自适应,图像拉伸后会变形,如果用FIX_WIDTH这类设置会被裁切或留有黑边,不完美。其实,只要做到坐标缩放就可以解决上述的问题。但是还有 一个问题,如果你的程序是480*800,里面的Sprite写死setPosition(Vec2(100,100)),那么在高分辨率和低分辨率里面 的表现是不一样的,因为高分辨率的100,100是会偏左下角一点,  低分辨率的100,100 看起来会相对离左下角远一些。这是因为,你这个100,100已经写死在代码里面了,无法自适应。很多时候我们的动画一般会在代码里面写死这些点,比如

    1. <span style="font-size:14px;"><span style="font-size:14px;">Sprite *pSp = Sprite::create("hello.png");  
    2. MoveTo *actMoveTo = MoveTo::create(1.0f,Vec2(100,100));  
    3. pSp->runAction(actMoveTo);  
    4. </span></span>  

    这种动画在游戏中非常常见,但是,它无法做到自适应分辨率,因为坐标写死了,那么要怎么才能达到自适应动态点呢? Tui-x 提供一个宏 Arp ,现在你可以这么写

    1. <span style="font-size:14px;"><span style="font-size:14px;">Sprite *pSp = Sprite::create("hello.png");  
    2. MoveTo *actMoveTo = MoveTo::create(1.0f,Arp(Vec2(100,100)));  
    3. pSp->runAction(actMoveTo);  
    4. </span></span>  

    这样就能自适应动态点了。因为Arp宏会将你这个坐标进行缩放,从而实现动态点自适应。

    如果是Tui-x Lua项目可以在入口初始化时候定义一个全局函数Arp,在程序需要动态定点的时候就用Arp即可,用法同上。


    3.交流

    CocosWidget 官方群261286285 Tui-x 官方群 347085657  

    4.下载

    Tui-x 2.x :  https://github.com/LingJiJian/tui/tree/Tui-x    Tui-x 3.x  https://github.com/LingJiJian/Tui-x

  • 相关阅读:
    约瑟夫环问题
    String常用的工具类
    java 中的==和equals的深度解析
    Intellij IDEA的一些常用设置和使用小技巧
    jvm内存模型概述
    springcloud开篇
    oracle生成path的sql语句
    oracle表空间异常大
    springboot2集成activiti出错
    策略模式2
  • 原文地址:https://www.cnblogs.com/dudu580231/p/4992546.html
Copyright © 2020-2023  润新知