游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8851|回复: 12

Asphyre 引擎直接使用传奇世界的资源 COOL

[复制链接]

14

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
发表于 2005-4-17 21:29:00 | 显示全部楼层 |阅读模式
网络上拼凑的代码!
刚刚写好,很多错误没有处理!
而且还修改了几个单元的东西!
不晓得大家有兴趣没!

部分代码!
使用了临时文件
因为我实验直接从流读
次次失败
我都郁闷了

function TSglFile.Aimg(Index, Frame: Integer): TAsphyreImage;
var
  I, J, L2          : Integer;
  S                 : string;
  Data              : PDWord;
  Stream            : TfileStream;
  have              : Boolean;
  bmp:TBitmapEx;
begin
  Result := nil;
  if Fimagepack.imgcount > Index then
  begin
    if Fimagepack.items[Index].Framescount > Frame then
    begin
      have := true;
    end;
  end;

  if not have then exit;

  if Fimagepack.items[Index].Frames[Frame].img = nil then
  begin
    Data := nil;
    try
      ImageIndex := Index;
      if Frames[Frame] <> nil then
      begin
        with Frames[Frame]^ do
        begin
          ReAllocMem(Data, sfHeight * sfWidth * 4);
          ZeroMemory(Data, sfHeight * sfWidth * 4);
          DecodeFrame32(Frame, PByte(Data), sfWidth * 4);
          Stream := TfileStream.Create('./temp.tga', fmCreate);
          try
            TargaBuild32(Stream, Data, sfWidth, sfHeight, '', true);
            Fimagepack.items[Index].Frames[Frame].img := FDevice.NewImage;
            //Fimagepack.items[Index].Frames[Frame].img.LoadFromStream('x.tga', Stream);
          finally
            Stream.Free;
          end;
          Fimagepack.items[Index].Frames[Frame].img.LoadFromtgafile('./temp.tga');
        end;
      end;
    finally
      if Data <> nil then FreeMem(Data);
    end;
  end;

  Result := Fimagepack.items[Index].Frames[Frame].img;
end;

24

主题

213

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
QQ
发表于 2005-4-18 00:21:00 | 显示全部楼层

Re:Asphyre 引擎直接使用传奇世界的资源 COOL

好啊,严重关注:)

14

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
 楼主| 发表于 2005-4-18 17:03:00 | 显示全部楼层

Re:Asphyre 引擎直接使用传奇世界的资源 COOL

          Stream := TfileStream.Create('./temp.tga', fmCreate);
          try
            TargaBuild32(Stream, Data, sfWidth, sfHeight, '', true);
            Fimagepack.items[Index].Frames[Frame].img := FDevice.NewImage;
            //Fimagepack.items[Index].Frames[Frame].img.LoadFromStream('x.tga', Stream);
          finally
            Stream.Free;
          end;
          Fimagepack.items[Index].Frames[Frame].img.LoadFromtgafile('./temp.tga');

这段代码谁帮我转个不用临时文件的啊!

31

主题

143

帖子

143

积分

注册会员

Rank: 2

积分
143
发表于 2005-4-21 11:17:00 | 显示全部楼层

Re:Asphyre 引擎直接使用传奇世界的资源 COOL

把TFileStream改成TMemoryStrea


加我QQ:316476435

4

主题

47

帖子

47

积分

注册会员

Rank: 2

积分
47
发表于 2005-4-21 13:50:00 | 显示全部楼层

Re:Asphyre 引擎直接使用传奇世界的资源 COOL

已经帮他搞定了

14

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
 楼主| 发表于 2005-4-21 19:34:00 | 显示全部楼层

Re:Asphyre 引擎直接使用传奇世界的资源 COOL

就是一条命令
stream.Seek(0,0);

谢谢delphilxh

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
QQ
发表于 2005-4-25 09:33:00 | 显示全部楼层

Re:Asphyre 引擎直接使用传奇世界的资源 COOL

关注!

0

主题

34

帖子

34

积分

注册会员

Rank: 2

积分
34
QQ
发表于 2005-5-18 23:56:00 | 显示全部楼层

Re:Asphyre 引擎直接使用传奇世界的资源 COOL

严重关注.

6

主题

42

帖子

42

积分

注册会员

Rank: 2

积分
42
QQ
发表于 2005-5-19 13:26:00 | 显示全部楼层

Re:Asphyre 引擎直接使用传奇世界的资源 COOL

我也关注

0

主题

57

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2005-5-24 16:29:00 | 显示全部楼层

Re: Asphyre 引擎直接使用传奇世界的资源 COOL


不错不错,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 07:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表