|
|
发表于 2025-10-5 02:18:23
|
显示全部楼层
江苏省无锡市
计次循环首 (iHeight, iY ) 计次循环首 (iWidth, iX )  idx = (iY - 1 ) × iWidth + iX    cTemp = 取字节集数据 (binData, #字节型, pos )   如果真 (位与 (cTemp, #ATO_BLOCK ) ≠ 0 )   地图组 [idx ].阻挡 = 位或 (地图组 [idx ].阻挡, #ATO_BLOCK )      如果真 (位与 (cTemp, #ATO_PHENIX_PASS_BLOCK ) ≠ 0 )   地图组 [idx ].阻挡 = 位或 (地图组 [idx ].阻挡, #AT_PHENIX_PASS_BLOCK )      如果真 (位与 (cTemp, #ATO_SMTILES ) ≠ 0 )   地图组 [idx ].小砖 = 取字节集数据 (binData, #短整数型, pos )   如果真 (地图组 [idx ].小砖 ≠ 0 且 右移 (地图组 [idx ].小砖, 16 ) = 0 )    地图组 [idx ].小砖 = 位或 (地图组 [idx ].小砖, 左移 ( #PACKAGE_SmTiles, 16 ))           如果真 (位与 (cTemp, #ATO_TILES ) ≠ 0 )   地图组 [idx ].地砖 = 取字节集数据 (binData, #短整数型, pos )     如果真 (地图组 [idx ].地砖 ≠ 0 且 右移 (地图组 [idx ].地砖, 16 ) = 0 )       如果 (位与 (地图组 [idx ].物体, #OT_TYPE_MASK ) ≠ #OT_NORMAL )     地图组 [idx ].地砖 = 位或 (地图组 [idx ].地砖, 左移 ( #PACKAGE_effect, 16 ))       地图组 [idx ].地砖 = 位或 (地图组 [idx ].地砖, 左移 ( #PACKAGE_Tiles, 16 ))                如果真 (位与 (cTemp, #ATO_OBJECT ) ≠ 0 )   地图组 [idx ].物体 = 取字节集数据 (binData, #整数型, pos )   lwObjectH = 取字节集数据 (binData, #短整数型, pos )     如果真 (lwObjectH = #TILE_HEIGHT )    地图组 [idx ].阻挡 = 位或 (地图组 [idx ].阻挡, #AT_NEARGROUD )         如果真 (lwObjectH ≤ 0 且 位与 (地图组 [idx ].物体, 位取反 ( #OT_OBJECT_MASK )) = 0 )    地图组 [idx ].物体 = 0           如果真 (位与 (cTemp, #ATO_SOUND ) ≠ 0 )   地图组 [idx ].音效 = 取字节集数据 (binData, #字节型, pos )     计次循环尾 () 计次循环尾 ()
这是某游戏中,地图通过字节判断是否包含特定属性的用法,通用使用了该方法。盛大传奇世界地图算法。
|
|