最新标注
热门标注
历史更新
站点地图
RSS
Home
CrazyCoder
»
原创
»
it评论
»
it业界
»
互联网
»
精品软件
开发语言
»
网络编程
编程综合
嵌入式开发
算法
英文资料
汇编语言
PowerBuilder
p2p技术
验证码识别
DotNet
Java教程
C语言教程
C 教程
Delphi教程
VB教程
QQ协议开发
项目管理
»
数据库
»
Web开发
»
Python
Css教程
XML教程
网页特效
PhotoShop教程
Illustrator教程
CorelDraw教程
Ruby教程
CorelDraw教程
网站安全
开发平台-工具
Web
PHP教程
Flash教程
Ajax教程
Javascript教程
Html教程
Dreamweaver
Asp教程
技术综合
»
软件测试
办公软件
QQ相关
Windows
网络技术
游戏开发
软件工程
软件教程
编程思想
游戏开发
外挂开发
OpenApi
AutoCad
广告设计
3D设计
平面设计相关
移动手机开发
服务器
»
Linux
Unix/FreeBsd
web服务器
服务器技术
安全
博文摘选
»
翻译
首页
»
游戏开发
» 斜二视图:斜视角视图( 3)
Rss订阅
斜二视图:斜视角视图( 3)
on 2008-12-14
in
游戏开发
|
0 Comment
现在我们得定义图片块
样子
草地是最容易
就是
个画着草图案
16x15
图形块
墙是
个16x50
图形块
既然我们用叠放
思路方法绘制
高墙就是两个墙
个比另
个要高
因此现在我们这样将数据放入我们
地图
:(图形块0 = 草
图形块1 = 墙)
map[0][0].num = 2;
map[0][0].tile[0] = 1;
map[0][0].height[0] = 0;
map[0][0].tile[1] = 1;
map[0][0].height[1] = 50;
...
map[1][1].num = 1;
map[1][1].tile[0] = 0;
map[1][1].height[0] = 0;
...
现在得到了这个思路方法
我们
绘图循环将在地图中遍历
每
个元素
根据num来决定在那里绘制多个图形块
另外
每个图形块可以在宽度和高度上有区别
大小
我们需要建立
个对于所有图形块都相同
操作位置
右下角是个不错
位置
只要在绘制的前
将宽度和高度屏幕x和y
位置中减去
在C里
思路方法是这样
:
(注意
这不是斜视角
绘制思路方法
它只是帮助你理解叠放绘制
思路方法)
for(i=0;i<10;i
)
{
for(j=0;j<10;j
)
{
for(k=0;k<map[i][j].num;k
)
{
tile_to_draw = map[i][j].tile[k];
height_to_draw = map[i][j].tile[k];
width = block_width(tile_to_draw);
height = block_height(tile_to_draw);
block_draw(tile_to_draw,x-width,y-height-height_to_draw);
}
}
}
你所有需要做
是应用上面所学
思路方法根据地图坐标来得到斜视角视图
你会注意到当你从上向下
从左向右绘图时
这个思路方法自动
盖过所有
图形块
根本不需要什么zbuffer或是类似
东西
绘制斜视角
地图时
按如下思路方法来做:
开始将当前屏幕
x轴和y轴设置为8
16
记住在你绘制图形块的前
要从坐标值中减去图形块
宽度和高度
当左上地图坐标开始画时
地图
坐标传递给绘图
我们现在开始对每个要绘制
垂直图形块执行
个循环
个320x200
屏幕可以垂直绘制25个图形块
我们实际需要画得多些
较高
图形块将被修剪掉
所以我们大约要垂直画35个
我们现在要建立
个保存地图坐标
临时坐标(
它们将被搞乱)
我们检查垂直循环是否是
个奇数
如果是
预先将屏幕
x轴向左移动16个象素
现在开始执行
个水平绘制
循环
共可以绘制12个图形块(每隔
个垂直行为13个)
用图形块来绘制地图
用上面
结构思路方法来绘制图形块
向右移动32个象素点
在临时地图坐标x上增加1
在临时地图坐标y上减去1
完成水平循环
现在向下移动8个象素点
如果这是
个偶数行
则在地图
x轴上加上1
否则在y轴上加上1
完成垂直循环
瞧
现在屏幕就画好了
当你得到这个工作引擎后
你会发现当你在任意方向上移动
时候
它会“跳动”32或16个象素点
而不是“平滑”
滚动
好
这个非常容易改变
··
我们仍然是
个10x10
地图
象这样:
-X-
0123456789
| 0 ..........
Y 1 ..........
| 2 ..........
3 ..........
4 ..........
5 ..........
6 ..........
7 ..........
8 ..........
9 ..........
但是现在
我们将每个地图坐标
大小增加到16x16:
X0 X1
................ ................
................ ................
................ ................
................ ................
................ ................
................ ................
Y ................ ................
0 ................ ................
................ ................
................ ................
................ ................
................ ................
................ ................
................ ................
................ ................
................ ................
地图依旧是10x10
但我们可以在每个坐标
内部移动时依旧提留在它内部
这给了我们
个160x160
范围
我们把这称作精美坐标系统(fine cordinate system)
注意
点:我们在使用精美坐标时不能使用奇数
这会造成
些跳跃性
移动
以后你可以试
试
看
看究竟如何回事
现在我们对我们
引擎做了以下改变:
- 取得我们需要绘制在屏幕左上
x和y轴
位置
这可以在0-160的间变化
我们将的叫作vx和vy
- 将这两个数除以16来获得我们所处
地图坐标
我们把这叫作mx和my
- mx = vx / 16 my = vy / 16
- 我们需要建立
些变量来预步进(prestep)我们要画
图形块
以得到平滑滚动
效果
我们把它叫做prestep_x和prestep_y
我们还需要
些临时变量
我们称为x_off和y_off
来计算下面这些:
-将vx和vy和15进行位和操作:x_off = vx & 15 y_off = vy & 15
-我们计算预步进:
prestep_x = x_off - y_off
prestep_y = (x_off / 2) + (y_off / 2)
(这些
和你
图形块大小相关
这里是当输出
图形块为32x15时)
(未完)
Tags:
cad三视图
三视图课件
三视图
斜二视图
延伸阅读
2011-6-13
--
ps添加阴影,给视图添加阴影
2009-9-2
--
sqlserver视图:SQL Server视图管理中需要遵守的 4个限制条件
2008-12-14
--
斜二视图:斜视角视图(一)
2011-2-18
--
三视图,使用sh_helptext可以查询存储过程或视图的文本格式,对它改动后还有更好的用法...
2008-12-14
--
斜二视图:斜视角视图( 2)
2009-2-3
--
quot什么意思:架构蓝图--软件Software架构 " 4+1" 视图模型
2009-2-12
--
sitemesh:使用sitemesh建立复合视图 - 3.其他讨论-j2ee
2008-12-14
--
斜二视图:斜视角视图( 4)
2009-2-20
--
ViewState简单类型视图状态应用
2008-9-26
--
三视图:DBA必须熟悉的、最有用的DBA视图。
最新评论
发表评论
昵称
评论
验证码
点击图片更换
赞助商广告
随机更新
twitter,都怪Twitter
lg42英寸电视,LG即将展出84英寸3D液晶电视
尼尔森年终盘点:Google获选年度网站品牌
pps天与地下线,PPS加入维权队列 要求对手限期下线TVB节目
智能手机发展趋势,节日送智能手机成为一种趋势
挨踢客,挨踢客关于"银行信息泄露 事件的说明
用户信息泄露事件,陈小欢:挨踢客关于"银行信息泄露 事件的说明
马云2012,库克、马云入选2012全球最值得关注12位CEO
提升用户体验,微软努力提升Windows Phone的用户体验,新系统将支持数据云备份与恢复
JavaScript编程的语言基础
了解JavaScript
2012预测,精选四大最好的2012科技预测
12位技术领袖的新年决心(二)WordPress创始人Matt Mullenweg—开放网络
TearDrop:纸上运算的世界
Jildy:用谷歌社交搜索知识产权开发信息分类
2012视频,2012年网络视频领域不会发生的12件事
付出代价,微软让Google付出三倍代价?
三星p6800,三星 ICS 升级事件:超值包+公关费
尚品网奢侈品,网易奢侈品平台尚品商城宣布关闭 运营不足一年
qq2011,腾讯微信入选2011年最受关注十大移动互联网应用
2012发展趋势,2012年社交网络5大发展趋势预测
雷军小米,雷军宣布小米手机1月4日开放购买 发售10万台
汉字拼音排序,oracle 9i 汉字按拼音的排序
安卓平板市场,连线:四理由证明Win 8平板可为市场带来惊喜
微软WP系统两款升级版曝光:Tango和Apollo
facebook,Google、Facebook成今年访问量最大美国网站
苹果ipad,传苹果明年1月将推出中高档两款新iPad
解决Google Chrome支持网上银行
拒绝服务攻击,互联网易受拒绝服务攻击
张朝阳:推进版权的最好方式就是民间相互诉讼
热门标注
卓越网的优惠代码
(1)
卓越促销代码
(1)
qq飞车卓越代码
(1)
卓越优惠代码
(1)
敏捷制造的三要素
(1)
高性能接收器
(1)
下一个出局者
(1)
下一个受害者
(1)
下一个互联网
(1)
家庭局域网
(1)
局域网故障诊断
(1)
我终于懂了
(1)
开始懂了伴奏
(1)
程序员的成长之路
(1)
好评还能改差评吗
(1)
给了好评还能改吗
(1)
我还能做些什么
(1)
还能做些什么
(1)
2011年度盘点
(1)
盘点我的2011
(1)
最近更新
梦幻诛仙》两次增开新服瞬满
10月22日19:00时再次加开3组新服
arp绑定脚本:绑定HGE到AngelScript脚本系统
游戏开发流程:游戏开发制作流程
MD2关键帧动画实现思路方法
通用编程器:游戏引擎中的通用编程技术
3dgameengine:3D Engine 的设计架构
运动模糊:简单的运动模糊效果实现思路方法
qq游戏外挂:通过游戏策划阶段防治游戏外挂
坐标转换:3D坐标转换成屏幕坐标的思路方法
外挂制作实例:游戏外挂制作例子包含代码
setstreamsource:SetStreamSource函数和数据流的使用
depthoffield:景深效果(Depth of Field) 的实现思路方法
角色扮演游戏引擎的设计原理
hge使用:HGE使用GDI绘制中文字体
如何成为一个程序员:想成为一个游戏程序员需要有以下资料
游戏设计的十条戒律
1万游戏开发专业人员难满足10万需求
扫雷游戏vb代码:模拟实现扫雷游戏代码
界面设计:界面流程控制模式设计
最新标注
卓越网的优惠代码
(1)
卓越促销代码
(1)
qq飞车卓越代码
(1)
卓越优惠代码
(1)
敏捷制造的三要素
(1)
高性能接收器
(1)
下一个出局者
(1)
下一个受害者
(1)
下一个互联网
(1)
家庭局域网
(1)
局域网故障诊断
(1)
我终于懂了
(1)
开始懂了伴奏
(1)
程序员的成长之路
(1)
好评还能改差评吗
(1)
给了好评还能改吗
(1)
我还能做些什么
(1)
还能做些什么
(1)
2011年度盘点
(1)
盘点我的2011
(1)
最新评论