Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >追随SpriteKit的敌人更接近加时赛

追随SpriteKit的敌人更接近加时赛
EN

Stack Overflow用户
提问于 2018-08-30 06:36:12
回答 1查看 39关注 0票数 0

这是我不得不从过时的博客帖子中更新的代码

代码语言:javascript
运行
AI代码解释
复制
import SpriteKit

class CreateEnemies {

var enemySprites: [SKSpriteNode] = []
static var lowerRate = 120
static var upperRate = 250

func spawnEnemy(targetSprite: SKNode) -> SKSpriteNode {

    // create a new enemy sprite
    let newEnemy = SKSpriteNode(imageNamed:"sharkshark")
    enemySprites.append(newEnemy)
    newEnemy.size = CGSize(width: 35, height: 35)

    let randomXStart = CGFloat(arc4random_uniform(UInt32(2000 - (-2000)))) + CGFloat(-2000)
    let randomYStart = CGFloat(arc4random_uniform(UInt32(2000 - (-2000)))) + CGFloat(-2000)
    let xInt = Int(randomXStart)
    let yInt = Int(randomYStart)
    newEnemy.position = CGPoint(x: xInt, y: yInt)

    // Define Constraints for orientation/targeting behavior
    let i = enemySprites.count-1
    let rangeForOrientation = SKRange(constantValue:CGFloat(M_2_PI*7))
    let orientConstraint = SKConstraint.orient(to: targetSprite, offset: rangeForOrientation)
    let rangeToSprite = SKRange(lowerLimit: CGFloat(CreateEnemies.lowerRate), upperLimit: CGFloat(CreateEnemies.upperRate))
    var distanceConstraint: SKConstraint

    // First enemy has to follow spriteToFollow, second enemy has to follow first enemy, ...
    if enemySprites.count-1 == 0 {
        distanceConstraint = SKConstraint.distance(rangeToSprite, to: targetSprite)
    } else {
        distanceConstraint = SKConstraint.distance(rangeToSprite, to: enemySprites[i-1])
    }
    newEnemy.constraints = [orientConstraint, distanceConstraint]

    return newEnemy

}
}

我在想,怎样才能让敌人存在的时间越长,就越接近目标。

我尝试每隔5秒使用一个

代码语言:javascript
运行
AI代码解释
复制
let wait5 = SKAction.wait(forDuration: 5)
    let getCloser = SKAction.repeatForever(SKAction.sequence([wait5, SKAction.run {self.changeRates()}]))
    self.run(getCloser)

并附加它以运行函数

代码语言:javascript
运行
AI代码解释
复制
func changeRates() {
    CreateEnemies.lowerRate -= 25
    CreateEnemies.upperRate -= 25
}
EN

回答 1

Stack Overflow用户

发布于 2018-08-30 13:47:43

这里有几件事:

1)你的随机性是基于一个正方形而不是一个圆圈,所以你会发现你的敌人更多地在角落而不是在屏幕的每一边的中心产生。我建议在0和2 pi之间设置一个随机角度,我猜是0到2000之间的一个随机半径,然后使用CGPoint(x:cos(angle) * radius, y:sin(angle) * radius)设置您的位置

2)你的lowerRate将在25秒内达到负值,这可能会成为一个问题。我会使用百分比来代替:

代码语言:javascript
运行
AI代码解释
复制
lowerRate = lowerRateStart * percentage
percentage *= 0.90

这将减少精灵当前位置的10 %,因此90 81 73 64 58 52 47 42 38 34 31 28 25 22 20 18 16 14 12 11 10 9 8 7 6 5 4.....然后在4和0之间一段时间。这基本上保证了你的数字接近于零,但永远不会变成0。

3)你的随机开始和你的距离约束没有正确关联,这可能会导致问题。我建议将位置设置在距离约束半径内的某个位置,因此您的速率应为:

代码语言:javascript
运行
AI代码解释
复制
let radius = CGFloat(arc4random_uniform(UInt32(upperRate - lowerRate)))
newEnemy.position = CGPoint(x:cos(angle) * radius + lowerRate + targetSprite.x, y:sin(angle) * radius + lowerRate + targetSprite.y)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52090595

