我正在使用 SpriteKit 并尝试制作一个带有主菜单的简单游戏。我已经制作了游戏,但在创建主菜单时遇到问题。
下面是我的主菜单代码,我希望它更改为 gameScene 并开始我的游戏。
import SpriteKit
class MenuScene: SKScene {
var aButton = SKShapeNode(circleOfRadius: 50)
override func didMove(to view: SKView) {
aButton.fillColor = SKColor.red
aButton.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
self.addChild(aButton)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let scene = GameScene(fileNamed: "aButton")
scene?.scaleMode = .aspectFill
view!.presentScene(scene!, transition: SKTransition.doorsOpenVertical(withDuration: 1))
}
}
最佳答案
尝试改变这一行:
let scene = GameScene(fileNamed: "aButton")
对此:
let scene = GameScene(size: self.scene.size)
第一行转换为名为“aButton”的 .SKS 文件。我假设您正在尝试在触摸按钮后进行转换。
为此,首先给按钮起一个名字:
aButton.name = "button"
如果它被触及则转换。您的整个 touchesBegan 方法应该如下所示:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let location = touches.first?.locationInNode(self)
let touchedNode = self.nodeAtPoint(location)
if touchedNode.name == "button" {
let newScene = GameScene(size: self.scene.size)
newScene.scaleMode = .aspectFill
view!.presentScene(newScene, transition: SKTransition.doorsOpenVertical(withDuration: 1))
}
}
关于Swift 3 SpriteKit 主菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40456219/
当我将time.Now()编码到JSON对象时,它给出的结果为"2009-11-10T23:00:00Z"但打印时间。现在给出2009-11-1023:00:00+0000UTC。他们为什么不同。什么是T和Z。另外,如何根据this将其转换为swiftNSDate对象?表? 最佳答案 这些值的含义无关紧要,它们是该格式(ISO8601)的一部分。有几种方法可以解决这个问题。一种是为时间或您的结构定义自定义MarshalJSON()方法并使用它来格式化日期,另一种是首先在您的结构中将其表示为字符串,以便当默认实现执行你得到你正在寻找的
在C/C++/Java/Go中,我们使用,来分隔参数:(aint,bint)在ObjectiveC中,我们使用:来表示参数::(int)a:(int)b在Swift中,我们必须同时使用:和,:(a:int,b:int)是否需要冗余? 最佳答案 Swift可能有外部和内部参数名称:(externalinternal:Int)如果没有独特的分隔符,会产生很多歧义。 关于objective-c-为什么Swift函数定义语法是多余的?,我们在StackOverflow上找到一个类似的问题:
我的Swift应用程序与用Go编写的服务器通信。我希望使用Zlib压缩传输的数据,但压缩结果似乎与Swift和Go不同。这是Go版本:sourceString:="A-t-ellebesoind'autrespreuves?Acceptez-lapourleplaisir.J'aitantfaitquedelacueillir,Etc'estpresqueunefleur-des-veuves."//Compressionvarbbytes.Bufferwriter:=zlib.NewWriter(&b)writer.Write([]byte(sourceString))writer.
我正在使用rsaEncryptionOAEPSHA256AESGCM在iOS上使用SecKeyCreateEncryptedData加密一些数据,然后在golang后端解密相同的数据。我正在使用3072位rsa公钥来加密对称key。当我从iOS获取数据到后端时,我能够成功解密对称key,但gcm标签验证失败。我使用的是与iOS相同的16字节IV,但不知道iOS在加密时是否使用任何aad(附加身份验证数据)。有谁知道rsaEncryptionOAEPSHA256AESGCMforiOS是否使用了一些aad?这适用于iOS10+。我已经尝试过使用nil、空的16字节数组、aeskey本身、
我使用swiftyJSON从apiurl消费OData。这里的apiurl与VPN连接。并且apiurl看起来像http://192.xxx.xx.xx:8000/sap/opu/odata/sap/Z_SRV/PRListSetSet?$format=json当我在模拟器中运行时,我可以从odataapiurl获取数据,但是在设备中运行时,没有从odataapiurl接收到数据。由于没有vpn连接到移动设备。我如何以编程方式对我的VPN进行硬编码以在移动设备中接收数据?这是我如何从ODataapiurl获取数据:typealiasServiceResponse=(JSON,Error
我正在开发一个涉及一些XML解析的自定义框架,使用Kanna框架。每当我尝试将我的框架导入playground时,playground就会崩溃并出现以下错误:Playgroundexecutionfailed:expressionfailedtoparse,unknownerror*thread#1:tid=0x4e9448,0x00000001074bf360com.apple.dt.Xcode.PlaygroundStub-macosx`executePlayground,queue='com.apple.main-thread',stopreason=breakpoint1.1*
我尝试在Windows10上的Ubuntu上的bash上安装Swift4我的Ubuntu版本:我@DESKTOP:~$lsb_release-a没有可用的LSB模块。经销商ID:Ubuntu描述:Ubuntu16.04.3LTS发布:16.04代号:xenial我做了apt-getupgrade和apt-getupdate我遵循Linux步骤here:安装Swift4最终我得到了错误:我@DESKTOP:~$swift/home/me/swift4/swift-4.0.2-RELEASE-ubuntu16.04/usr/bin/lldb:加载共享库时出错:libpython2.7.so
除了使用MenuStrip之外,还有其他方法可以在C#中创建主菜单吗?它看起来不像标准的资源管理器菜单。我是不是做错了什么?我只想要标准的应用程序主菜单,例如资源管理器。 最佳答案 听起来您想要一个尊重os主题的菜单。MainMenu类将执行此操作。右键单击工具箱并选择“选择项目”。选择MainMenu类以将其添加到您的工具箱(当您选择选择项目时,它将添加到您“所在”的类别下)。请注意,MainMenu派生自Component而不是Control,因此不会具有完全控制功能,并且与Toolstrip派生项api相比,该api有点笨拙。
尝试使用关闭除主菜单以外的所有窗体FormCollectionformsList=Application.OpenForms;用一个foreach循环并说,if(thisForm.Name!="Menu")thisForm.Close();工作正常,它跳过菜单,并关闭第一个菜单,但随后出现错误:Collectionwasmodified;enumerationoperationmaynotexecute然后停下来。我已经尝试了几个地方,他们都说这个foreach循环是这样做的方法,这特别烦人,因为我在关闭表单后没有更新我的表单列表,我认为这可能有效。我唯一能想到的就是从后面开始,用一段
概述音视频采集是直播架构的第一步音视频采集包括两部分视频采集音频采集iOS开发中,同音视频采集相关API都封装在AVFoundation中,导入该框架,即可实现音频、视频的同步采集采集步骤采集步骤文字描述导入框架同采集相关API在AVFoundation中,因此需要先导入框架创建捕捉会话(AVCaptureSession)会话:用于连接输入源、输出源输入源:摄像头、麦克风输出源:对应的视频、音频数据设置视频输入源、输出源输入源(AVCaptureDeviceInput):从摄像头输入(前置/后置)输出源(AVCaptureVideoDataOutput):可从代理方法中拿到数据将输入源、输出源