作者cowbaying (压力太大 囧mmmmmmmmmmm)
看板GameDesign
标题Re: [请益] 关於人物移动的状态机
时间Sat Jun 9 08:23:40 2012
其实你已经把整张图写进记忆体里面了
只要运用sprite的概念
切割出每次你想要的区块就行了
写入只需要一次
之後就是读取
阵列里存的东西最好简单一点
像是需要切割的边缘座标
用二维阵列我想就行了
※ 引述《yoll522 (yolling)》之铭言:
: 前一阵子在这里询问各位高手人物移动该怎麽写比较好
: 得到了Chenglap大的答案,是用状态机的方式写
: 目前我们一个角色有四个方向,每个方向有3张,总共12张图片
: 所以我想到的方法是先创一个12个大小的阵列,
: 接着把那张角色图的每个位置撷取下来,放进该阵列的位置
: 大概如下
: Image *temp = new Image(L"路径"); //读取整张角色图,放进temp
: Image *Role = new Image[12]; //创一个Role的阵列,打算将角色图的每个位置存入
: Role[0] = xxxxxxxx //取出方向为上的第一张图
: Role[1] = xxxxxxxx //取出方向为上的第二张图
: Role[2] = xxxxxxxx //取出方向为上的第三张图
: 这样当我按下方向键上的时候,程式就会去执行Role[0]到Role[2]的图片
: 可是我查了很久的GOOGLE,并没有查到可以撷取图片的部分位置,然後存入阵列的
: 想请问各位高手,我的方法正确吗?或者是有什麽方法可以让我把角色存入阵列的?
: 谢谢
: 我本来有查到SetClip,但这似乎只能撷取图片的位置後,就直接画出去了
: 好像不能够存到阵列里@@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.116.3.108
1F:推 Hevak:用他原本那种写法的话就是把Role[]里面塞[参数]比较快 06/09 08:59
2F:→ yoll522:我之前也是用切割的方式来贴图,我创了一堆阵列 06/10 18:42
3F:→ yoll522:里面都放了每张图的x跟y的座标 06/10 18:42
4F:→ yoll522:等这次期末考结束我再来研究阵列放x、y的座标 06/10 18:43
5F:→ yoll522:还是阵列里面直接放切好的图,哪种比较有效率,谢谢 06/10 18:43
6F:→ cowbaying:两者效率要看你是否每次使用一次後就把记忆体释放 06/10 18:56
7F:→ cowbaying:如果程式在初始化的过程中就把图像载入记忆体 06/10 18:57
8F:→ cowbaying:而在程式结束前都不去释放资源 那两种效率是一样的 06/10 18:57
9F:→ Hevak:效率....可以设计一个计时测试跑看看 06/10 20:40
10F:→ Hevak:不释放的话,切好的图应该会跟setclip差不多效果... 06/10 20:40
11F:推 yoll522:可是setclip有办法把图存起来吗?还是只能直接贴出去? 06/10 22:59
12F:推 Hevak:setclip就是把图持续在那边,但是设定不同的显示范围 06/11 13:26
13F:→ Hevak:他不是贴复本,他是调整显示范围... 06/11 13:26
14F:→ cowbaying:看到这篇文章手痒想开始做3D游戏了... 06/11 15:17
15F:→ cowbaying:把系统战争作成3D的应该不错 06/11 15:17