复制
相关文章
更接近的三数之和
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。
木子星兮
2020/07/17
3770
SpriteKit动画小游戏
Spritekit简介 Spritekit是苹果IOS7中引入的一个2D游戏引擎框架,可以实现各种动画效果,在这之前业界比较优秀的游戏引擎是cocos2d,支持场景切换、精灵和精灵表单、动作、动画和特
MelonTeam
2018/01/04
5.1K1
SpriteKit动画小游戏
学习SpriteKit开发(1)
开发一款单机RPG游戏是很多80后儿时的梦想,但因为盗版等原因,国内的PC、家用机单击市场已经彻底被毁掉。新的独立游戏人想在这两个平台上线已经非常困难,引擎学习成本偏高。机能强大更多的强调的是游戏界面而不仅仅是游戏情节。但手机市场就大不同,机能还不够强大基本等于SFC、N64这个水准,吸引用户更多的还要依靠玩法和剧情。
海哥@开发
2022/04/06
1.3K0
学习SpriteKit开发(1)
对抗验证:划分一个跟测试集更接近的验证集
不论是打比赛、做实验还是搞工程,我们经常会遇到训练集与测试集分布不一致的情况。一般来说,我们会从训练集中划分出一个验证集,通过这个验证集来调整一些超参数,并保存在验证集上效果最好的模型。然而,如果验证集本身和测试集差别比较大,那么在验证集上表现很好的模型不一定在测试集上表现同样好,因此如何让划分出来的验证集跟测试集的分布差异更小,是一个值得研究的课题
mathor
2021/07/07
2.4K0
汽车AI语音交互 正在让机器交互更接近真人交互
“重复唤醒,答非所问,这不是人工智能,是‘人工智障智障’。”这是大部分智能网联汽车用户对语音交互的抱怨。
用户2908108
2020/05/11
1.3K0
汽车AI语音交互  正在让机器交互更接近真人交互
有人追随的管理者才叫领导
如果你觉得本文又是一个标题党,但我要是将标题反过来说,你可能就开始认同了:没有人追随的管理者还能叫领导?
崔文远TroyCui
2019/02/26
4840
他,是你愿意追随的领导吗?
今天和大家分享几个橘长和前领导的小故事,用自身经历分享橘长心目中觉得值得追随的领导是什么样的。
程序媛淼淼
2022/09/01
2800
了解你的敌人:跟踪僵尸网络
大家好,又见面了,我是你们的朋友全栈君。 了解你的敌人:跟踪僵尸网络 利用蜜网对僵尸主机了解更多 蜜网项目组 & 蜜网研究联盟 http://www .honeynet.org 最后修改日期 : 2005 年 3 月 13 日
全栈程序员站长
2022/09/15
1.3K0
响铃:抖音的敌人不是快手
张一鸣手下抖音、火山及西瓜三大短视频产品如火如荼,不论是数据量或是糟心的事惹得舆论关注总能冲在前边。前两天,不怀好意的人通过抖音勾搭上10岁未成年女童,污言秽语又让抖音上了各大头条。
曾响铃
2018/08/21
4920
响铃:抖音的敌人不是快手
在虚拟世界里探索,李飞飞的「具身AI」离大脑更接近了
---- 新智元报道   编辑:David 如願 【新智元导读】李飞飞的「具身」AI,靠着探索世界,比传统AI更接近大脑! 2009年,当时还在普林斯顿大学任教的计算机科学家李飞飞发明了一个数据集,后来改变了人工智能的发展史。 该数据集被称为ImageNet,包括数以百万计的标记图像,可以训练复杂的机器学习模型来识别图片中的目标。 2015年,用这个数据集训练出来的机器,超过了人类的识别能力。不久之后,李飞飞开始寻找她所谓的另一颗 「北极星」,推动人工智能走向真正的智能化。 靠训练让机器识图,还是没
新智元
2022/06/29
7310
在虚拟世界里探索,李飞飞的「具身AI」离大脑更接近了
B站的敌人越来越多
一直以来,依靠着多元而优质的内容赋能,YouTube在视频行业的地位之高不言而喻,从优酷、爱奇艺,再到B站、西瓜视频等,中国互联网视频平台都在向“中国YouTube”的目标不断努力着。然而由于多方原因,许多视频平台都在PUGC模式上跌了大跟头。
刘旷
2020/11/10
4680
程序员一生最大的敌人
最近几天被颈椎病折磨到神魂颠倒。如果有一天我不得不离开IDE,没有其它原因,一定是颈椎病和腰椎病一而再地将我推出了热爱着的“战场”。
疯狂的技术宅
2019/03/28
3990
iOS开发实战-基于SpriteKit的FlappyBird小游戏写在前面SpriteKit简介效果分析代码关于游戏上架TipsDemo地址还没结束
写在前面 最近一直在忙自己的维P恩的事情 公司项目也是一团乱 于是...随手找了个游戏项目改了改就上线了,就当充数了. SpriteKit简介 SpriteKit是iOS 7之后苹果推出的
gwk_iOS
2018/08/23
1.6K0
iOS开发实战-基于SpriteKit的FlappyBird小游戏写在前面SpriteKit简介效果分析代码关于游戏上架TipsDemo地址还没结束
Spark 和 Hadoop 是朋友不是敌人
6月15日,IBM 宣布计划大规模投资 Spark 相关技术,此项声明会促使越来越多的工程师学习 Spark 技术,并且大量的企业也会采用 Spark 技术。 Spark 投资的良性循环会使 Spark 技术发展更加成熟,并且可以从整个大数据环境中获益。然而,Spark 的快速增长给人们一个奇怪且固执的误解:Spark 将取代 Hadoop,而不是作为 Hadoop 的补充。这样的误解可以从类似“旨在比下 Hadoop 的新软件”和“企业将放弃大数据技术 Hadoop”的标题中看出来。 作为一个长期的大数据
我是攻城师
2018/05/11
5730
编程语言中,c#、Python、JavaScript哪一个更接近c语言?
不要尝试比较几种编程语言的优劣,任何一种编程语言都有其存在的价值,适合的就是最好的,现在编程领域Python,JAVA等等发展势头非常迅猛,但并不意味着所有的企业都要向这个方向发展,毕竟任何企业都要从自身发展状态出发,生存是第一位的,然后才是跟上发展,说到底编程语言只是一种工具而已,为软件框架和思想服务的基石。
程序员互动联盟
2019/01/09
1.5K0
后浪的Java追随者们是什么样的?
那些口口声声,JAVA越来越难学的人,应该看着你们,像我一样。我看着你们,满怀羡慕。人类研究了几十年的代码调优,所有的Exception和Error,像是专门为你们准备的礼物。
JavaEdge
2021/02/22
1900
Pygame入门3——分数、增加敌人、动画
这里我们将分数设置为玩家坚持的时间,每过一秒,分数+1。具体实现用到了pygame.time.get_ticks()获取时间。
一只大鸽子
2022/12/06
1K0
Pygame入门3——分数、增加敌人、动画
追随 Kotlin/Scala,看 Java 12-15 的现代语言特性
Java 14 发布已经过去了三个月,Java 15 目前也已经到了“Rampdown Phase One ”阶段,其新特性均已敲定。由于 12-15 都是短期版本,无需考虑也不应该将其用于生产环境。但可以提前了解新特性,以免在下一个 LTS(Java17)正式发布时毫无心理准备。Java 12-15 引入了一系列改进,本文只讨论语言层面的新特性,它们看起来似曾相识——没错,这些特性让人感觉 Java 在沿 Kotlin/Scala 走过的路线前行。
bennyhuo
2020/06/30
1.3K0
相对优势地位滥用:虚幻的敌人和真实的危险
朱理  最高人民法院法官   尊敬的各位专家和同仁,很高兴有机会参加“南湖论坛”。在这里,我对《反不正当竞争法》(修订送审稿)中的第六条,关于相对优势地位滥用问题简单谈一点想法。   我的演讲分为以下几个方面,首先,谈一下立法者规定相对优势地位滥用预想的目的是什么,在这个基础上看看这个敌人是否真的存在。如果这个敌人不存在就没必要增加此条规定,如果存在是不是有其它的规定可以规制了。在此基础上,下一步谈论的是如果我们认为这个敌人存在且有规制必要,确实需要这个条款,那么这个条款会给我们带来什么。  一
腾讯研究院
2018/03/06
7980
相对优势地位滥用:虚幻的敌人和真实的危险
4.10 VR扫描:G胖:在脑机接口领域,我们比自己想象的更接近《黑客帝国》
(VRPinea 4月10日电)今日重点新闻:日本XR营销解决方案公司Holo-X获1200万日元融资;G胖:在脑机接口领域,我们比自己想象的更接近《黑客帝国》;知名铁人三项赛事推出虚拟线上比赛:IRONMAN VR1。
VRPinea
2020/04/14
4580
4.10 VR扫描:G胖:在脑机接口领域,我们比自己想象的更接近《黑客帝国》

相似问题

Javascript敌人追随玩家

10

Java:敌人追随玩家

14

AI代表SpriteKit中的敌人

25

在Pygame中如何让敌人追随玩家?

132

Spritekit上的双重产卵(&重叠)敌人

115
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文