- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想在我的 SpriteKit 游戏中稍微改变一下我的敌人。他们是如此......可以预测。 《以撒的结合:重生》中遇到的各种敌人启发了我。
例如,假设我想实现在 enemy.health < 50.0f
时 split 成两个较小的敌人的敌人。 .在一个简单的场景中,这可以通过遍历我所有的敌人从我的主场景更新循环来完成。像这样的东西:
if(enemy.health < 50 && enemy.type == kEnemyTypeSplitsIntoTwo) {
CGPoint position1 = CGPointMake(enemy.position.x+20,enemy.position.y);
CGPoint position2 = CGPointMake(enemy.position.x-20,enemy.position.y);
[enemy killEnemy];
[self spawnNewEnemyWithType:enemyType andHealth:50 atPosition:position1];
[self spawnNewEnemyWithType:enemyType andHealth:50 atPosition:position2];
}
这可能适用于简单的情况。但这是我绝对想避免出现在我的主场景更新循环之外的东西。问题是我的敌人类实际上是 SKSpriteNode
的子类.
对于这种情况,理想情况下我想要一个新类,例如 ComplexEnemy
或 EnemyGroup
类来处理这个,这样我就可以实现更复杂的敌人行为和模式(想想史诗般的 boss 战斗有多个阶段)。我想这个新类可能会派生自 SKNode
(甚至 NSObject
?)并生成多个 Enemy
在某些点的实例。
我的思路是否正确?我很想知道人们用什么方法来实现这种行为,最好是举几个例子。
-直流
tl;dr - 成群结队的敌人,具有多个阶段的 Boss。你们是怎么做到的?
最佳答案
使用SKSpriteNode作为敌人类没有错。我一直这样做。例如,如果您想添加一个健康栏,您只需将其添加为子项即可。
您的问题主要是基于意见,因此希望它能尽快结束。然而,这仍然是一个很好的问题。我建议您使用一个或多个敌人 SKSpriteNode 类来处理您的工作量,因为它可以使初学者更轻松。您当然可以只使用一个敌人类并让它的更新方法根据属性处理各个方面。例如:
-(void)update:(NSTimeInterval)currentTime {
if(self.enemyType == kDragon) {
// do big stuff
}
if(self.enemyType == kDwarf) {
// do small stuff
}
}
我目前正在开发一个项目,该项目有 10 种不同的敌人,每种都有 4 种行为选项。这一切都由一个类 (SKSpriteNode) 处理。
这一切都归结为您想要什么以及您如何安排代码来完成工作。我建议您仔细考虑您正在尝试做什么,如果遇到困难,请就更具体的问题寻求帮助。
关于ios - 复杂的敌人行为和模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28221379/
好的,这就是我的错误:'Enemy' 未在此范围内声明。错误在 map.h 文件中,即使 map.h 包含 enemy.h,如图所示 #ifndef MAP_H_INCLUDED #define MA
这个问题已经有答案了: How to make enemy follow player in pygame? (2 个回答) Enemy doesn't follow player (pygame)
我试图让我的 Canvas 游戏中的 Sprite 不断向玩家移动,直到它发生碰撞。执行此操作的相关函数是 update() 函数: Enemy.prototype.update = function
我在无休止的运行游戏中遇到了麻烦,主要是我创建的两种敌人的产卵,当我们调用函数“startDifficultyTimer”时,有时会产生两个敌人。 基本上,当我调用该函数时,游戏会在同一行生成 2 个
从性能角度来看,什么是最正确的 - 敌人和武器之间的交互算法(这里的子弹可能更正确)? 每个 Sprite 的每一个子弹都应该通过“collidesWith”方法检查碰撞情况,并在完整的敌人列表上进行
遇到了一个问题,即敌人会向玩家开火,但似乎总是开到高处或向玩家的一侧,即使玩家是静止的并且没有移动。我是不是在我的代码中做错了什么导致了这个疯狂的问题,或者它只是一个随机的烦人的错误? 为播放器使用相
我是新来的快速编程。我想使用类节点将敌人生成到随机位置。我试图搜索随机生成敌人的代码,但它似乎与我的代码无关。 这是我搜索随机生成的代码。 import SpriteKit class GameSce
我最近遇到了一些问题,只是在我正在制作的游戏中传递对对象/敌人的引用,我想知道我是否使用了错误的方法。 我的主要问题是处理敌人和物体,而其他敌人或玩家可能仍然与它们有联系。 例如,如果你有一只兔子和一
在我的 2d 游戏中,我有一个金币和铜币的概念如下: when normal enemies die ..they drop a random gold or copper coin. Now whe
我是新来的,所以我希望你能帮助我。 我正在学习制作简单的 cocos2d 游戏的教程 Ray Wenderlich's Tutorial 我在另一个游戏中实现了它,一个像涂鸦跳跃这样的跳跃游戏。 在上
我是一名优秀的程序员,十分优秀!