ARM.H
上传用户:abcdshs
上传日期:2007-01-07
资源大小:1858k
文件大小:2k
源码类别:

游戏

开发平台:

Visual C++

  1. // (C) Copyright 1996 by Anthony J. Carin.  All Rights Reserved.
  2. #ifndef ARM_H
  3. #define ARM_H
  4. #include "baseobj.h"
  5. #include "attach.h"
  6. #include "personal.h"
  7. class forearm;
  8. class arm : public baseobject
  9. {
  10. public:
  11.          arm(personal *p);
  12.         ~arm();
  13. void     setcolor(COLORREF c);
  14. void     setskincolor(COLORREF c);
  15. void     draw();
  16. void     setto(view& c);
  17. void     bendelbow(float v);
  18. view&    handloc();
  19. private:
  20. attachment *elbow;
  21. forearm    *m_forearm;
  22. };
  23. class hand;
  24. class forearm : public baseobject
  25. {
  26. public:
  27.          forearm(personal *p);
  28.         ~forearm();
  29. void     setcolor(COLORREF c);
  30. void     setskincolor(COLORREF c);
  31. void     draw();
  32. void     setto(view& c);
  33. view&    handloc();
  34. private:
  35. attachment *wrist;
  36. hand       *m_hand;
  37. };
  38. class hand : public baseobject
  39. {
  40. public:
  41.          hand(personal *p);
  42.         ~hand();
  43. void     setskincolor(COLORREF c) { setcolor(c); }
  44. };
  45. class totalarm
  46. {
  47. public:
  48.          totalarm(coordinate& offset, personal *p);
  49.         ~totalarm();
  50. void     setto(view& c)       { armjoint->setto(c); }
  51. void     setcolor(COLORREF c) { m_arm->setcolor(c); }
  52. void     draw()               { armjoint->draw(); }
  53. void     setskincolor(COLORREF c) { m_arm->setskincolor(c); }
  54. void     raisefoward(float v);
  55. void     raisebackward(float v);
  56. void     raisesideward(float v);
  57. void     bendelbow(float v);
  58. view&    handloc()            { return m_arm->handloc(); }
  59. private:
  60. attachment *armjoint;
  61. arm        *m_arm;
  62. };
  63. inline void totalarm::raisesideward(float v)
  64. {
  65.     m_arm->setzposition((direction) (TC_PI*v));
  66. }
  67. inline void arm::bendelbow(float v)
  68. {
  69.     m_forearm->setxposition((direction) (short)(-TC_PI*v));
  70. }
  71. inline void totalarm::raisefoward(float v)
  72. {
  73.     m_arm->setxposition((direction) (-TC_PI*v));
  74. }
  75. inline void totalarm::raisebackward(float v)
  76. {
  77.     m_arm->setxposition((direction) (TC_PI*v));
  78. }
  79. inline void totalarm::bendelbow(float v)
  80. {
  81.     m_arm->bendelbow(v);
  82. }
  83. inline view& arm::handloc()
  84. {
  85.    return m_forearm->handloc();
  86. }
  87. inline view& forearm::handloc()
  88. {
  89.    return m_hand->location();
  90. }
  91. #endif