Merge branch 'development' into 89-regelwerk
This commit is contained in:
commit
d5d2270b25
@ -16,15 +16,16 @@
|
|||||||
110360EE244B101B008610AF /* GoldWarsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110360ED244B101B008610AF /* GoldWarsTests.swift */; };
|
110360EE244B101B008610AF /* GoldWarsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110360ED244B101B008610AF /* GoldWarsTests.swift */; };
|
||||||
11036113244B3E30008610AF /* MenuScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11036112244B3E30008610AF /* MenuScene.swift */; };
|
11036113244B3E30008610AF /* MenuScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11036112244B3E30008610AF /* MenuScene.swift */; };
|
||||||
116060F7245C57D2004E5A36 /* EntityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 116060F6245C57D2004E5A36 /* EntityManager.swift */; };
|
116060F7245C57D2004E5A36 /* EntityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 116060F6245C57D2004E5A36 /* EntityManager.swift */; };
|
||||||
205ED9CB249507E200B28718 /* use_boost.wav in Resources */ = {isa = PBXBuildFile; fileRef = 205ED9C8249507E200B28718 /* use_boost.wav */; };
|
20F1990724A4FAC1004B7A30 /* new_round.wav in Resources */ = {isa = PBXBuildFile; fileRef = 20F1990424A4FAC1004B7A30 /* new_round.wav */; };
|
||||||
205ED9CC249507E200B28718 /* attack_base.wav in Resources */ = {isa = PBXBuildFile; fileRef = 205ED9C9249507E200B28718 /* attack_base.wav */; };
|
20F1990824A4FAC1004B7A30 /* use_boost.wav in Resources */ = {isa = PBXBuildFile; fileRef = 20F1990524A4FAC1004B7A30 /* use_boost.wav */; };
|
||||||
205ED9CD249507E200B28718 /* new_round.wav in Resources */ = {isa = PBXBuildFile; fileRef = 205ED9CA249507E200B28718 /* new_round.wav */; };
|
20F1990924A4FAC1004B7A30 /* attack_base.wav in Resources */ = {isa = PBXBuildFile; fileRef = 20F1990624A4FAC1004B7A30 /* attack_base.wav */; };
|
||||||
3E67854024728368007B9DE4 /* CElements.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E67853F24728368007B9DE4 /* CElements.swift */; };
|
3E67854024728368007B9DE4 /* CElements.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E67853F24728368007B9DE4 /* CElements.swift */; };
|
||||||
3E6785422472CBEC007B9DE4 /* Way.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E6785412472CBEC007B9DE4 /* Way.swift */; };
|
3E6785422472CBEC007B9DE4 /* Way.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E6785412472CBEC007B9DE4 /* Way.swift */; };
|
||||||
3EAD889524801B6A0048A10A /* RoundTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EAD889424801B6A0048A10A /* RoundTimer.swift */; };
|
3EAD889524801B6A0048A10A /* RoundTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EAD889424801B6A0048A10A /* RoundTimer.swift */; };
|
||||||
3EBD242E245D9332003CECE7 /* Team.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBD242D245D9332003CECE7 /* Team.swift */; };
|
3EBD242E245D9332003CECE7 /* Team.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBD242D245D9332003CECE7 /* Team.swift */; };
|
||||||
3F79FFE02486F7CD003F79C3 /* Explosion.sks in Resources */ = {isa = PBXBuildFile; fileRef = 3F79FFDF2486F7CD003F79C3 /* Explosion.sks */; };
|
3F79FFE02486F7CD003F79C3 /* Explosion.sks in Resources */ = {isa = PBXBuildFile; fileRef = 3F79FFDF2486F7CD003F79C3 /* Explosion.sks */; };
|
||||||
3FE19DB5246C7A22004827AB /* RoundCalculatorService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FE19DB4246C7A22004827AB /* RoundCalculatorService.swift */; };
|
3FE19DB5246C7A22004827AB /* RoundCalculatorService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FE19DB4246C7A22004827AB /* RoundCalculatorService.swift */; };
|
||||||
|
8B9CA5F1249A3C2E00561704 /* SkillButtonNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B9CA5F0249A3C2E00561704 /* SkillButtonNode.swift */; };
|
||||||
8BB6FF402472B8F000162BBD /* SingeClickButtonNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BB6FF3F2472B8F000162BBD /* SingeClickButtonNode.swift */; };
|
8BB6FF402472B8F000162BBD /* SingeClickButtonNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BB6FF3F2472B8F000162BBD /* SingeClickButtonNode.swift */; };
|
||||||
9E0E459724796262009817A6 /* GameCenterManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0E459624796262009817A6 /* GameCenterManager.swift */; };
|
9E0E459724796262009817A6 /* GameCenterManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0E459624796262009817A6 /* GameCenterManager.swift */; };
|
||||||
9E11FF79245CD81100EED3BE /* Fire.sks in Resources */ = {isa = PBXBuildFile; fileRef = 9E11FF77245CD81100EED3BE /* Fire.sks */; };
|
9E11FF79245CD81100EED3BE /* Fire.sks in Resources */ = {isa = PBXBuildFile; fileRef = 9E11FF77245CD81100EED3BE /* Fire.sks */; };
|
||||||
@ -84,15 +85,16 @@
|
|||||||
110360EF244B101B008610AF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
110360EF244B101B008610AF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
11036112244B3E30008610AF /* MenuScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuScene.swift; sourceTree = "<group>"; };
|
11036112244B3E30008610AF /* MenuScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuScene.swift; sourceTree = "<group>"; };
|
||||||
116060F6245C57D2004E5A36 /* EntityManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EntityManager.swift; sourceTree = "<group>"; };
|
116060F6245C57D2004E5A36 /* EntityManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EntityManager.swift; sourceTree = "<group>"; };
|
||||||
205ED9C8249507E200B28718 /* use_boost.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = use_boost.wav; sourceTree = "<group>"; };
|
20F1990424A4FAC1004B7A30 /* new_round.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = new_round.wav; sourceTree = "<group>"; };
|
||||||
205ED9C9249507E200B28718 /* attack_base.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = attack_base.wav; sourceTree = "<group>"; };
|
20F1990524A4FAC1004B7A30 /* use_boost.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = use_boost.wav; sourceTree = "<group>"; };
|
||||||
205ED9CA249507E200B28718 /* new_round.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = new_round.wav; sourceTree = "<group>"; };
|
20F1990624A4FAC1004B7A30 /* attack_base.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = attack_base.wav; sourceTree = "<group>"; };
|
||||||
3E67853F24728368007B9DE4 /* CElements.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CElements.swift; sourceTree = "<group>"; };
|
3E67853F24728368007B9DE4 /* CElements.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CElements.swift; sourceTree = "<group>"; };
|
||||||
3E6785412472CBEC007B9DE4 /* Way.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Way.swift; sourceTree = "<group>"; };
|
3E6785412472CBEC007B9DE4 /* Way.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Way.swift; sourceTree = "<group>"; };
|
||||||
3EAD889424801B6A0048A10A /* RoundTimer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoundTimer.swift; sourceTree = "<group>"; };
|
3EAD889424801B6A0048A10A /* RoundTimer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoundTimer.swift; sourceTree = "<group>"; };
|
||||||
3EBD242D245D9332003CECE7 /* Team.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Team.swift; sourceTree = "<group>"; };
|
3EBD242D245D9332003CECE7 /* Team.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Team.swift; sourceTree = "<group>"; };
|
||||||
3F79FFDF2486F7CD003F79C3 /* Explosion.sks */ = {isa = PBXFileReference; lastKnownFileType = file.sks; path = Explosion.sks; sourceTree = "<group>"; };
|
3F79FFDF2486F7CD003F79C3 /* Explosion.sks */ = {isa = PBXFileReference; lastKnownFileType = file.sks; path = Explosion.sks; sourceTree = "<group>"; };
|
||||||
3FE19DB4246C7A22004827AB /* RoundCalculatorService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoundCalculatorService.swift; sourceTree = "<group>"; };
|
3FE19DB4246C7A22004827AB /* RoundCalculatorService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoundCalculatorService.swift; sourceTree = "<group>"; };
|
||||||
|
8B9CA5F0249A3C2E00561704 /* SkillButtonNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SkillButtonNode.swift; sourceTree = "<group>"; };
|
||||||
8BB6FF3F2472B8F000162BBD /* SingeClickButtonNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SingeClickButtonNode.swift; sourceTree = "<group>"; };
|
8BB6FF3F2472B8F000162BBD /* SingeClickButtonNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SingeClickButtonNode.swift; sourceTree = "<group>"; };
|
||||||
9E0E459624796262009817A6 /* GameCenterManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameCenterManager.swift; sourceTree = "<group>"; };
|
9E0E459624796262009817A6 /* GameCenterManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameCenterManager.swift; sourceTree = "<group>"; };
|
||||||
9E11FF77245CD81100EED3BE /* Fire.sks */ = {isa = PBXFileReference; lastKnownFileType = file.sks; path = Fire.sks; sourceTree = "<group>"; };
|
9E11FF77245CD81100EED3BE /* Fire.sks */ = {isa = PBXFileReference; lastKnownFileType = file.sks; path = Fire.sks; sourceTree = "<group>"; };
|
||||||
@ -171,9 +173,9 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
C04783ED2468583F004961FB /* intro-music.mp3 */,
|
C04783ED2468583F004961FB /* intro-music.mp3 */,
|
||||||
205ED9C9249507E200B28718 /* attack_base.wav */,
|
20F1990624A4FAC1004B7A30 /* attack_base.wav */,
|
||||||
205ED9CA249507E200B28718 /* new_round.wav */,
|
20F1990424A4FAC1004B7A30 /* new_round.wav */,
|
||||||
205ED9C8249507E200B28718 /* use_boost.wav */,
|
20F1990524A4FAC1004B7A30 /* use_boost.wav */,
|
||||||
9ECD3699245C91F7008DEEBD /* GoldWars.entitlements */,
|
9ECD3699245C91F7008DEEBD /* GoldWars.entitlements */,
|
||||||
9E11FF74245CD79100EED3BE /* Partikels */,
|
9E11FF74245CD79100EED3BE /* Partikels */,
|
||||||
116060F5245C5709004E5A36 /* Entities */,
|
116060F5245C5709004E5A36 /* Entities */,
|
||||||
@ -220,6 +222,7 @@
|
|||||||
C064E9A7246C0EA50022B228 /* LabelNode.swift */,
|
C064E9A7246C0EA50022B228 /* LabelNode.swift */,
|
||||||
9EC2FBA62476B1EC00ABF11F /* PlayerInfoComponent.swift */,
|
9EC2FBA62476B1EC00ABF11F /* PlayerInfoComponent.swift */,
|
||||||
8BB6FF3F2472B8F000162BBD /* SingeClickButtonNode.swift */,
|
8BB6FF3F2472B8F000162BBD /* SingeClickButtonNode.swift */,
|
||||||
|
8B9CA5F0249A3C2E00561704 /* SkillButtonNode.swift */,
|
||||||
C05BB9C3247D890C00411249 /* SliderComponent.swift */,
|
C05BB9C3247D890C00411249 /* SliderComponent.swift */,
|
||||||
9EC7E48A2461FBF700396BCD /* SliderNode.swift */,
|
9EC7E48A2461FBF700396BCD /* SliderNode.swift */,
|
||||||
9E78ACB7245CB75B00526FF7 /* TeamComponent.swift */,
|
9E78ACB7245CB75B00526FF7 /* TeamComponent.swift */,
|
||||||
@ -379,16 +382,16 @@
|
|||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
205ED9CD249507E200B28718 /* new_round.wav in Resources */,
|
|
||||||
110360DE244B101A008610AF /* Main.storyboard in Resources */,
|
110360DE244B101A008610AF /* Main.storyboard in Resources */,
|
||||||
|
20F1990924A4FAC1004B7A30 /* attack_base.wav in Resources */,
|
||||||
9E11FF79245CD81100EED3BE /* Fire.sks in Resources */,
|
9E11FF79245CD81100EED3BE /* Fire.sks in Resources */,
|
||||||
|
20F1990724A4FAC1004B7A30 /* new_round.wav in Resources */,
|
||||||
110360E0244B101B008610AF /* Assets.xcassets in Resources */,
|
110360E0244B101B008610AF /* Assets.xcassets in Resources */,
|
||||||
110360E3244B101B008610AF /* LaunchScreen.storyboard in Resources */,
|
110360E3244B101B008610AF /* LaunchScreen.storyboard in Resources */,
|
||||||
9E61EAC4249BAC9100334DDE /* LoserFire.sks in Resources */,
|
9E61EAC4249BAC9100334DDE /* LoserFire.sks in Resources */,
|
||||||
|
20F1990824A4FAC1004B7A30 /* use_boost.wav in Resources */,
|
||||||
C04783EE2468583F004961FB /* intro-music.mp3 in Resources */,
|
C04783EE2468583F004961FB /* intro-music.mp3 in Resources */,
|
||||||
205ED9CC249507E200B28718 /* attack_base.wav in Resources */,
|
|
||||||
3F79FFE02486F7CD003F79C3 /* Explosion.sks in Resources */,
|
3F79FFE02486F7CD003F79C3 /* Explosion.sks in Resources */,
|
||||||
205ED9CB249507E200B28718 /* use_boost.wav in Resources */,
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@ -430,6 +433,7 @@
|
|||||||
9E174C8A245E1A0A00209FF0 /* Background.swift in Sources */,
|
9E174C8A245E1A0A00209FF0 /* Background.swift in Sources */,
|
||||||
8BB6FF402472B8F000162BBD /* SingeClickButtonNode.swift in Sources */,
|
8BB6FF402472B8F000162BBD /* SingeClickButtonNode.swift in Sources */,
|
||||||
C064E9A8246C0EA50022B228 /* LabelNode.swift in Sources */,
|
C064E9A8246C0EA50022B228 /* LabelNode.swift in Sources */,
|
||||||
|
8B9CA5F1249A3C2E00561704 /* SkillButtonNode.swift in Sources */,
|
||||||
3EAD889524801B6A0048A10A /* RoundTimer.swift in Sources */,
|
3EAD889524801B6A0048A10A /* RoundTimer.swift in Sources */,
|
||||||
AE0C8E2F249BCC2A00996360 /* RulesScene.swift in Sources */,
|
AE0C8E2F249BCC2A00996360 /* RulesScene.swift in Sources */,
|
||||||
3E67854024728368007B9DE4 /* CElements.swift in Sources */,
|
3E67854024728368007B9DE4 /* CElements.swift in Sources */,
|
||||||
|
21
GoldWars/GoldWars/Assets.xcassets/atk_button.imageset/Contents.json
vendored
Normal file
21
GoldWars/GoldWars/Assets.xcassets/atk_button.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "atk_button.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
GoldWars/GoldWars/Assets.xcassets/atk_button.imageset/atk_button.png
vendored
Normal file
BIN
GoldWars/GoldWars/Assets.xcassets/atk_button.imageset/atk_button.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.9 KiB |
21
GoldWars/GoldWars/Assets.xcassets/def_button.imageset/Contents.json
vendored
Normal file
21
GoldWars/GoldWars/Assets.xcassets/def_button.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "def_button.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
GoldWars/GoldWars/Assets.xcassets/def_button.imageset/def_button.png
vendored
Normal file
BIN
GoldWars/GoldWars/Assets.xcassets/def_button.imageset/def_button.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.8 KiB |
21
GoldWars/GoldWars/Assets.xcassets/spy_button.imageset/Contents.json
vendored
Normal file
21
GoldWars/GoldWars/Assets.xcassets/spy_button.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "spy_button.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
GoldWars/GoldWars/Assets.xcassets/spy_button.imageset/spy_button.png
vendored
Normal file
BIN
GoldWars/GoldWars/Assets.xcassets/spy_button.imageset/spy_button.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.7 KiB |
@ -21,17 +21,15 @@ class ButtonNode: SKSpriteNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var label: SKLabelNode
|
||||||
var onButtonPress: () -> ()
|
var onButtonPress: () -> ()
|
||||||
|
|
||||||
init(textureName: String, text: String, isEnabled: Bool, position: CGPoint, onButtonPress: @escaping () -> ()) {
|
init(textureName: String, text: String, isEnabled: Bool, position: CGPoint, onButtonPress: @escaping () -> ()) {
|
||||||
self.onButtonPress = onButtonPress
|
self.onButtonPress = onButtonPress
|
||||||
self.isEnabled = isEnabled
|
self.isEnabled = isEnabled
|
||||||
let texture = SKTexture(imageNamed: textureName)
|
let texture = SKTexture(imageNamed: textureName)
|
||||||
super.init(texture: texture, color: SKColor.white, size: texture.size())
|
|
||||||
self.position = position
|
|
||||||
|
|
||||||
let label = SKLabelNode(fontNamed: "Courier-Bold")
|
label = SKLabelNode(fontNamed: "Courier-Bold")
|
||||||
label.fontSize = 30
|
label.fontSize = 30
|
||||||
label.fontColor = SKColor.black
|
label.fontColor = SKColor.black
|
||||||
label.zPosition = 1
|
label.zPosition = 1
|
||||||
@ -39,6 +37,9 @@ class ButtonNode: SKSpriteNode {
|
|||||||
label.text = text
|
label.text = text
|
||||||
label.name = "label"
|
label.name = "label"
|
||||||
|
|
||||||
|
super.init(texture: texture, color: SKColor.white, size: texture.size())
|
||||||
|
self.position = position
|
||||||
|
|
||||||
self.addChild(label)
|
self.addChild(label)
|
||||||
isUserInteractionEnabled = true
|
isUserInteractionEnabled = true
|
||||||
}
|
}
|
||||||
|
56
GoldWars/GoldWars/Components/SkillButtonNode.swift
Normal file
56
GoldWars/GoldWars/Components/SkillButtonNode.swift
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
//
|
||||||
|
// SkillButtonNode.swift
|
||||||
|
// GoldWars
|
||||||
|
//
|
||||||
|
// Created by Simon Kellner on 17.06.20.
|
||||||
|
// Copyright © 2020 SP2. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SpriteKit
|
||||||
|
|
||||||
|
class SkillButtonNode: ButtonNode {
|
||||||
|
|
||||||
|
|
||||||
|
var cooldownCounter = 0
|
||||||
|
var hasCooled: Bool = false
|
||||||
|
let cooldown: Int
|
||||||
|
let displayText: String
|
||||||
|
|
||||||
|
init(textureName: String, text: String, isEnabled: Bool, cooldown: Int, position: CGPoint, onButtonPress: @escaping () -> ()) {
|
||||||
|
self.cooldown = cooldown
|
||||||
|
self.displayText = text
|
||||||
|
super.init(textureName: textureName, text: text, isEnabled: isEnabled, position: position, onButtonPress: onButtonPress)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
|
||||||
|
super.touchesBegan(touches, with: event)
|
||||||
|
super.isEnabled = false
|
||||||
|
self.cooldownCounter = self.cooldown
|
||||||
|
self.hasCooled = true
|
||||||
|
}
|
||||||
|
|
||||||
|
func decreaseCooldown() {
|
||||||
|
if self.cooldownCounter <= 1 {
|
||||||
|
super.isEnabled = true
|
||||||
|
super.label.text = self.displayText
|
||||||
|
let newRoundAction = SKAction.sequence([
|
||||||
|
SKAction.scale(by: 1.5, duration: 1),
|
||||||
|
SKAction.scale(by: 1/1.5, duration: 1),
|
||||||
|
])
|
||||||
|
if hasCooled {
|
||||||
|
self.run(newRoundAction)
|
||||||
|
self.hasCooled = false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
super.isEnabled = false
|
||||||
|
self.cooldownCounter -= 1
|
||||||
|
super.label.text = self.cooldownCounter.description
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
required init?(coder aDecoder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
}
|
@ -51,8 +51,12 @@ class Base: GKEntity{
|
|||||||
self.component(ofType: TeamComponent.self)?.unitcountLabel.text = "\(self.unitCount)"
|
self.component(ofType: TeamComponent.self)?.unitcountLabel.text = "\(self.unitCount)"
|
||||||
|
|
||||||
if base.component(ofType: TeamComponent.self)?.unitcountLabel.text != "" {
|
if base.component(ofType: TeamComponent.self)?.unitcountLabel.text != "" {
|
||||||
|
if base.ownershipPlayer != self.ownershipPlayer {
|
||||||
|
base.component(ofType: TeamComponent.self)?.unitcountLabel.text = "\(abs(base.unitCount - units * 2))"
|
||||||
|
} else {
|
||||||
base.component(ofType: TeamComponent.self)?.unitcountLabel.text = "\(base.unitCount)"
|
base.component(ofType: TeamComponent.self)?.unitcountLabel.text = "\(base.unitCount)"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
DataService.sharedInstance.addMove(playerMove: PlayerMove(fromBase: self.baseID,
|
DataService.sharedInstance.addMove(playerMove: PlayerMove(fromBase: self.baseID,
|
||||||
toBase: base.baseID,
|
toBase: base.baseID,
|
||||||
unitCount: units)
|
unitCount: units)
|
||||||
|
@ -294,6 +294,11 @@ class EntityManager {
|
|||||||
return entities.filter{$0 is Button && ($0 as! Button).name == buttonName }[0] as! Button
|
return entities.filter{$0 is Button && ($0 as! Button).name == buttonName }[0] as! Button
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func changeSettingsButtonText(buttonName: String, text: String) {
|
||||||
|
let button = entities.filter{$0 is Button && ($0 as! Button).name == buttonName }[0] as! Button
|
||||||
|
button.component(ofType: ButtonComponent.self)?.buttonNode.label.text = text
|
||||||
|
}
|
||||||
|
|
||||||
func getHUD() -> HUD? {
|
func getHUD() -> HUD? {
|
||||||
return entities.filter{$0 is HUD}.first as? HUD
|
return entities.filter{$0 is HUD}.first as? HUD
|
||||||
}
|
}
|
||||||
@ -348,13 +353,6 @@ class EntityManager {
|
|||||||
button.buttonNode.removeFromParent()
|
button.buttonNode.removeFromParent()
|
||||||
}
|
}
|
||||||
self.remove(modal)
|
self.remove(modal)
|
||||||
|
|
||||||
for child in scene.children {
|
|
||||||
if(child.name != "fire"){
|
|
||||||
child.alpha = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
isModal = false
|
isModal = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -18,9 +18,9 @@ class HUD: GKEntity {
|
|||||||
var peerLabel:SKLabelNode
|
var peerLabel:SKLabelNode
|
||||||
var peerUnitsLabel:SKLabelNode
|
var peerUnitsLabel:SKLabelNode
|
||||||
|
|
||||||
var spySkill: SingeClickButtonNode
|
var spySkill: SkillButtonNode
|
||||||
var defSkill: SingeClickButtonNode
|
var defSkill: SkillButtonNode
|
||||||
var atkSkill: SingeClickButtonNode
|
var atkSkill: SkillButtonNode
|
||||||
|
|
||||||
var roundTimerLabel: SKLabelNode
|
var roundTimerLabel: SKLabelNode
|
||||||
let roundTimer: RoundTimer
|
let roundTimer: RoundTimer
|
||||||
@ -50,11 +50,12 @@ class HUD: GKEntity {
|
|||||||
|
|
||||||
self.roundTimer = RoundTimer()
|
self.roundTimer = RoundTimer()
|
||||||
|
|
||||||
spySkill = SingeClickButtonNode(
|
spySkill = SkillButtonNode(
|
||||||
textureName: "yellow_circle",
|
textureName: "spy_button",
|
||||||
text: "Spy",
|
text: "Spy",
|
||||||
isEnabled: true,
|
isEnabled: true,
|
||||||
position: CGPoint(x: EntityManager.gameEMInstance.scene.size.width * 0.75, y: EntityManager.gameEMInstance.scene.size.height * 0.1),
|
cooldown: 3,
|
||||||
|
position: CGPoint(x: EntityManager.gameEMInstance.scene.size.width * 0.80, y: EntityManager.gameEMInstance.scene.size.height * 0.1),
|
||||||
onButtonPress: {
|
onButtonPress: {
|
||||||
EntityManager.gameEMInstance.getOpponentBases(for: EntityManager.gameEMInstance.getTeam()).forEach({base in base.component(ofType: TeamComponent.self)?.unitcountLabel.text = "\(base.unitCount)"})
|
EntityManager.gameEMInstance.getOpponentBases(for: EntityManager.gameEMInstance.getTeam()).forEach({base in base.component(ofType: TeamComponent.self)?.unitcountLabel.text = "\(base.unitCount)"})
|
||||||
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.first.time", increasePercentComplete: 100)
|
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.first.time", increasePercentComplete: 100)
|
||||||
@ -62,11 +63,12 @@ class HUD: GKEntity {
|
|||||||
SoundManager.sharedInstance.playSoundEffect(pathToFile: "use_boost",fileExtension: "wav",volumeLevel: 0.0)
|
SoundManager.sharedInstance.playSoundEffect(pathToFile: "use_boost",fileExtension: "wav",volumeLevel: 0.0)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
defSkill = SingeClickButtonNode(
|
defSkill = SkillButtonNode(
|
||||||
textureName: "yellow_circle",
|
textureName: "def_button",
|
||||||
text: "Def",
|
text: "Def",
|
||||||
isEnabled: true,
|
isEnabled: true,
|
||||||
position: CGPoint(x: EntityManager.gameEMInstance.scene.size.width * 0.85, y: EntityManager.gameEMInstance.scene.size.height * 0.1),
|
cooldown: 4,
|
||||||
|
position: CGPoint(x: EntityManager.gameEMInstance.scene.size.width * 0.90, y: EntityManager.gameEMInstance.scene.size.height * 0.1),
|
||||||
onButtonPress: {
|
onButtonPress: {
|
||||||
DataService.sharedInstance.localRoundData.hasDefenceBoost = true
|
DataService.sharedInstance.localRoundData.hasDefenceBoost = true
|
||||||
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.first.time", increasePercentComplete: 100)
|
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.first.time", increasePercentComplete: 100)
|
||||||
@ -74,11 +76,12 @@ class HUD: GKEntity {
|
|||||||
SoundManager.sharedInstance.playSoundEffect(pathToFile: "use_boost",fileExtension: "wav",volumeLevel: 0.0)
|
SoundManager.sharedInstance.playSoundEffect(pathToFile: "use_boost",fileExtension: "wav",volumeLevel: 0.0)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
atkSkill = SingeClickButtonNode(
|
atkSkill = SkillButtonNode(
|
||||||
textureName: "yellow_circle",
|
textureName: "atk_button",
|
||||||
text: "Atk",
|
text: "Atk",
|
||||||
isEnabled: true,
|
isEnabled: true,
|
||||||
position: CGPoint(x: EntityManager.gameEMInstance.scene.size.width * 0.95, y: EntityManager.gameEMInstance.scene.size.height * 0.1),
|
cooldown: 4,
|
||||||
|
position: CGPoint(x: EntityManager.gameEMInstance.scene.size.width * 0.70, y: EntityManager.gameEMInstance.scene.size.height * 0.1),
|
||||||
onButtonPress: {
|
onButtonPress: {
|
||||||
DataService.sharedInstance.localRoundData.hasAttackBoost = true
|
DataService.sharedInstance.localRoundData.hasAttackBoost = true
|
||||||
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.first.time", increasePercentComplete: 100)
|
GameCenterManager.sharedInstance.addAchievementProgress(identifier: "de.hft.stuttgart.ip2.goldwars.skill.first.time", increasePercentComplete: 100)
|
||||||
@ -89,14 +92,14 @@ class HUD: GKEntity {
|
|||||||
|
|
||||||
finishButton = SingeClickButtonNode(
|
finishButton = SingeClickButtonNode(
|
||||||
textureName: "yellow_button04",
|
textureName: "yellow_button04",
|
||||||
text: "Done",
|
text: "Fertig",
|
||||||
isEnabled: true,
|
isEnabled: true,
|
||||||
position: CGPoint(
|
position: CGPoint(
|
||||||
x: EntityManager.gameEMInstance.scene.size.width * 0.15,
|
x: EntityManager.gameEMInstance.scene.size.width * 0.17,
|
||||||
y: EntityManager.gameEMInstance.scene.size.height * 0.06),
|
y: EntityManager.gameEMInstance.scene.size.height * 0.06),
|
||||||
onButtonPress: { }
|
onButtonPress: { }
|
||||||
)
|
)
|
||||||
finishButton.size = CGSize(width: 80, height: 40)
|
finishButton.size = CGSize(width: 125, height: 40)
|
||||||
finishButton.zPosition = 2
|
finishButton.zPosition = 2
|
||||||
|
|
||||||
backgroundRoundCounter = SKSpriteNode(texture: SKTexture(imageNamed: "roundInfo_texture"))
|
backgroundRoundCounter = SKSpriteNode(texture: SKTexture(imageNamed: "roundInfo_texture"))
|
||||||
@ -145,7 +148,7 @@ class HUD: GKEntity {
|
|||||||
func startWithDuration(){
|
func startWithDuration(){
|
||||||
roundTimer.startTimer()
|
roundTimer.startTimer()
|
||||||
finishButton.isEnabled = true
|
finishButton.isEnabled = true
|
||||||
self.roundTimer.roundEnded = "Syncing"
|
self.roundTimer.roundEnded = "Berechnung"
|
||||||
RoundCalculatorService.sharedInstance.isCalculating = false
|
RoundCalculatorService.sharedInstance.isCalculating = false
|
||||||
blockWholeScreenPane.isHidden = true
|
blockWholeScreenPane.isHidden = true
|
||||||
}
|
}
|
||||||
@ -153,7 +156,7 @@ class HUD: GKEntity {
|
|||||||
func finishRound() -> () {
|
func finishRound() -> () {
|
||||||
self.blockWholeScreenPane.isHidden = false
|
self.blockWholeScreenPane.isHidden = false
|
||||||
self.roundTimer.timeLeft = 1;
|
self.roundTimer.timeLeft = 1;
|
||||||
self.roundTimer.roundEnded = "Waiting for other player..."
|
self.roundTimer.roundEnded = "Warte auf Gegner..."
|
||||||
}
|
}
|
||||||
|
|
||||||
func initRoundInfo(size: CGSize) -> () {
|
func initRoundInfo(size: CGSize) -> () {
|
||||||
@ -168,14 +171,14 @@ class HUD: GKEntity {
|
|||||||
currentRoundLabel.zPosition = backgroundRoundCounter.zPosition + 1
|
currentRoundLabel.zPosition = backgroundRoundCounter.zPosition + 1
|
||||||
|
|
||||||
roundsLabel.zPosition = backgroundRoundCounter.zPosition + 1
|
roundsLabel.zPosition = backgroundRoundCounter.zPosition + 1
|
||||||
roundsLabel.text = "of \(RoundCalculatorService.sharedInstance.MAX_ROUNDS)"
|
roundsLabel.text = "von \(RoundCalculatorService.sharedInstance.MAX_ROUNDS)"
|
||||||
roundsLabel.fontColor = SKColor.black
|
roundsLabel.fontColor = SKColor.black
|
||||||
roundsLabel.verticalAlignmentMode = .center
|
roundsLabel.verticalAlignmentMode = .center
|
||||||
roundsLabel.fontSize = 12
|
roundsLabel.fontSize = 12
|
||||||
roundsLabel.position = CGPoint(x: currentRoundLabel.position.x, y: currentRoundLabel.position.y - 25)
|
roundsLabel.position = CGPoint(x: currentRoundLabel.position.x, y: currentRoundLabel.position.y - 25)
|
||||||
|
|
||||||
roundLabel.zPosition = backgroundRoundCounter.zPosition + 1
|
roundLabel.zPosition = backgroundRoundCounter.zPosition + 1
|
||||||
roundLabel.text = "Round"
|
roundLabel.text = "Runde"
|
||||||
roundLabel.fontColor = SKColor.black
|
roundLabel.fontColor = SKColor.black
|
||||||
roundLabel.verticalAlignmentMode = .center
|
roundLabel.verticalAlignmentMode = .center
|
||||||
roundLabel.fontSize = 12
|
roundLabel.fontSize = 12
|
||||||
@ -190,5 +193,12 @@ class HUD: GKEntity {
|
|||||||
])
|
])
|
||||||
currentRoundLabel.run(newRoundAction)
|
currentRoundLabel.run(newRoundAction)
|
||||||
SoundManager.sharedInstance.playSoundEffect(pathToFile: "new_round", fileExtension: "wav", volumeLevel: 0.0)
|
SoundManager.sharedInstance.playSoundEffect(pathToFile: "new_round", fileExtension: "wav", volumeLevel: 0.0)
|
||||||
|
self.decreaseSkillRoundCooldownCounter()
|
||||||
|
}
|
||||||
|
|
||||||
|
func decreaseSkillRoundCooldownCounter() {
|
||||||
|
self.spySkill.decreaseCooldown()
|
||||||
|
self.atkSkill.decreaseCooldown()
|
||||||
|
self.defSkill.decreaseCooldown()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ class Modal: GKEntity{
|
|||||||
footer = SKLabelNode()
|
footer = SKLabelNode()
|
||||||
case .PauseGame:
|
case .PauseGame:
|
||||||
header = SKLabelNode(text: "Pause")
|
header = SKLabelNode(text: "Pause")
|
||||||
body = SKLabelNode(text: "Waiting for player to reconnect")
|
body = SKLabelNode(text: "Warte auf Gegner...")
|
||||||
footer = SKLabelNode()
|
footer = SKLabelNode()
|
||||||
closeButton.zPosition = -1
|
closeButton.zPosition = -1
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,6 @@ final class GameCenterManager: NSObject, GKMatchmakerViewControllerDelegate, GKG
|
|||||||
GKAchievement.loadAchievements { (achievements: [GKAchievement]?, err: Error?) in
|
GKAchievement.loadAchievements { (achievements: [GKAchievement]?, err: Error?) in
|
||||||
var achievementExists: Bool = false
|
var achievementExists: Bool = false
|
||||||
achievements?.forEach({ (achievement: GKAchievement) in
|
achievements?.forEach({ (achievement: GKAchievement) in
|
||||||
print(achievement.identifier)
|
|
||||||
if achievement.identifier == identifier {
|
if achievement.identifier == identifier {
|
||||||
achievementExists = true
|
achievementExists = true
|
||||||
achievement.percentComplete += increasePercentComplete
|
achievement.percentComplete += increasePercentComplete
|
||||||
|
@ -153,7 +153,7 @@ class GameScene: SKScene{
|
|||||||
self.childNode(withName: "hostLabel")?.run(SKAction.move(to: CGPoint(x: self.size.width * 0.25, y: self.size.height * 0.3), duration: 1))
|
self.childNode(withName: "hostLabel")?.run(SKAction.move(to: CGPoint(x: self.size.width * 0.25, y: self.size.height * 0.3), duration: 1))
|
||||||
self.childNode(withName: "peerLabel")?.run(SKAction.move(to: CGPoint(x: self.size.width * 0.75, y: self.size.height * 0.3), duration: 1))
|
self.childNode(withName: "peerLabel")?.run(SKAction.move(to: CGPoint(x: self.size.width * 0.75, y: self.size.height * 0.3), duration: 1))
|
||||||
self.initGameEndIcons()
|
self.initGameEndIcons()
|
||||||
let node = ButtonNode(textureName: "yellow_button05", text: "Menu", isEnabled: true, position: CGPoint(x: self.size.width / 2, y: self.size.height / 2 - 300), onButtonPress: {
|
let node = ButtonNode(textureName: "yellow_button05", text: "Menü", isEnabled: true, position: CGPoint(x: self.size.width / 2, y: self.size.height / 2 - 300), onButtonPress: {
|
||||||
self.backToMenuAction()
|
self.backToMenuAction()
|
||||||
})
|
})
|
||||||
node.name = "BackButton"
|
node.name = "BackButton"
|
||||||
|
@ -36,7 +36,7 @@ class MenuScene: SKScene {
|
|||||||
}))
|
}))
|
||||||
entityManager.add(Button(name: "settingsButton",
|
entityManager.add(Button(name: "settingsButton",
|
||||||
textureName: "gold_button_3",
|
textureName: "gold_button_3",
|
||||||
text: "Settings",
|
text: "Einstellungen",
|
||||||
position: CGPoint(x: midX, y: midY ),
|
position: CGPoint(x: midX, y: midY ),
|
||||||
onButtonPress: {
|
onButtonPress: {
|
||||||
let scene = SettingsScene(size: self.size)
|
let scene = SettingsScene(size: self.size)
|
||||||
|
@ -11,14 +11,17 @@ import SpriteKit
|
|||||||
class SettingsScene: SKScene {
|
class SettingsScene: SKScene {
|
||||||
|
|
||||||
var entityManager = EntityManager.settingsEMInstance
|
var entityManager = EntityManager.settingsEMInstance
|
||||||
|
var musicButtonText = ""
|
||||||
|
var isMusicDeactivatedByUserDefault = UserDefaults.standard.bool(forKey: "noMusic")
|
||||||
|
|
||||||
override func sceneDidLoad() {
|
override func sceneDidLoad() {
|
||||||
entityManager.setScene(scene: self)
|
entityManager.setScene(scene: self)
|
||||||
let positionX = self.size.width * 0.1
|
let positionX = self.size.width * 0.1
|
||||||
let positionY = self.size.height * 0.05
|
let positionY = self.size.height * 0.05
|
||||||
|
isMusicDeactivatedByUserDefault ? setMusicButtonTextByUserDefault(text: "Aus") : setMusicButtonTextByUserDefault(text: "Ein")
|
||||||
entityManager.add(Button(name: "backToMenuScene",
|
entityManager.add(Button(name: "backToMenuScene",
|
||||||
textureName: "yellow_button04",
|
textureName: "yellow_button04",
|
||||||
text: "Back",
|
text: "Zurück",
|
||||||
position: CGPoint(x: positionX, y: positionY),
|
position: CGPoint(x: positionX, y: positionY),
|
||||||
onButtonPress: {
|
onButtonPress: {
|
||||||
let scene = MenuScene(size: self.size)
|
let scene = MenuScene(size: self.size)
|
||||||
@ -26,32 +29,36 @@ class SettingsScene: SKScene {
|
|||||||
}))
|
}))
|
||||||
entityManager.add(Button(name: "StopMenuMusic",
|
entityManager.add(Button(name: "StopMenuMusic",
|
||||||
textureName: "yellow_button04",
|
textureName: "yellow_button04",
|
||||||
text: "ON/OFF",
|
text: musicButtonText,
|
||||||
position: CGPoint(x: self.size.width * 0.6, y: self.size.height / 2),
|
position: CGPoint(x: self.size.width * 0.6, y: self.size.height / 2),
|
||||||
onButtonPress: {
|
onButtonPress: {
|
||||||
if SoundManager.sharedInstance.isMusicPlaying {
|
if SoundManager.sharedInstance.isMusicPlaying {
|
||||||
SoundManager.sharedInstance.stopMenuMusic()
|
SoundManager.sharedInstance.stopMenuMusic()
|
||||||
SoundManager.sharedInstance.isMusicEnabled = false
|
SoundManager.sharedInstance.isMusicEnabled = false
|
||||||
|
self.entityManager.changeSettingsButtonText(buttonName: "StopMenuMusic", text: "Aus")
|
||||||
} else {
|
} else {
|
||||||
SoundManager.sharedInstance.isMusicEnabled = true
|
SoundManager.sharedInstance.isMusicEnabled = true
|
||||||
SoundManager.sharedInstance.startMenuMusic()
|
SoundManager.sharedInstance.startMenuMusic()
|
||||||
|
self.entityManager.changeSettingsButtonText(buttonName: "StopMenuMusic", text: "An")
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
entityManager.add(Button(name: "StopMovingBackground",
|
entityManager.add(Button(name: "StopMovingBackground",
|
||||||
textureName: "yellow_button04",
|
textureName: "yellow_button04",
|
||||||
text: "MOVE/STOP",
|
text: "An",
|
||||||
position: CGPoint(x: self.size.width * 0.6, y: self.size.height / 2 - 100),
|
position: CGPoint(x: self.size.width * 0.6, y: self.size.height / 2 - 100),
|
||||||
onButtonPress: {
|
onButtonPress: {
|
||||||
if BackgroundComponent.isMovingBackgroundEnabled {
|
if BackgroundComponent.isMovingBackgroundEnabled {
|
||||||
BackgroundComponent.isMovingBackgroundEnabled = false
|
BackgroundComponent.isMovingBackgroundEnabled = false
|
||||||
|
self.entityManager.changeSettingsButtonText(buttonName: "StopMovingBackground", text: "Aus")
|
||||||
} else {
|
} else {
|
||||||
BackgroundComponent.isMovingBackgroundEnabled = true
|
BackgroundComponent.isMovingBackgroundEnabled = true
|
||||||
|
self.entityManager.changeSettingsButtonText(buttonName: "StopMovingBackground", text: "An")
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
entityManager.add(Label(fontnamed: "Courier-Bold",
|
entityManager.add(Label(fontnamed: "Courier-Bold",
|
||||||
name: "SettingsLabel",
|
name: "SettingsLabel",
|
||||||
text: "Settings",
|
text: "Einstellungen",
|
||||||
fontSize: 200.0,
|
fontSize: 150.0,
|
||||||
fontColor: .black,
|
fontColor: .black,
|
||||||
position: CGPoint(x: self.size.width * 0.5, y: self.size.height * 0.7),
|
position: CGPoint(x: self.size.width * 0.5, y: self.size.height * 0.7),
|
||||||
horizontalAlignmentMode: .center,
|
horizontalAlignmentMode: .center,
|
||||||
@ -61,7 +68,7 @@ class SettingsScene: SKScene {
|
|||||||
)
|
)
|
||||||
entityManager.add(Label(fontnamed: "Courier-Bold",
|
entityManager.add(Label(fontnamed: "Courier-Bold",
|
||||||
name: "LabelMusic",
|
name: "LabelMusic",
|
||||||
text: "Music", fontSize: 50.0,
|
text: "Sounds", fontSize: 50.0,
|
||||||
fontColor: .black,
|
fontColor: .black,
|
||||||
position: CGPoint(x: self.size.width * 0.5, y: self.size.height / 2 - 15),
|
position: CGPoint(x: self.size.width * 0.5, y: self.size.height / 2 - 15),
|
||||||
horizontalAlignmentMode: .right,
|
horizontalAlignmentMode: .right,
|
||||||
@ -71,7 +78,7 @@ class SettingsScene: SKScene {
|
|||||||
)
|
)
|
||||||
entityManager.add(Label(fontnamed: "Courier-Bold",
|
entityManager.add(Label(fontnamed: "Courier-Bold",
|
||||||
name: "LabelBackground",
|
name: "LabelBackground",
|
||||||
text: "Background",
|
text: "Wind",
|
||||||
fontSize: 50.0,
|
fontSize: 50.0,
|
||||||
fontColor: .black,
|
fontColor: .black,
|
||||||
position: CGPoint(x: self.size.width * 0.5, y: self.size.height / 2 - 115),
|
position: CGPoint(x: self.size.width * 0.5, y: self.size.height / 2 - 115),
|
||||||
@ -83,6 +90,10 @@ class SettingsScene: SKScene {
|
|||||||
entityManager.add(Background(size: self.size))
|
entityManager.add(Background(size: self.size))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setMusicButtonTextByUserDefault(text: String) {
|
||||||
|
self.musicButtonText = text
|
||||||
|
}
|
||||||
|
|
||||||
func loadScene(scene: SKScene) {
|
func loadScene(scene: SKScene) {
|
||||||
let transition = SKTransition.flipVertical(withDuration: 0.5)
|
let transition = SKTransition.flipVertical(withDuration: 0.5)
|
||||||
entityManager.entities.removeAll()
|
entityManager.entities.removeAll()
|
||||||
|
@ -27,7 +27,7 @@ class SoundManager {
|
|||||||
do {
|
do {
|
||||||
audioPlayer = try AVAudioPlayer(contentsOf: backgroundMainMenuAudio!)
|
audioPlayer = try AVAudioPlayer(contentsOf: backgroundMainMenuAudio!)
|
||||||
} catch {
|
} catch {
|
||||||
//TODO: Add logging
|
os_log("backgroundMusic is broken", log: LOG, type: .error)
|
||||||
}
|
}
|
||||||
audioPlayer.numberOfLoops = -1
|
audioPlayer.numberOfLoops = -1
|
||||||
audioPlayer.prepareToPlay()
|
audioPlayer.prepareToPlay()
|
||||||
@ -37,12 +37,6 @@ class SoundManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func stopMenuMusic() {
|
|
||||||
audioPlayer.pause()
|
|
||||||
self.isMusicPlaying = false
|
|
||||||
UserDefaults.standard.set(true, forKey: "noMusic")
|
|
||||||
}
|
|
||||||
|
|
||||||
func playSoundEffect(pathToFile: String, fileExtension: String, volumeLevel: Float){
|
func playSoundEffect(pathToFile: String, fileExtension: String, volumeLevel: Float){
|
||||||
soundEffect = Bundle.main.url(forResource: pathToFile, withExtension: fileExtension)
|
soundEffect = Bundle.main.url(forResource: pathToFile, withExtension: fileExtension)
|
||||||
do {
|
do {
|
||||||
@ -51,8 +45,17 @@ class SoundManager {
|
|||||||
os_log("Could not load sound file %@", log: LOG, type: .error, pathToFile)
|
os_log("Could not load sound file %@", log: LOG, type: .error, pathToFile)
|
||||||
}
|
}
|
||||||
effectPlayer.volume += volumeLevel
|
effectPlayer.volume += volumeLevel
|
||||||
|
effectPlayer.prepareToPlay()
|
||||||
|
if self.isMusicEnabled == true {
|
||||||
effectPlayer.play()
|
effectPlayer.play()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func stopMenuMusic() {
|
||||||
|
audioPlayer.pause()
|
||||||
|
self.isMusicPlaying = false
|
||||||
|
UserDefaults.standard.set(true, forKey: "noMusic")
|
||||||
|
}
|
||||||
|
|
||||||
func setVolume(_ volume: Float) {
|
func setVolume(_ volume: Float) {
|
||||||
audioPlayer.volume = volume
|
audioPlayer.volume = volume
|
||||||
|
Loading…
Reference in New Issue
Block a user