游戏开发论坛

 找回密码
 立即注册
搜索
楼主: sea_bug

斜45度游戏开发(一)

[复制链接]

0

主题

275

帖子

676

积分

高级会员

Rank: 4

积分
676
发表于 2005-12-22 10:20:00 | 显示全部楼层

Re:斜45度游戏开发(一)

?在??虍?面很??
人物待?C?赢?loop,地?D?赢?物件loop
加????B光照或是全屏的日夜?化特效
?矩形??淼暮锰?都?]了...
???ps提?N有限

可能只有非常??B的??虍?面才?合
如??萎?面=.=或是不?暂S的??
不???萎?面?高fps也?]有???意?

248

主题

2674

帖子

2702

积分

金牌会员

Rank: 6Rank: 6

积分
2702
QQ
发表于 2005-12-22 13:06:00 | 显示全部楼层

Re: Re: Re:斜45度游戏开发(一)

绝望: Re: Re:斜45度游戏开发(一)


我发现你说的话越来越业余了。不懂就不要乱说。
我怀疑你到底知不知道什么叫“斜45度游戏”啊?现在有哪个2.5D游戏不是“45度角”?


业余没所谓阿,但起码我是正确的。
我的信念是正确合理,而不懂什么业余专业之类的东西。
因此我不是很理解你的理念是什么东西。
[em18]

23

主题

515

帖子

552

积分

高级会员

Rank: 4

积分
552
发表于 2005-12-26 15:16:00 | 显示全部楼层

Re: Re:斜45度游戏开发(一)

绝望: Re:斜45度游戏开发(一)

楼上的高手老大,去那里可以下载得那本“外国那个经典的斜45教程”啊。
看什么书才能学习斜45度游戏开发啊???!


http://www.gamedev.net/reference/articles/article744.asp
英文版

有中文翻译,但是没找到,这篇很基础的。:)

23

主题

515

帖子

552

积分

高级会员

Rank: 4

积分
552
发表于 2005-12-26 15:29:00 | 显示全部楼层

Re: Re: Re: Re:斜45度游戏开发(一)

茹枫: Re: Re: Re:斜45度游戏开发(一)



业余没所谓阿,但起码我是正确的。
我的信念是正确合理,而不懂什么业余专业之类的东西。
因此我不是很理解你的理念是什么东西。
[em18]


斜视角只是游戏视觉的一种表现形式。
和游戏类型没有什么关系,只不过因为仿3D曾经风靡一时。呵呵~

12

主题

423

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
发表于 2006-1-22 12:33:00 | 显示全部楼层

Re:斜45度游戏开发(一)

  很感谢你发表这文章,让我找到了:

    //屏幕坐标转换成斜45度的坐标
    inline void MDToMI(int Ix,int Iy,int &Dx,int &Dy)
    {
        Dx=int(0.5*((Iy<<1)+Ix)/(TileWidth>>1));
        Dy=int(0.5*((Iy<<1)-Ix)/(TileWidth>>1));
    }

以前作的2D游戏都是90度角的,现在要作45度角真的太容易了,
你的格子的大小是32*16:TileWidth=32;TileHeight=16;
但我不是这样想,我把格的大小改为都是2
即TileWidth>>1=16 改为 2>>1 = 1
所以/(TileWidth>>1);这个去丢.就是
        Dx=int(0.5*((Iy<<1)+Ix));
        Dy=int(0.5*((Iy<<1)-Ix));
但为什么Iy要左移1呢?对于*0.5我看也是个经验值,于是我就改为:
    inline void MDToMI(int Ix,int Iy,int &Dx,int &Dy)
    {
        Dx=Iy+Ix;
        Dy=Iy-Ix;
    }
45度角就这样的改成了很高兴.
你的"//屏幕坐标转换成斜45度的坐标"
应该说是90度角坐标改为45度角坐标合适点.
谢谢,改天我把效果发出来让大家看看

接着我说说对于45度角的碰撞检察和遮挡处理,
其实这个与45度角还是90度角都是一样的,
就是说90度转为45度那只是在渲染时才将
坐标转换,对于碰撞检察还是90度角坐标的.
遮挡处理即层次处理:对于角色还是用角色排序的方法,
格子的遮挡也是用画家算法.我的就是这样做的.
能明白我说的吗?
如果学过3D图片处理,将会很容易明白,它们都只是在
渲染时才将坐标从90度转为摄像机头对场景的角度坐标
再渲染到屏幕上,当然3D中还会作相应的缩放效果.
以前我不会只是因为找不到90度角坐标转为45度角坐标的
转换算法,没想它是如此的简单:
dx=y+x;
dy=y-x;
谢谢.

12

主题

423

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
发表于 2006-1-22 13:49:00 | 显示全部楼层

Re: 斜45度游戏开发(一)

现在我很想看明白你的优化问题,但看来看去就是不明白你的思路.


传统的地图绘制方法:

for(int i=0;i<height;i++)
{
    for(int t=0;t<width;t++)
    {
        绘制。。。。。
    }
}

经过改进我这样做

if (MapBx!=x&&MaxBy!=y)
{
    for(int i=0;i<height;i++)
    {
        for(int t=0;t<width;t++)
        {
            绘制。。。。。
            更新MaxBx和MaxBy
            备份地图(存成图片)
        }
    }
}
else
{
    还原地图(取出图片)
}

看不明白这里,你看已经绘制了为什么还要存成图片呢?
难道它在绘制时是看不见的吗?
            绘制。。。。。
            更新MaxBx和MaxBy
            备份地图(存成图片)
然后还有一个:
还原地图(取出图片)
还原地图是什么回事?
if (MapBx!=x&&MaxBy!=y)
MapBx和x分别是谁的坐标,什么没有说明呀?

15

主题

90

帖子

90

积分

注册会员

Rank: 2

积分
90
发表于 2006-1-22 13:51:00 | 显示全部楼层

Re:斜45度游戏开发(一)

昨天玩了一下圣剑   发觉很像仙剑!!!

12

主题

423

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
发表于 2006-2-3 21:50:00 | 显示全部楼层

Re: 斜45度游戏开发(一)

这个就是示例

sf_200623215026.rar

28.63 KB, 下载次数:

14

主题

163

帖子

178

积分

注册会员

Rank: 2

积分
178
QQ
发表于 2006-2-12 18:28:00 | 显示全部楼层

Re:斜45度游戏开发(一)

我后边那篇文章的办法就是排序法,具体的请看提高篇:
http://www.pp28.com.ru/blog/article.asp?id=16

11

主题

65

帖子

65

积分

注册会员

Rank: 2

积分
65
QQ
发表于 2006-5-10 11:21:00 | 显示全部楼层

Re:斜45度游戏开发(一)

heihei
tiie是什么?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 15:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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