`
chenpeilei2003
  • 浏览: 191994 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一种查找精灵可移动范围的简单算法

    博客分类:
  • j2me
阅读更多
一种查找精灵可移动范围的简单算法
设起点为ox,oy , 可移动范围是mr,地图为w*h的矩形格子

算法大致思想是节点计数,从原点开始起,朝上、下、左、右四个方向发散查找可移动的格子。
可分为以下几个步骤 :
step1:
从原点起,找到4个方向可移动和格子,将结果存入数组range_data里(已存在的忽略掉).
查找的终止条件是:遇到障碍物;当前格子位置离原点大于mr
step2:
遍历range_data里的所有格子,将当前格子坐标设为原点,重复step1

step3:
重复step2

以上3步完成之后,将会得到一个完整的所有可移动范围的数组,且绕过了障碍物。
这个算法很简单,其实还可以再优化,避免重复查找已存在的格子。
  • 大小: 9.3 KB
分享到:
评论

相关推荐

    Cocos2d-x 地图行走的实现3:A*算法

    A*算法是一种启发式搜索算法,被广泛应用在路径查找问题中,如游戏中的角色导航。它的主要优点在于能够在保证找到最优解的同时,减少计算量。A*算法结合了Dijkstra算法的全局最优性和Greedy最佳优先搜索算法的效率。...

    按键精灵-抓抓单文件下载

    句柄是一种编程概念,让开发者能够对操作系统中的资源进行操作。抓抓工具可以帮助用户获取到屏幕上特定窗口或控件的句柄,这对于自动化脚本编写和调试尤其关键,因为只有正确地识别和定位到目标对象,才能对其进行...

    学习网络游戏找_怪_的思路方法(按键精灵脚本技术)参照.pdf

    总结来说,学习使用按键精灵找怪的思路和方法,不仅可以提高游戏体验,也能深入了解自动化技术,这对于IT从业者来说是一种有益的技能扩展。通过不断实践和优化,可以编写出更加智能且高效的找怪脚本。

    网络电视精灵

    S2项目是一种流行的、功能强大的Web框架,常用于构建复杂且高性能的Web应用。通过使用S2项目,开发者能够创建出响应式、可扩展的网络应用程序,包括网络电视这种需要实时流媒体处理的服务。 网络电视精灵的核心功能...

    驱动精灵(可以备份驱动,也可以升级驱动)

    3.硬件检测功能大幅增强并成为一个独立功能,现在驱动精灵可检测并显示处理器、主板、显卡、声卡等各种硬件的详细信息。 4.原“快速更新”升级为“微调模式”,修正了有时卡住的问题,并支持断点续传功能。 5.加入对...

    植物大战僵尸

    状态机是一种有效的管理这些状态变化的工具,通过状态机,游戏可以实现复杂的逻辑和行为。 6. 资源管理:游戏需要加载大量的图片、音频等资源。开发者通常会采用资源管理器来优化内存使用,确保游戏运行流畅。 7. ...

    纯C超级马里奥 源代码

    首先,我们要知道C语言是一种强大的、低级的编程语言,它允许程序员直接操作硬件,因此非常适合用于系统级编程和游戏开发。在DOS系统中,C语言可以提供高效、直接的内存管理和图形输出控制,使得开发者能够创建出...

    Java飞机大战游戏源码

    这个源代码包是为初学者和有经验的开发者提供的一种学习资源,用于理解游戏开发的基本原理和技术。以下是该游戏源码中涉及的关键知识点: 1. **Java基础知识**:整个游戏基于Java SE平台,运用了Java面向对象编程的...

    Java版RPG(日、英)游戏示例

    例如,游戏可能采用了状态机模式来管理角色的不同行为,或者使用了路径查找算法(如A*寻路算法)来计算角色移动路径。 在学习这两个示例时,开发者需要注意以下几点关键知识点: 1. **面向对象设计**:RPG游戏通常...

    吃豆豆JAVA手机游戏及其源码

    开发者可能使用了Canvas类来绘制游戏画面,Canvas是MIDP提供的一种可定制的图形界面,允许程序员直接控制屏幕像素。通过重写draw()方法,开发者可以实现游戏中的每一帧动画。 在游戏设计方面,"吃豆豆"游戏的核心玩...

    自己写的连连看程序(swing和手机两个版本)

    标题中的“自己写的连连看程序(swing和手机两个版本)”揭示了这是一个包含两种不同平台实现的连连看游戏,分别是基于Java Swing的桌面版本和基于Java ME(J2ME)的移动版本。这两个版本都是使用Java语言开发的,...

    cocos2d 做的 连连看 和 对对碰

    【对对碰】则是一种棋盘类游戏,玩家需要交换相邻的图案,使得三个或以上相同图案连成一线消除。其开发要点与连连看类似,但有以下区别: 1. **棋盘管理**:对对碰游戏通常有一个固定的棋盘,需要管理每个位置上的...

    Cocos2d-x 地图行走的实现2

    1. **Tiled Map**:Cocos2d-x 支持Tiled Map格式(TMX),这是一种用于创建2D地图的XML文件格式。在Resources文件夹中,可能包含.tmx文件,这些文件定义了地图的层、对象组和属性。我们可以使用`cocos2d::...

    Python库 | tcod-11.8.1-cp37-cp37m-win_amd64.whl

    `tcod`的安装可以通过Python的包管理器`pip`完成,但在这个例子中,我们拥有的是一个`.whl`文件,这是一种预编译的Python二进制包。`cp37`代表它是为Python 3.7版本编译的,`cp37m`表示它具有Python的“micromodules...

    c语言奔跑的火柴人游戏源码.rar

    .rar是一种常见的文件压缩格式,用于存储多个相关文件。解压后,开发者可以查看和学习代码,理解游戏背后的逻辑和编程技巧。 【标签】:“源码”意味着这是程序的原始文本,程序员可以直接查看和修改。而“毕业设计...

    打砖块游戏

    打砖块游戏是一种经典的街机风格游戏,深受玩家喜爱,尤其对于编程爱好者来说,它不仅是一种娱乐,也是学习编程和游戏开发的好项目。本压缩包提供的"brickBracker"文件可能包含了一个完整的打砖块游戏的源代码或者可...

    python 游戏源码- pygame-games

    1. **Python**:Python是一种高级编程语言,以其简洁的语法和可读性强的特点而受到广泛欢迎。在游戏开发领域,Python虽然不是首选的高性能语言,但它适合快速原型设计和教学目的,特别是对于初学者。 2. **Pygame**...

    毕业设计项目开发-java手机游戏(堡垒)的设计与开发(源代码+论文).zip

    Java作为一种跨平台的编程语言,因其灵活性和丰富的库支持,成为了移动游戏开发的常用工具。下面我们将详细解析这个项目的各个知识点。 1. **Java编程基础**:Java是面向对象的语言,它提供了丰富的类库,如集合...

    Neko-Warrior:龙战士+猫

    敌人部分提到"让PC追逐光标/敌人(需要简单的路径查找)",这意味着游戏具有AI系统,让敌人能够追踪玩家的角色。在JavaScript中,可以实现这种功能通过编写算法来计算敌人与玩家之间的相对位置,然后根据预设的寻路...

    VC++游戏雷霆战机源代码.rar

    C++是一种面向对象的编程语言,用于编写高性能、可移植的应用程序。在雷霆战机游戏中,C++被用来定义游戏对象(如飞机、子弹、敌人)的类,实现游戏逻辑和交互。 2. **DirectX**:在VC++中开发游戏,尤其是图形密集...

Global site tag (gtag.js) - Google Analytics