我对swift和编码很新,所以任何帮助都非常感谢!我有一个CCLabelTTF作为各种分数守护者,每次你通过和障碍时应该更新。碰撞正在运行,我的控制台中的点似乎正在增加,但我试图用它来更新屏幕上显示的实际CCLabelTTF:
.controller('ProfileUpdateCtrl', function($http, $state, $http, $cordovaOauth, $stateParams, $rootScope, $scope, UserFac, UploadFac) {
id = $stateParams.id;
$scope.user = {};
UserFac.getUser(id).success(function(data) {
$scope.users = data;
});
$scope.editprofile = function(user) {
username = user.username;
password = user.password;
firstname = user.firstname;
lastname = user.lastname;
birthday = user.birthday;
hometown = user.hometown;
email = user.email;
mark = { hometown: hometown, username: username, password:password, email:email, firstname:firstname, lastname:lastname,birthday:birthday };
setmark = angular.toJson(mark);
UserFac.updateUser(id, setmark);
//reload to current controller
$state.reload({'reload':true});
}
//Remove Profile Image from Database.
$scope.removepropic = function(user) {
blank = [];
mark = { imageurl:blank };
setmark = angular.toJson(mark);
UserFac.updateUser(id, setmark);
}
//Image Uploading
$scope.stepsModel = [];
$scope.imageUpload = function(element) {
var reader = new FileReader();
reader.readAsDataURL(element.files[0]);
file = element.files[0];
mark = { imageurl:element.files[0].name };
setmark = angular.toJson(mark);
//upload image to AWS
UploadFac.sendImg(file);
//send information to database
UserFac.updateUser(id, setmark);
console.log(element.files[0]);
}
//Terminate Profile
$scope.deleteprofile = function() {
UserFac.deleteUser(id);
$state.go('home');
}
})
我使用SpriteBuilder和Xcode,如果有帮助的话。对不起,如果这是一个愚蠢的问题!
编辑:这是我的scoreLabel声明:
func ccPhysicsCollisionBegin(pair: CCPhysicsCollisionPair!, hero nodeA: CCNode!, goal: CCNode!) -> Bool {
goal.removeFromParent()
points++
scoreLabel.string = String(points) //the line appearing to cause the crash
return true
}
答案 0 :(得分:0)
根据您的标签声明,这可能意味着您的标签为func ccPhysicsCollisionBegin(pair: CCPhysicsCollisionPair!, hero nodeA: CCNode!, goal: CCNode!) -> Bool {
goal.removeFromParent()
points++
if scoreLabel != nil {
scoreLabel.string = String(points)
print("scoreLabel exists")
} else {
print("scoreLabel is nil")
}
return true
}
。确保您要添加标签。
要测试它,请将代码更改为:
viewDidLoad:
如果在控制台中打印“scoreLabel is nil”,则测试确认您的标签不存在。
修改强>
你说你从来没有初始化标签,所以在适当的函数中添加这个代码(scoreLabel = CCLabelTTF(string: "", fontName: "FONT_NAME_HERE", fontSize: FONT_SIZE_HERE)
或cocos-2d中的一些等价物 - 我不熟悉它):
{{1}}
答案 1 :(得分:0)
我明白了!我在spriteBuilder中建立了一个代码连接,我猜这个代码连接没有保存,所以它得分没有任何问题。谢谢你们的帮助:)