当前位置: 首页>>代码示例>>C#>>正文


C# EndianBinaryReader.ReadSByte方法代码示例

本文整理汇总了C#中EndianBinaryReader.ReadSByte方法的典型用法代码示例。如果您正苦于以下问题:C# EndianBinaryReader.ReadSByte方法的具体用法?C# EndianBinaryReader.ReadSByte怎么用?C# EndianBinaryReader.ReadSByte使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在EndianBinaryReader的用法示例。


在下文中一共展示了EndianBinaryReader.ReadSByte方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: hfzReadTile

        private HfzTile hfzReadTile(EndianBinaryReader reader, HfzHeader fh, UInt32 TileX, UInt32 TileY, Boolean extraPixelBullshit)
        {
            debugLine("TileX: "+ TileX +", TileY: " + TileY);
            List<float> pTileData = new List<float>();
            UInt32 i = 0, j = 0;

            UInt32 TileSize = fh.TileSize;
            UInt32 mapWidth = fh.nx;
            UInt32 mapHeight = fh.ny;
            UInt32 Rows = TileSize;
            UInt32 RowSize = TileSize-1;

            if (extraPixelBullshit)
            {
                Epsilon e = new Epsilon(1E-3);
                if (RealExtensions.EQ(TileX, (mapWidth / TileSize), e))
                {
                    debugLine("Entering X on " + TileX + "," + TileY);
                    debugLine("result: " + (TileSize - (((TileX + 1) * TileSize) - mapWidth)));
                    Rows = TileSize;
                    RowSize = (TileSize - (((TileX + 1) * TileSize) - mapWidth)) - 1;
                }

                if (RealExtensions.EQ(TileY, (mapHeight / TileSize), e))
                {
                    debugLine("Entering Y on " + TileX + "," + TileY);
                    debugLine("result: " + (TileSize - (((TileY + 1) * TileSize) - mapHeight)));
                    Rows =  TileSize - (((TileY + 1) * TileSize) - mapHeight);
                    RowSize = TileSize - 1;
                }

                if (RealExtensions.EQ(TileX, (mapWidth / TileSize), e) && RealExtensions.EQ(TileY, (mapHeight / TileSize), e))
                {
                    debugLine("Entering X,Y on " + TileX + "," + TileY);
                    debugLine("result: " + (TileSize - (((TileY + 1) * TileSize) - mapHeight)));
                    debugLine("result: " + ((TileSize - (((TileX + 1) * TileSize) - mapWidth)) - 1));
                    Rows = TileSize - (((TileY + 1) * TileSize) - mapHeight);
                    RowSize = (TileSize - (((TileX + 1) * TileSize) - mapWidth)) - 1;
                }
            }

            // read vert offset and sale
            byte LineDepth = 0;
            Int32 FirstVal = 0;
            int tileValues = 0;
            int firstValues = 0;
            try
            {
                float VertScale = reader.ReadSingle();
                float VertOffset = reader.ReadSingle();

                for (j = 0; j < Rows; j++)
                {
                    LineDepth = reader.ReadByte(); // 1, 2, or 4
                    debugLine("Linedepth " + LineDepth);
                    FirstVal = reader.ReadInt32();
                    debugLine("FirstVal " + FirstVal);
                    tileValues++;
                    firstValues++;

                    float pixelValue = (float)FirstVal * VertScale + VertOffset;

                    // set first pixel
                    pTileData.Add(pixelValue);
                    debugLine("FirstValue: " + pixelValue);

                    Int32 LastVal = FirstVal;
                    Int32 li;

                    for (i = 0; i < RowSize; i++)
                    {
                        switch (LineDepth)
                        {
                            case 1:
                                sbyte bvalue = reader.ReadSByte();
                                li = (Int32)bvalue;
                                break;
                            case 2:
                                short svalue = reader.ReadInt16();
                                li = (Int32)svalue;
                                break;
                            default:
                                li = reader.ReadInt32();
                                break;
                        }

                        pixelValue = (float)(li + LastVal) * VertScale + VertOffset;
                        LastVal = li + LastVal;

                        pTileData.Add(pixelValue);
                        tileValues++;
                        debugLine("v: " + pixelValue);
                    }
                }
                debugLine("TileValues: " + tileValues);
                debugLine("FirstValues: " + firstValues);
            }
            catch (Exception)
            {
                System.Console.WriteLine("TileSize: " + TileSize);
//.........这里部分代码省略.........
开发者ID:Celludriel,项目名称:L3DT_Filemanager,代码行数:101,代码来源:HfzManager.cs

示例2: CharWidthInfo

 public CharWidthInfo(EndianBinaryReader er)
 {
     Left = er.ReadSByte();
     GlyphWidth = er.ReadByte();
     CharWidth = er.ReadByte();
 }
开发者ID:wmltogether,项目名称:ZLD-TWW-HD-Chinese-Localization-Project,代码行数:6,代码来源:FFNT.cs

示例3: Read

 public static Metadata Read(EndianBinaryReader r)
 {
     Metadata m = new Metadata();
     
     while (true)
     {
         byte f = r.ReadByte();
         if (f == 0x7F)
             return m;
         
         MetaField mf = new MetaField(f & 0x1F, (MetaType)(f >> 5));
         switch (mf.Type)
         {
             case MetaType.Byte:
                 mf.Byte = r.ReadSByte();
                 break;
             case MetaType.Short:
                 mf.Short = r.ReadInt16();
                 break;
             case MetaType.Int:
                 mf.Int = r.ReadInt32();
                 break;
             case MetaType.Float:
                 mf.Float = r.ReadSingle();
                 break;
             case MetaType.String:
                 mf.String = Packet.ReadString8(r);
                 break;
             case MetaType.Item:
                 mf.Item = SlotItem.Read(r);
                 break;
             case MetaType.Vector:
                 mf.Vector = new CoordInt();
                 mf.Vector.X = r.ReadInt32();
                 mf.Vector.Y = r.ReadInt32();
                 mf.Vector.Z = r.ReadInt32();
                 break;
             case MetaType.VectorF:
                 mf.VectorF = new CoordDouble();
                 mf.VectorF.X = r.ReadSingle();
                 mf.VectorF.Y = r.ReadSingle();
                 mf.VectorF.Z = r.ReadSingle();
                 break;
             default:
                 throw new NotImplementedException();
         }
         m.Fields.Add(mf.ID, mf);				
     }
 }
开发者ID:mctraveler,项目名称:MineSharp,代码行数:49,代码来源:Metadata.cs

示例4: readValueFromReader

        private float readValueFromReader(EndianBinaryReader reader, HffHeader header, uint xLocation, uint yLocation)
        {
            float value;

            if (header.floatingPointFlag)
            {
                float readSingleValue = reader.ReadSingle();
                debugLine("v: " + readSingleValue);
                value = header.verticalScale * readSingleValue + header.verticalOffset;
                debugLine("cv: " + value);
            }
            else
            {
                switch (header.dataSize)
                {
                    case 1:
                        sbyte readSbyteValue = reader.ReadSByte();
                        debugLine("v: " + readSbyteValue);
                        value = header.verticalScale * readSbyteValue + header.verticalOffset;
                        debugLine("cv: " + value);
                        break;
                    case 2:
                        ushort readShortValue = reader.ReadUInt16();
                        debugLine("v: " + readShortValue);
                        value = header.verticalScale * readShortValue + header.verticalOffset;
                        debugLine("cv: " + value);
                        break;
                    default: throw new Exception("Invalid pixel data at x: " + xLocation + ", y: " + yLocation);
                }
            }
            return value;
        }
开发者ID:Celludriel,项目名称:L3DT_Filemanager,代码行数:32,代码来源:HffManager.cs


注:本文中的EndianBinaryReader.ReadSByte方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。