listing6.cpp

来自「C人工智能游戏开发的一些实例源代码 C Game development in 」· C++ 代码 · 共 32 行

CPP
32
字号
/* Copyright (C) Dan Higgins, 2001. 
 * All rights reserved worldwide.
 *
 * This software is provided "as is" without express or implied
 * warranties. You may freely copy and compile this source into
 * applications you distribute provided that the copyright text
 * below is included in the resulting source code, for example:
 * "Portions Copyright (C) Dan Higgins, 2001"
 */

// Excerpt from FastStorage's ResetPathfinder method: 
// (Note: 1. theBox is a 2D integer rectangle that represents 
// the bounds of what we searched LAST path with this pathfinder. 
// In a sense, what is DIRTY. 2. theBoxes' Left is the lowest X 
// and Top returns is the lowest Y coordinate. 3. theBoxes' Right 
// is the highest X and Bottom is the highest Y.) 

// Get the X offset where we will begin to memset from.
theXOffset = ((theBox.GetLeft() * mMaxX)+ theBox.GetTop());

// Get the amount we will need to clear.
theAmountToClear = (((theBox.GetRight() * mMaxX) +
                      theBox.GetBottom()) - theXOffset);

// memset NODE array using the Xoffset and AmountToClear
::memset(this->mNodes + theXOffset, NULL,
         theAmountToClear * sizeof(AStarNode*));

// Reset the flags array using the same dirty rectangle
::memset(this->mFlags + theXOffset, kClear,
         theAmountToClear * sizeof(AStarNodeStatusFlags));

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?