我正在尝试为XNA制作一个基于回合制的roguelike引擎.我基本上是使用一个名为libtcod的基于SDL的roguelike库完成之前的工作来移植游戏.如何修改基本的XNA模板,让游戏不是每帧重绘一次,而是在我想要的时候?
我正在学习Rails,到目前为止一切顺利.我目前最大的问题是:如何手动将行插入数据库?我已经有了用于创建DataTypeOne行的脚手架,但是我希望在提交DataTypeOne的表单时创建一行DataTypeTwo(并让它引用DataTypeOne的id ...但我想我可以使用它出我自己).
提前致谢.
我正在寻找一个Rails插件,它可以简化Ruby on Rails最新版本的"朋友"系统或社交网络系统的开发.
在有人说之前......我知道,我应该自己创建,从头开始.我完全有能力(我认为).我只是在寻找一个好的插件,可以让我的生活变得更轻松一点.)给我一些想法供参考.
我尝试制作自己的身份验证系统,做了我认为没问题的事情,但后来切换到restful_authentication并意识到我的系统比较糟糕.
提前致谢...
我有一个名为"Entity"的类,有两个子类:"Creature"和"Item".(我正在制作一个游戏.)生物有两个叫做"攻击"的功能,一个用于攻击生物,一个用于攻击物品.到目前为止,一切运作良好.
现在我正在研究拍摄位,所以我有一个名为SelectTarget()的函数.它需要玩家视图中的所有实体(包括生物和物品),玩家可以射击并让玩家选择一个.
所以问题在于:SelectTarget()返回一个实体,但我需要一些代码来确定该Entity是Creature还是Item,并对其进行适当处理.
因为这个问题在没有任何代码的情况下看起来很空,而且我不能100%确定我的解释是否足够好,这就是我所处的位置:
if (Input.Check(Key.Fire)) {
Entity target = Game.State.SelectTarget.Run();
this.Draw();
if (target != null) {
//Player.Attack(target);
// This won't work, because I have:
// Player.Attack((Creature)Target)
// Player.Attack((Item)Target)
// but nothing for Entity, the parent class to Creature and Item.
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
(如果游戏布局的方式看起来很怪异,那就是roguelike.)
下学期,我将用C进行游戏(特别是C89).来自C#等高级语言,我要做的第一件事就是制作一个实体列表(游戏对象),每一帧,循环遍历每个实体并运行他们的Update和Draw方法.将这种意识形态转换为C,我的想法是开发一个"List"结构,它包含一个指向void指针数组的指针,并使函数能够从列表中添加,获取和删除条目.如果将对象添加到List但数组太小,则将数组重新分配为两倍大的数组.有了这个系统,当我生成一个敌人时,我可以将一个指向其Entity结构的指针添加到List中,然后每个帧循环遍历List,将每个void指针元素作为指向实体的指针,然后将它传递到entity_update(Entity *)
和entity_draw(Entity *)
相应的方法.
在我看来,只要我100%确定只在List数组中放入指向Entity结构(转换为void指针)的指针,就不会有任何问题......但是当我向同学提到这个时,他说他认为将void指针转换为指向其他东西的指针存在性能缺陷.从我可以看出,在互联网上环顾四周,真正的问题是编译器无法正确优化代码,因为编译器事先知道指针指向哪种类型.在我的情况下,这最终会成为一个问题吗,我想循环通过一个潜在的大型虚拟指针数组,每秒六十次?在实体指针数组中存储指向实体的指针并没有什么大不了的,具有大的,预定义的最大大小,然后进行绑定检查以确保如果没有剩余空间则不会产生敌人数组......但我只是想在开始研究游戏的基本底层引擎之前确定一下.
c# ×2
ruby ×2
activerecord ×1
c ×1
c89 ×1
class ×1
inheritance ×1
xbox360 ×1
xna ×1
xna-4.0 ×1