一个关于定义类中私有变量值的改变问题.
部分代码如下:
//////////////////////////////////////////////////////////////////////////////////////
 
Tboomsprite=class (Timagesprite)///定义炸弹类
  private
    life:integer;
    collisionRight:integer;//炸弹的一个私有变量
  protected
     procedure domove(movecount:integer);override;
     procedure CreateRightFire;
  Public
     constructor Create(Aparent:Tsprite);override;
   end;
 
 TfireSprite=class(Timagesprite)///定义火焰类
   private
     FromBoom:Tboomsprite;
   Protected
     procedure docollision(sprite:tsprite;var done:boolean);override;//火焰的冲突检测
   Public
     constructor Create(Aparent:Tsprite);override;
  end;
 ////   <----    boom ---->    /////////炸弹处理
Constructor Tboomsprite.Create(Aparent:Tsprite);
begin
  inherited create(Aparent);
  life:=10;
  collisionRight:=0;///赋该值为0
end;
 
procedure Tboomsprite.domove(movecount:integer);
begin
  inherited domove(movecount);
  dec(life);
  if life=0 then //爆炸
    self.CreateRightFire;
end;
 
 
 
procedure Tboomsprite.createRightFire; //产生右边火焰
begin
 TfireSprite.Create(Mainform.DXSpriteEngine.Engine).FromBoom:=self; //绑定火焰到该炸弹
 if self.collisionRight=1  then  mainform.Caption:='  右边火焰冲突 ';///问题在这里:
                                                               该值似乎一直都为0
end;
 
////   <----    fire ---->    /////////火焰处理
Constructor Tfiresprite.Create(Aparent:Tsprite);
begin
  inherited create(Aparent);
end;
 
procedure Tfiresprite.domove(movecount:integer);
begin
 inherited domove(movecount);
 collision;/////火焰的冲突检测
end;
 
procedure Tfiresprite.docollision(sprite:tsprite;var done:boolean);///火焰的冲突检测过程
begin
  FromBoom.collisionRight:=1;    
end;
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////现在的问题是炸弹类中的私有变量collisionRight的值一直都是构造时候的0 ,问题出在那里呢?希望各位能指出中间的错误!谢谢!