斜45度游戏开发(二)

Unity使用Isometric Z As Y Tilemap创建2.5D地图(一)如何创建Tilemap 本文主要面向很多像我一样对Unity Tilemap不是很了解的Unity游戏开发爱好者,使用Unity2019讲解如何使用Isometric Z As Y Tilemap来创建2.5D游戏地图。本文会从无到有的一步一步说明如何创建Tilemap及Tile Pallette对象,如何调整相关属性。本文会着重说明一些官方教材一带而过的一些基本的细节问题。 阅读详情
                                                     斜45度游戏开发(二)
作者:Flysky 2005

 

  上一篇我们讲了地图的结构和地图的基本的绘制,这个属于较简单的步骤,我做这些也不是特别的麻烦,如果你是老手,那么1天对你来说已经足够,我们这一组文章也没有讲任何的优化技巧,如果你想优化,还是需要在实际中摸索,当然,我有时间也会写的。

  这一篇我们主要研讨地图的物品、景物、NPC建立,并说一下遮挡的简单实现方法。

NPC/主角结构:
  主角和NPC在一起比较好,也便于管理(再次声明:作者已经不使用这些方法,这些方法只适用于初学者!),结构如下:

struct stRoleC
{
    //判断
    bool IsNPC;  //是不是NPC

    //----------Role基本--------------
    char *Name;     //NPC名字
    bool VS;  //是否有这个人物(是否可见)
    int x,y; //人物的XY坐标值
    RECT roler; //人物矩形
    int face;        //NPC面向的方向 0. 下 1. 上  2.左  3.右
    char *facePic;

    //----------属性值-------------
    int HP,MP; //目前的HP,MP
    int MaxHP,MaxMP; //满HP和MP
    int Level; //目前的等级
    int Exp; //目前的经验
    int MaxExp; //满血的经验

    //----------寻路相关--------------
    bool move;
    int movex,movey; //移动目标点

    //----------NPC相关---------------
    char *EScrFName;    //当触发人民的脚本文件名
};

struct stRole
{
    //判断
    bool IsNPC;  //是不是NPC

    //----------Role基本--------------
    char Name[32];     //NPC名字
    bool VS;  //是否有这个人物(是否可见)
    int x,y; //人物的XY坐标值
    int oldx,oldy; //人物上一步的XY值
    RECT roler; //人物矩形
    POINT PicS; //距像素坐标的偏移
    int face;        //NPC面向的方向 0. 下 1. 上  2.左  3.右
    bool facejd; //上一步的站向
    char facePic[64];
    int facej;       //NPC方向的脚步 0 1 2 3
    vector<POINT> zd; //遮挡列表

    //----------属性值-------------
    int HP,MP; //目前的HP,MP
    int MaxHP,MaxMP; //满HP和MP
    int Level; //目前的等级
    int Exp; //目前的经验
    int MaxExp; //满血的经验

    //----------寻路相关--------------
    bool move;
    vector<POINT> Path; //各个步数
    int PathSteps; //步数
    int PathCSteps; //已经走过步数
    int movex,movey; //移动目标点

    //----------NPC相关---------------
    char *EScrFName;    //当触发人民的脚本文件名
    bool WalkLoop;  //是向前走还是倒退

    //----------Surface--------------
    LPDIRECTDRAWSURFACE7 lpDDS_ROLEP; //Role的图片
    LPDIRECTDRAWSURFACE7 lpDDS_ROLEL; //Role的logo
};

  这两个结构其中stRole是内部储存的结构,而stRoleC是对外的接口,其实你完全不必那样,用一个也可以,具体的完全随你便。

  注意:以下的代码和KGameSrc一点关系也没有。

景物的建立:

struct st_scene
{
    int x,y; //房子等东西右下角的坐标
    int Width,Height; //物品的大小,利用这个可以选出房子等左上角的坐标
    LPDIRECTDRAWSURFACE7 lpDDS_SCENEPIC; //房子等的图片
    unsigned short b_isablock; //0: 不阻碍 1: 全部阻碍 2:使用阻碍表
    struct {unsigned int data;}**v_block; //阻碍表,比如房子,门那里是不遮挡的
    //注意:因为我们构件的是<<魔力宝贝>>式,所以陷阱并不是归这里
};

  我也注释了,应该很好看吧。

  遮挡问题:

  这个确实比较棘手,如果是单格遮挡,可以看云风的遮挡算法,可我们是多个格的,怎么办呢?

  根据几位前辈的讨论,他们想出了使用X+Y算法(画家算法),但当时不是很成功,我就做一下补充。

  首先,把地图上的一切东西(不管是物品还是主角)串成一个链表(遮挡链表),然后根据X+Y的值有小到大(左上到右下)排列,最后绘制,这样就完成了,很简单吧(哪位可以帮我画一下图,感激不尽.)

  优化方法也有:那就是这个景物的排列让地图编辑器排列,然后这个不动了,光人物在链表中的位置移动,这样就完成了快速遮挡。


  好了,基本的东西我也写完了,由于现在我在做操作系统,语言说的太急,下一次我会把更好的优化代码和例子程序给大家,谢谢大家观看!

