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

游戏

开发平台:

Visual C++

  1. // (C) Copyright 1996 by Anthony J. Carin.  All Rights Reserved.
  2. #include "stdafx.h"
  3. #include "arm.h"
  4. arm::arm(personal *p) : baseobject(p->upperarm())
  5. {
  6.    coordinate tmp(0.0f,-0.4f*p->hight(),0.0f);
  7.    elbow      = new attachment(tmp);
  8.    m_forearm  = new forearm(p);
  9.    elbow->attachto(m_forearm);
  10. }
  11. arm::~arm()
  12. {
  13.    delete elbow;
  14.    delete m_forearm;
  15. }
  16. void arm::setcolor(COLORREF c)
  17. {
  18.    baseobject::setcolor(c);
  19.    m_forearm->setcolor(c);
  20. }
  21. void arm::setskincolor(COLORREF c)
  22. {
  23.     m_forearm->setskincolor(c);
  24. }
  25. void arm::draw()
  26. {
  27.    baseobject::draw();
  28.    elbow->draw();
  29. }
  30. void arm::setto(view& c)
  31. {
  32.    baseobject::setto(c);
  33.    elbow->setxoff(xposition);
  34.    elbow->setyoff(yposition);
  35.    elbow->setzoff(zposition);
  36.    elbow->setto(c);
  37. }
  38. forearm::forearm(personal *p) : baseobject(p->lowerarm())
  39. {
  40.    coordinate tmp(0.0f,-0.57f*p->hight(),0.0f);
  41.    wrist   = new attachment(tmp);
  42.    m_hand  = new hand(p);
  43.    wrist->attachto(m_hand);
  44. }
  45. forearm::~forearm()
  46. {
  47.    delete wrist;
  48.    delete m_hand;
  49. }
  50. void forearm::setcolor(COLORREF c)
  51. {
  52.    baseobject::setcolor(c);
  53. }
  54. void forearm::draw()
  55. {
  56.    baseobject::draw();
  57.    wrist->draw();
  58. }
  59. void forearm::setto(view& c)
  60. {
  61.    baseobject::setto(c);
  62.    wrist->setxoff(xposition);
  63.    wrist->setyoff(yposition);
  64.    wrist->setzoff(zposition);
  65.    wrist->setto(c);
  66. }
  67. void forearm::setskincolor(COLORREF c)
  68. {
  69.     m_hand->setskincolor(c);
  70. }
  71. hand::hand(personal *p) : baseobject(p->hand())
  72. {
  73.     setcolor(RGB(240,200,0));
  74. }
  75. hand::~hand()
  76. {
  77. }
  78. totalarm::totalarm(coordinate& offset, personal *p)
  79. {
  80.    armjoint = new attachment(offset);
  81.    m_arm    = new arm(p);
  82.    armjoint->attachto(m_arm);
  83. }
  84. totalarm::~totalarm()
  85. {
  86.    delete m_arm;
  87.    delete armjoint;
  88. }