TurnAround.txt
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:1k
源码类别:

游戏

开发平台:

Visual C++

  1. dirtest = true;
  2. // Count a integer step
  3. rt_mobile = m_ppTanks[i]->GetRect();
  4. step = m_ppTanks[i]->GetDirectionUnit();
  5. if ( step.y != 0 ) {
  6. residue = m_ppTanks[i]->GetTop() % DEFTURNSTEP;
  7. if ( residue == 0 ) 
  8. dirtest = false;
  9. else if ( residue > DEFTURNSTEP/2 ) { // down
  10. residue = DEFTURNSTEP - residue;
  11. rt_mobile.top += residue;
  12. rt_mobile.bottom += residue;
  13. } else { // up
  14. rt_mobile.top -= residue;
  15. rt_mobile.bottom -= residue;
  16. }
  17. } else if ( step.x != 0 ) {
  18. residue = m_ppTanks[i]->GetLeft() % DEFTURNSTEP;
  19. if ( residue == 0 ) 
  20. dirtest = false;
  21. else if ( residue > DEFTURNSTEP/2 ) { // right
  22. residue = DEFTURNSTEP - residue;
  23. rt_mobile.left += residue;
  24. rt_mobile.right += residue;
  25. } else { // left
  26. rt_mobile.left -= residue;
  27. rt_mobile.right -= residue;
  28. }
  29. }
  30. // Test if it can move
  31. if ( dirtest ) {
  32. MapInfo.ColRToMobile( rt_mobile, step, (CMobileObject **)m_ppTanks, 10, i,
  33. m_ppTanks[i]->m_uiTeamType, false, hit );
  34. if ( hit < 0 )
  35. m_ppTanks[i]->SetPos( rt_mobile.left, rt_mobile.top );
  36. }