zoukankan      html  css  js  c++  java
  • 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就可以了~

    效果图:

  • 相关阅读:
    Apache httpd和JBoss构建高可用集群环境
    Ubuntu 14.04下NFS安装配置
    Ubuntu 14.04 安装 JDK 7.0
    Docker第三方项目小结
    Shipyard远程API
    Linux软件管理——yum命令详解
    Quartz集群原理及配置应用
    Rsync原理介绍及配置应用
    python构造wireshark可以解析的LTE空口数据
    A Simple Web Server
  • 原文地址:https://www.cnblogs.com/KevinYuen/p/2944820.html
Copyright © 2011-2022 走看看