巧用DebugFlags,大幅提高PSS开发效率!(1)

转载请注明:PSS开发网。 www.devpss.com

       使用GameEngine2D开发游戏,需要脑袋中构想出整个游戏世界的坐标,
而且必要的时候还要做各种位置的变换,形状变换等。遇到这种时候,我们
都在想: 如果程序能自动标出我想要的各种信息就好了。 嘿嘿~
其实GameEngine2D早就为我们想到了这一点,下面我就来告诉大家如何利用
DebugFlags标识出我们想要的各种信息。

     首先, 搭建一个最简单的GameEngine2D开发环境,如下:
using System;
using System.Collections.Generic;

using Sce.Pss.Core;
using Sce.Pss.Core.Environment;
using Sce.Pss.Core.Graphics;
using Sce.Pss.Core.Input;
using Sce.Pss.HighLevel.GameEngine2D;
using Sce.Pss.HighLevel.GameEngine2D.Base;

namespace Test
{
        public class AppMain
        {
                
                public static void Main (string[] args)
                {
                        Sce.Pss.Core.Graphics.GraphicsContext context = new Sce.Pss.Core.Graphics.GraphicsContext();
                        uint sprites_capacity = 500;
                        uint draw_helpers_capacity = 400;
                        Director.Initialize( sprites_capacity, draw_helpers_capacity, context );
                        
                        Director.Instance.GL.Context.SetClearColor( Colors.Grey20 );
                        //Director.Instance.DebugFlags |= DebugFlags.DrawGrid;
                        //Director.Instance.DebugFlags |= DebugFlags.DrawContentWorldBounds;
                        //Director.Instance.DebugFlags |= DebugFlags.DrawContentLocalBounds;
                        //Director.Instance.DebugFlags |= DebugFlags.DrawTransform;
                        //Director.Instance.DebugFlags |= DebugFlags.DrawPivot;
                        
                        var scene = new Scene();
                        
                        float scale = 1.5f;

                        var body  = new SpriteUV( new TextureInfo( new Texture2D( "/Application/File/arrow.png", false ), new Vector2i(4,4) ) );
                        //body.CenterSprite( TRS.Local.BottomCenter );
                        body.Scale = body.TextureInfo.TextureSizef * scene.Camera.GetPixelSize() * scale;
                        body.BlendMode = BlendMode.Additive;
                        //body.Pivot = new Vector2(1f,0.5f);
        
                        scene.AddChild( body );
                        
                        Director.Instance.RunWithScene( scene );
                        
                        
                        
                }
                
                
        }
}



       我们运行一下这个程序, 就会发现屏幕上面显示了一个箭头:
1.png


      1. 我们希望屏幕能像Photoshop那样显示标尺,并且标识原点坐标。那么,只需要将下面这行代码的注释去掉:
Director.Instance.DebugFlags |= DebugFlags.DrawGrid;

运行起来的效果是样的:
2.png

怎么样, 很有用吧! 通过这幅图我们知道, 原来那个箭头图片的起始坐标是从左下角开始的啊。
我们试着移动一下这个箭头,让它像右上方移动一个单位。 在程序中加入下面这行代码:
body.Position = new Vector2(1f,1f);

运行的效果是这样的:
3.png

如果我们移动屏幕的Camera, 就更加能体现出这个标尺的作用了,在程序中加入下面这行代码:
scene.Camera2D.SetViewFromHeightAndCenter( 8.0f, new Vector2(3,3) );

运行效果是这样的:
4.png

看到了吧,我们移动了camera的位置, 能清晰的标识出当前原点坐标在哪里,方便我们的开发。

好了,第一节先讲到这里,请期待第二节哦~~

转载请注明:PSS开发网。 www.devpss.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值