一个关于定义类中私有变量值的改变问题.
部分代码如下:
//////////////////////////////////////////////////////////////////////////////////////
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 ,问题出在那里呢?希望各位能指出中间的错误!谢谢!
部分代码如下:
//////////////////////////////////////////////////////////////////////////////////////
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 ,问题出在那里呢?希望各位能指出中间的错误!谢谢!
解决方案 »
- c代码翻译成delphi 代码
- delphi如何发送数据包登陆百度
- VISTA系统是否可安装D6、7?
- 如何让form只能居中显示
- 用MIDAS做的DCOM中间层控件是否一定要在客户机上注册呢?
- 关于调用自动化(COM)中MDI窗体的问题,请能帮我解决2500分相送!!!付现金也可以只要能帮我解决,您开个价,只要我能接受,一守照付!
- 求救:(急)richedit读取长文本文件时报错
- 文件操作问题?
- 有关SQL的问题。当我执行Query1.SQL.Add('select * into "e:\StockAcc.dbf" from CUSTstockinfo');这条语句时,报错。
- 屏幕可以旋转吗?
- 怎么能够在程序中显示.gif格式的图片
- 多文档的问题,急!
Debug去了
好像是DelphiX的东西~http://lysoft.7u7.net
能说具体点吗?如何修改呢?
等待回复!谢谢先!