• Torque2D MIT 脚本阅读(2) FlipToy


    FlipToy用来演示图像/动画翻转的效果.

    模块定义

    <ModuleDefinition
    	ModuleId="FlipToy"
    	VersionId="1"
    	Description="Demonstrates flipping the rendering of sprites horizontally and vertically."
    	Dependencies="ToyAssets=1"
    	Type="toy"
    	ToyCategoryIndex="3"
    	ScriptFile="main.cs"
    	CreateFunction="create"
    	DestroyFunction="destroy">
                    // 自身所有资源申明
    	<DeclaredAssets
    		Path="assets"
    		Extension="asset.taml"
    		Recurse="true"/>
    </ModuleDefinition>
    

    代码片段

    function FlipToy::createSprite( %this, %position, %size, %flipX, %flipY )
    {
        // 创建精灵
        %object = new Sprite();
        
        // 位置设置(后面会说到,这个是场景可缩放游戏特有的)
        %object.Position = %position;
    
        // 精灵尺寸
        %object.Size = %size;
        
        // 资源设定
        %object.Animation = "FlipToy:pufferfishAnim";
        
        // 翻转设置
        %object.setFlip( %flipX, %flipY );
        
        // 加入到场景中
        SandboxScene.add( %object );    
    }
    

    坐标与画布

      Torque2D的坐标系以画布中心(一般是屏幕中心)为原点.相机的视野尺寸应该和画布的大小相关联,比如画布上元素很少,那么如果相机视野过大,布局上就很单调.反之效率也不好.

      拿这个例子来说,在创建的过程中,一共设定了4个精灵:

     // Create a sprite.
     %this.createSprite( "-25 19", "50 37.5", false, false );
     %this.createSprite( "25 19", "50 37.5",  true, false );
     %this.createSprite( "-25 -19", "50 37.5", false, true );
     %this.createSprite( "25 -19", "50 37.5",  true, true );    
    

     从代码上可以看出,四个精灵的排布一共占的区域是{100,75},而窗体一般都是比这个大很多的,所以如果不进行对应的相机视野修改,那效率非常差.

    相机视野修改的代码在FlipToy中是看不见的,这里说明一下,他的设置在SandBox模块的Scene.cs中,在创建场景窗口的时候设定了,代码如下:

        SandboxWindow.setCameraPosition( 0, 0 );
        SandboxWindow.setCameraSize( 100, 75 );
        SandboxWindow.setCameraZoom( 1 );
        SandboxWindow.setCameraAngle( 0 );
    

     我们可以在需要的时候修改,调用上面的SetCameraSize就可以了~

    效果图:

  • 相关阅读:
    bzoj 3171 [Tjoi2013]循环格(MCMF)
    spoj 839 Optimal Marks(二进制位,最小割)
    bzoj 1458 士兵占领(最大流)
    bzoj 3931 [CQOI2015]网络吞吐量(最短路,最大流)
    bzoj 2229 [Zjoi2011]最小割(分治+最小割)
    bzoj 1324 Exca王者之剑(黑白染色,最小割)
    BestCoder Round #75 解题报告
    (转)php 根据url自动生成缩略图并处理高并发问题
    PHP生成图片太慢了。。有些都不出来、
    PHP加Nginx实现动态裁剪图片方案
  • 原文地址:https://www.cnblogs.com/KevinYuen/p/2944820.html
Copyright © 2020-2023  润新知