科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用VB.NET实现你的游戏梦想

用VB.NET实现你的游戏梦想

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

开发游戏需要对DirectX的调用,原来除了C 没有其他语言可以胜任这份工作

作者:付佳亮 来源:微软社区 2007年11月9日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
制作2D游戏的基本知识就这些了,我们现在来说一下游戏的构架。我们以一个简单的回合制RPG游戏为例。

  我建议把所有DirectX的接口全部封装起来。这样操作起来方便很多。

  游戏中需要英雄类、物品类、怪物类、地图类

  首先先说英雄类包含的内容有HP、MP、技能、身上装备、所会武功、人物坐标。

  其中比如所会技能此技能等级,做成一个自定义类型,方法是

Public Structure myGest

Public GestID As Int16 '武功编号

Public GestLV As Int16 '武功等级

End Structure

  比如最多会十种就可以定义为Public Guest(9) As myGest

  同样的道理人物坐标也一样

Public Structure myXY

Public iX As Int16 'X轴坐标

Public iY As Int16 'Y轴坐标

Public iAsp as Int16 '头朝的方向

End Structure

  当然还有其他的一些属性,这里就不一一列举了。

  物品类

  比如物品分种类的,每种物品功能不同,比如头盔就不能装备在身上当然也不能吃,这里我们用到一个枚举类型,定义方法是

Public Enum myResClass '物品分类

Head '头装备

Body '身上装备

Hand '手上装备

Eat '食品

Other '其他

End Enum

Public ResClass As myResClass '物品类型

End Class

  其它当然还有很多属性,如名称,重量,性能等等。

  怪物类

  类似于英雄类有也相似的属性。

  地图类

  这里我们把显示得地图单独拿出来作为一个类,是因为,一张地图并不是每个地方都可以走的,从位图中可是很难识别出那些是阻挡物的。并且地图上还有一些NPC,可以与其对话等等。这一切都要从地图文件中读取。

  地图文件象一张二维表,与你地图位图相对应,比如人物向上移动TOP-=5然后判断,现在所在点在二维表中是否可以行走,是否有阻挡,如果阻挡取消操作,人物不做移动。

  然后设定整体流程,为了操作不会因按键点击速度而影响移动速度,所以我们用时间来控制,设置一个Timer控件,然后根据当前状态不同而设定操作的不同,比如操作开始界面、移动模块、对话模块、战斗模块、交易模块、主菜单模块。当前状态用iNowState变量存储

Select Case iNowState

Case 0

'开始界面

Case 1

'移动模块

Case 2

'对话模块

Case 3

'战斗模块

Case 4

'交易模块

Case 5

'主菜单

End Select

用eInput来存储键盘事件。定义如下:

Public eInput As System.Windows.Forms.Keys = Keys.None

'读取存储键盘信息

Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)

eInput = e.KeyCode

end sub
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章