关于贪吃蛇移动的问题 万分火急 在线等待
小弟初学VC 想做个贪吃蛇
发现一个问题:
当蛇吃到豆子时增加一个节点 可是没吃到时会减少有一个节点
也就是说在某一瞬间 如果吃到豆子增在一节点,如果下一秒钟没遇到豆子,这个增加的豆子据仍然消失了 蛇身恢复原状
在下一秒 即使没吃到也不继续减少
不知道什么地方错了
请高人指点一下 迷津
//判断是否吃到食物
bool CGreedSnake::EateFood( CFood &food )
{
vector< CSnakeNode >::iterator iter = m_greedsnake.begin();
if( iter->m_xPose==food.m_food[food.m_index].GetLinePoisition() && iter->m_yPose==food.m_food[food.m_index].GetRowPoisition() )
{
CSnakeNode tempnode = m_greedsnake.back();//蛇身的尾节点
switch( m_direction )
{
case ED_UP:
tempnode.m_yPose++;
break;
case ED_DOWN:
tempnode.m_yPose--;
break;
case ED_LEFT:
tempnode.m_xPose--;
break;
case ED_RIGHT:
tempnode.m_xPose++;
break;
}
m_greedsnake.push_back( tempnode );
return true;//吃到食物
}
else
return false;//未吃到食物
}
//重画
void CGreedSnake::DrawSnake( CDC *pDC )
{
for( vector< CSnakeNode >::size_type t=0; t!=m_greedsnake.size(); t++ )
m_greedsnake[t].DrawSnakeNode( m_greedsnake[t].m_xPose, m_greedsnake[t].m_yPose, pDC );
}
初始时有两节,吃到食物时变成三节,下一秒又恢复成了两节
调试时 好像发现吃到食物后的 t还是2
为什么没变呢?如果 t没变的话 吃到的一瞬间 第三节又从哪来的呢?
实在迷糊了 VC新手诚请各位前辈指点
分数不多 还请见谅