[U3D] 2D斜45°地图构建记录 关于实现一个简单的2D斜45°地图的构建记录。 数据类: SoMap.cs 用于存储构建出来的地图. using UnityEngine; public class SoMap : ScriptableObject { public int mapID; public... 阅读详情

相关推荐

零经验小白的独游历程——俯视角45度游戏,人物用2D还是3D

前言 经历了之前这么多波折,3d模型和动画还是没法儿用,这时我们开始寻找其他的解决办法。 我们当时想做的是一个俯视角45度的2.5D游戏,为什么是2.5D游戏?因为这种游戏由于视角是固定的,所以没有必要全部素材都用3D素材,常常是2D与3D的混合。 这种类型的游戏虽然没有横板游戏那么好制作,但是在难度上要低于3D游戏,对于美术素材也可以用比较便宜、制作周期短的2D素材。 比如说去年很火的《哈迪斯》就是2.5D游戏,他的人物以及大部分的场景都是3D模型。但是也有小部分场景素材用的是2D素材。 再古早一点的这

安都奕雨的博客 1万+

unity2.5D 45度菱形格子根据坐标点找到对应行列的格子

关于在2.5D的45度格子拼成的地图上找到对应行列的格子

qq_33797326的博客 1456

斜45度地图简介、坐标系转换以及数据碰撞

      手机平台上开发斜45度地图系统的游戏,相信做惯了正面俯视的开发者刚接触总很不习惯。所谓斜45度游戏,也就是常说的2.5D游戏,用斜方向俯视的角度来增强立体感的一种技术。这种技术在PC平台上早就流行了,手机平台由于屏幕表现力的限制,大部分使用正面视角。但随着手机屏幕分辨率不断增大,斜45度视角的游戏出现得越来越多。       斜45度地图系统分Staggered、Slide、Diam...

LeeStorm的移动游戏探秘 2625

Unity 2d游戏 前后层级渲染

Unity 2d游戏 前后渲染层级

jyh905的博客 704

实时斜45度地图,人物行走与地块选择示例

使用高度图实时地图,实现地块选择与人物行走的原理示例   相对上一个示例看起来并无多大变化,但实质上有了很大的变化,首先在图块的显示上做了一定的优化,修正了之前在图块显示处理时的一些错误算法。并加入了随机树木。   还展示的即是地块的选择和人物在地图上的行走:由于地形高低不同,而且是菱形格,所以地块的选择并没有一些人想象中的那么简单;人物的行走就没有什么特殊的了,愿各位看的懂。   示例中人物赵灵儿图片来自大宇资讯集团软星科技北京有限公司的《仙剑客栈》,请各位不要拿去用于商业作途,否则一切后果自负。

Unity3D开发的斜45度射击游戏 源代码

Unity3D开发的斜45度射击游戏 源代码

斜45度游戏开发(一)

                                                           斜45度游戏开发(一) 作者:Flysky 2005 注:写的十分粗糙,如果看不懂请对照KgameV1.0源代码浏览。  最好的游戏末过于RPG游戏了,但如果赢得大众的好评,那么必须要采用(甚至说现在是一种标准)斜45度地图、人物游戏引擎,下面我们分别展开分析。一.

amd k_7的专栏 2933

Unity使用设计模式制作2d游戏平台

时长:250节课(26h 11m 中英字幕) |大小解压后:14.2 GB 含课程文件 你会学到: 如何在Unity 2020中创建2D平台 如何在一个完整的游戏项目中使用状态模式、策略模式和工厂方法模式 如何编写可维护的C#代码 如何保存游戏状态 如何创建多个级别 您将学习如何: 创建一个可以移动和跳跃的角色,并扩展其角色控制器,增加新的功能,如:攀爬行为,攻击逻辑等。 如何为敌人重用玩家角色控制器 如何制造3种类型的敌人以及一个末级boss 如何使用因子方法模式使代码更易维护 如何利用策略模式实现简单的人工智能系统 我们将实施的特定平台化功能: 获取资源 重生系统 添加带有单向碰撞器的平台 为我们的水平创造视差效果 近战和投掷武器 还有更多!

Flame引擎斜45度视角游戏开发终极指南:如何实现沉浸式2D游戏体验

在Flutter游戏开发领域,Flame引擎凭借其轻量级架构和丰富的2D渲染能力,已成为构建斜45度视角游戏的首选方案。本文将深入探讨如何利用Flame引擎实现专业的斜45度视角游戏,涵盖从基础概念到高级优化的完整流程,为开发者提供一站式解决方案。 ## 问题定义:传统2D游戏开发的局限性 传统2D游戏开发在面对斜45度视角需求时,往往面临三大挑战: **坐标转换复杂度**:斜45度视角需要

gitblog_00471的博客 939

【GNSS数据处理】赫尔默特(helmert)方差分量估计解析及代码实现

一、背景 helmert方差分量估计是方差-协方差分量估计的一个特例,在近现代测量平差中,我们处理的数据有明显的变化,数据序列中包括粗差,数据类型不再单一等问题。当我们遇到数据类型两类及以上时,可以考虑使用赫尔默特方差分量估计,应用的前提条件是不同类别的数据需要相互独立,这样我们的权阵就是对角阵。 二、引入 我们先用王者荣耀这款游戏引入一下,王者可是撩妹利器,哈哈,就像你有两部手机(安卓和苹果),带妹的时候大概率会用苹果,因为游戏体验方面苹果要优于安卓,带妹的时候不掉帧,不卡顿,不闪退,要操作有操作,有皮肤

ANKP的博客 1万+

阿里巴巴-AI Agent工程师面试题精选:10道高频考题+答案解析(附PDF)

阿里巴巴AIAgent技术面试要点摘要(149字) 阿里巴巴在AIAgent领域布局完整,面试重点考察系统架构、幻觉治理、成本优化等核心能力。候选人需掌握分层架构设计、多Agent协作死锁处理、Token成本优化策略等关键技术。面试强调工程落地能力,包括工具调用容错、记忆系统设计、安全防护等实践要点。评估体系需覆盖效果、效率、成本多维度指标。未来趋势关注垂直领域专业化、多模态融合等方向。建议准备实际项目案例,突出技术深度与业务价值的结合,展现系统思维和工程能力。

ZHHHHH15的博客 619

探索Flutter游戏新维度:斜45度视角的艺术与技术

你是否曾经被经典RPG游戏中那种立体感十足的斜45度画面所吸引?这种看似简单的视角变换,却能让2D游戏瞬间拥有沉浸式的深度体验。今天,让我们一起揭开Flame引擎如何用创新的方式,让怀旧风格在现代移动设备上焕发新生。 ## 为什么斜45度视角依然重要? 在3D游戏盛行的今天,斜45度视角(Isometric Perspective)为何依然具有独特的魅力?答案在于它巧妙平衡了视觉效果与开发成本

gitblog_00312的博客 700

抖音用户评论和ID的采集方法

随着5G时代的普及,各大运营商的套餐纷纷推出,使得流量成本进一步降低。同时5G线路高宽带、低延迟的技术特性和手机普及,让视频用户访问量快速增加。 由于大量的视频工具和拍摄APP的提供,让短视频的拍摄、制作包括发行都变得更加简单便捷,越来越多的普通人可以投入视频创作,创造了更丰富的互联网内容,视频作者从视频推广中能获取粉丝和推广收益。 目前抖音就是目前最重要的短视频平台之一,要及时获取上面的用户评论和ID,需要结合爬虫代理实现采集方案,下面的代码就能快速采集相关信息: package htmlunit; i

ssbt_2020的博客 6787

3步掌握Flame引擎斜45度视角:让2D游戏拥有3D沉浸感

还在为2D游戏画面单调而苦恼?想要复刻《仙剑奇侠传》《红色警戒》等经典游戏的立体视觉体验?Flame引擎的斜45度视角实现方案,让你无需复杂3D建模就能打造出令人惊艳的沉浸式游戏场景。本文将通过三个简单步骤,带你快速上手斜45度视角游戏开发。 ## 什么是斜45度视角?怀旧游戏的艺术密码 斜45度视角(Isometric View)是一种特殊的投影技术,通过将2D瓦片以特定角度排列,创造出视觉

gitblog_00662的博客 1108

高项49个过程,输入、工具技术、输出的思维导图

为了制定项目章程的管理方法主要是采用了数据收集技术,例如通过头脑风暴,通过召集主题专家和团队成员收集信息、解决方案,并在短时间内获得大量创意,并对大量创意进行分析和排序,选出最优化最适合本项目方案,并对项目成员的不同差异观点,进行了引导和对冲突的管理,最终有助于项目干系人的目标、成功标准的内容达成一致意见,形成完善的项目章程。在本过程中得到项目章程,在制定项目章程中需要包括信息有:项目名称、项目目标、项目总里程碑进度表、项目经理、主要干系人及财务预算信息。本过程在仅开展一次,或仅在项目的预定义点开展。

Legend_Jiang的博客 6181

【通信协议】I2C总线(一主多从)

I2C总线(一主多从)之软件模拟代码详解

m0_75090944的博客 9842

打造沉浸式游戏世界:Flame引擎斜45度视角深度开发实战

想要为你的Flutter游戏注入立体感与深度吗?Flame引擎的斜45度视角技术能够让你轻松实现经典RPG游戏的沉浸式体验。无需复杂3D建模,仅通过2D资源即可构建出层次分明的游戏场景,为玩家带来全新的视觉享受。 ## 为什么选择斜45度视角? 斜45度视角(Isometric Perspective)通过特殊的瓦片排列方式,在2D平面上创造出3D空间的错觉。这种技术不仅让游戏画面更加生动立体

gitblog_00343的博客 761

Java数据可视化实战:基于JFreeChart的数学函数绘图工具开发

JFreeChart是一个开源的Java图表库,适用于Swing和JavaFX应用程序。折线图和面积图柱状图和饼图散点图和气泡图组合图表3D图表等实现自定义数学表达式解析:java复制下载throw new IllegalArgumentException("表达式不能为空");// 验证表达式try {}");throw new IllegalArgumentException("无效的数学表达式: " + e.getMessage());try {

2201_76125393的博客 365

怀旧游戏画面新活力:Flame引擎斜45度视角实现指南

你是否怀念经典游戏中立体感十足的斜45度画面?想在Flutter项目中快速复刻这种怀旧风格却不知从何下手?本文将带你用Flame引擎的flame_tiled插件,从零开始打造专业级斜45度视角游戏场景,无需复杂3D建模,只需简单配置即可让2D画面呈现出沉浸式深度。 ## 斜45度视角基础:从像素到立体 斜45度视角(Isometric Perspective)通过特殊的网格排列,让2D图像产生

gitblog_00202的博客 1212

PCL 最小生成树用于法向量定向【2025最新版】

PCL 最小代价生成树用于点云法向量的定向。博客长期更新,本文最近更新时间为:2025年9月15日。

点云侠的博客 2068

MicroCap声学仿真介绍(四)-扬声器仿真

将“障板”模块放置到工作区,“Param:AREAm2=”是指的是障板孔的面积,一般可以输入喇叭的面积Sb;“Param:DISTm=”指的是测试麦克风与障板的距离,这里我们可以填入1米,小喇叭可以填入0.1m;此时工作区的电阻是竖直的,为了方便,我们需要将其变成水平的。其中,频率范围为20~20KHz,仿真点数为500个点,先仿真频响曲线和相位曲线,点击左上角的run,界面如下。鼠标单击工作区,弹出如下界面:在弹出的界面中输入“.define Re 3.82 “,点击”确定“按钮。

山无忧的博客 2998

终极指南:如何用Flame引擎打造沉浸式斜45度游戏场景

Flame引擎是一款功能强大的2D游戏开发框架,特别适合创建斜45度(等轴测)游戏场景。本指南将带你了解如何利用Flame的核心组件和工具,从零开始构建令人惊叹的斜45度游戏世界。无论你是游戏开发新手还是有经验的开发者,都能通过本教程掌握斜45度场景的设计与实现技巧。 ## 为什么选择斜45度视角? 斜45度视角(等轴测投影)能在2D平面上创造出3D深度感,让游戏场景更具沉浸感。这种视角广泛应

gitblog_00892的博客 705

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Tiled实现斜45度瓦片地图

首先是我最近在做的一个项目的需求,要做一个斜45度角的大地图,里面有很多的建筑,会有人在里面走来走去。一个手指按住滑动可以拖动地图,两个手指按下可以调整地图的放大和缩小。   1、tiled新建地图,加入我们要做一个480*320的地图   地图方向:选择45度(交错的)这样生成的地图就基本上是矩形的,比较方便。个人感觉用正常方式的也可,不知道有人尝试过没有。 c

u013790419的专栏 8915

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

cocos2dx使用TiledMap创建斜45度地图场景

         做游戏,场景是一个很重要的部分,如果缺少这一步,很难做出好的游戏,对于cocos2dx来说,有很多2D的地图编辑器可以用,效果都还可以,其中Tiled是支持的比较好的,它支持Tiled编辑出来的几种模式,比如正常、45度地图等。      如果要做小型的手机游戏,使用正常模式就足够了,cocosdx支持的很好,如果要具有3D感,那么可以使用45度正常地图。但是

水上漂的专栏 1万+
上一篇: 斜45度游戏开发(一)
下一篇: X文件的使用(完整)
amdk_7
博客等级 码龄22年 12粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值