0
我試圖表現出一些奇怪的方式在TGLHudSprite圖像不顯示...第二材料在glhudsprite
這裏是我的嘗試..
我有一個材料庫和hudsprite .. 。
myMatlib: TGLMaterialLibrary
mySprite: TGLHudSprite
下一個我創建這個對象...
myMatlib:= TGLMaterialLibrary.Create(self);
mySprite:= TGLHudSprite.CreateAsChild(MainScene.Background);
mySprite.Material.MaterialLibrary:= myMatlib;
mySprite.Material.LibMaterialName:= '';
mySprite.position.x:= 512;
mySprite.position.y:= 384;
mySprite.visible:= true;
來看,它和邏輯mySprite上顯示諾斯荷蘭國際集團...... 現在我添加的材料......與此功能..
function AddMaterial(aMatLib: TGlMaterialLibrary; aFileName, aMaterialName: string): TGlLibMaterial;
begin
result := aMatLib.Materials.Add;
with result do
begin
with Material do
begin
MaterialOptions := [moIgnoreFog, moNoLighting];
Texture.Disabled := false;
Texture.TextureMode := tmModulate;
BlendingMode := bmTransparency;
with FrontProperties do
begin
Ambient.SetColor(1, 1, 1, 1);
Diffuse.SetColor(1, 1, 1, 1);
Emission.SetColor(1, 1, 1, 1);
Specular.SetColor(1, 1, 1, 1);
end;
Texture.ImageClassName := 'TGLCompositeImage';
if ExtractFileExt(aFileName) = '' then
TGLCompositeImage(Texture.Image).LoadFromFile(aFileName + '.png')
else
TGLCompositeImage(Texture.Image).LoadFromFile(aFileName);
end;
Name := aMaterialName;
end;
end;
,所以我添加材料...
AddMaterial(myMatlib,'c:\pic.png','pic');
,然後我設定的材料在我hudSprite ...
mySprite.material.libmaterialname:= 'pic';
一切正常,現在...
我想做的事情是freeandn IL我的素材庫中再次重現,加上不同的材料具有相同名稱的「知情同意」,並顯示在我的hudsprite ...
,所以我讓這個....
FreeAndNil(myMatlib);
AddMaterial(myMatlib,'c:\spic.png','pic');
mySprite.material.libmaterialname:= 'pic';
有了這個,我得到沒有什麼,但只有一個黑色的圖片...
我做錯了什麼...?
順便說一句材料裝入correcty BCS在第二雪碧我創建並沒有設置任何其他材料則顯示「PIC」正確...
謝謝你工作得很好... – azrael11