Ios 游戏中的未知错误(XCode)
我正在XCode上制作第二个游戏,代码似乎有问题。这是一款太空射击游戏,玩家跟随你的手指,点击释放导弹。问题是。。。当我按下“开始游戏”时,所有内容都隐藏起来,不会弹出。这是我的viewcontroller.h和viewcontroller.m ViewController.mIos 游戏中的未知错误(XCode),ios,objective-c,iphone,xcode,Ios,Objective C,Iphone,Xcode,我正在XCode上制作第二个游戏,代码似乎有问题。这是一款太空射击游戏,玩家跟随你的手指,点击释放导弹。问题是。。。当我按下“开始游戏”时,所有内容都隐藏起来,不会弹出。这是我的viewcontroller.h和viewcontroller.m ViewController.m #import "ViewController.h" @interface ViewController () @end int score; int lives; int enemyAttackOccurence
#import "ViewController.h"
@interface ViewController ()
@end
int score;
int lives;
int enemyAttackOccurence;
int enemyPosition;
int randomSpeed;
float enemySpeed;
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
@implementation PlayViewController
-(void)viewDidAppear:(BOOL)animated {
// Images that are to be hidden
playerShip.hidden = YES;
enemyShip.hidden = YES;
missile.hidden = YES;
earth.hidden = YES;
// Hidden Labels
scoreLabel.hidden = YES;
livesLabel.hidden = YES;
// Set score and lives remaining
score = 0;
lives = 0;
// Strings
scoreString = [NSString stringWithFormat:@"Score: 0"];
liveString = [NSString stringWithFormat:@"Lives: 0"];
// Initial Label Text
scoreLabel.text = scoreString;
livesLabel.text = liveString;
// Image starting positions
playerShip.center = CGPointMake(150, 658);
enemyShip.center = CGPointMake(175, 20);
missile.center = CGPointMake(playerShip.center.x, playerShip.center.y);
}
-(IBAction)startGame:(id)sender {
// Hide buttons
startButton.hidden = YES;
exitButton.hidden = YES;
// Images to show
playerShip.hidden = NO;
enemyShip.hidden = NO;
earth.hidden = NO;
// Labels
scoreLabel.hidden = NO;
livesLabel.hidden = NO;
[self positionEnemy];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
touch = [touches anyObject];
CGPoint point = [touch locationInView:self.view];
playerShip.center = CGPointMake(point.x, playerShip.center.y);
}
-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
[missileMovementTimer invalidate];
missile.hidden = NO;
missile.center = CGPointMake(playerShip.center.x, playerShip.center.y);
missileMovementTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(missileMovement) userInfo:nil repeats:YES];
}
-(void)positionEnemy {
// Random enemy position
enemyPosition = arc4random() % 249;
enemyPosition = enemyPosition + 20;
// Enemy Image Location
enemyShip.center = CGPointMake(enemyPosition, -40);
// Set enemy speed
randomSpeed = arc4random() % 3;
switch (randomSpeed) {
case 0:
enemySpeed = 0.03;
break;
case 1:
enemySpeed = 0.02;
break;
case 2:
enemySpeed = 0.01;
default:
break;
}
enemyAttackOccurence = arc4random() % 5;
[self performSelector:@selector(enemyMovementTimerMethod) withObject:nil afterDelay:enemyAttackOccurence];
}
-(void)enemyMovementTimerMethod {
enemyMovementTimer = [NSTimer scheduledTimerWithTimeInterval:enemySpeed target:self selector:@selector(enemyMovement) userInfo:nil repeats:YES];
}
-(void)enemyMovement {
enemyShip.center = CGPointMake(enemyShip.center.x, enemyShip.center.y + 2);
if (CGRectIntersectsRect(enemyShip.frame, earth.frame)) {
lives = lives - 1;
liveString = [NSString stringWithFormat:@"Lives: %i", lives];
livesLabel.text = liveString;
// Stop Enemy Moving
[enemyMovementTimer invalidate];
if (lives > 0) {
[self positionEnemy];
}
if (lives == 0) {
[self gameOver];
}
}
}
-(void)missileMovement {
missile.hidden = NO;
missile.center = CGPointMake(missile.center.x, missile.center.y - 2);
if (CGRectIntersectsRect(missile.frame, enemyShip.frame)) {
score = score + 1;
scoreString = [NSString stringWithFormat:@"Score: %i", score];
scoreLabel.text = scoreString;
// Stop missile
[missileMovementTimer invalidate];
// Position missile to be at the playerShip's center
missile.center = CGPointMake(playerShip.center.x, playerShip.center.y);
missile.hidden = YES;
// Stop enemy movement
[enemyMovementTimer invalidate];
[self positionEnemy];
}
}
-(void)gameOver {
[enemyMovementTimer invalidate];
[missileMovementTimer invalidate];
[self performSelector:@selector(gameReplay) withObject:nil afterDelay:3];
}
-(void) gameReplay {
// Images that are to be hidden
playerShip.hidden = YES;
enemyShip.hidden = YES;
missile.hidden = YES;
earth.hidden = YES;
// Hidden Labels
scoreLabel.hidden = YES;
livesLabel.hidden = YES;
// Set score and lives remaining
score = 0;
lives = 0;
// Strings
scoreString = [NSString stringWithFormat:@"Score: 0"];
liveString = [NSString stringWithFormat:@"Lives: 0"];
// Initial Label Text
scoreLabel.text = scoreString;
livesLabel.text = liveString;
// Image starting positions
playerShip.center = CGPointMake(150, 658);
enemyShip.center = CGPointMake(175, 20);
missile.center = CGPointMake(playerShip.center.x, playerShip.center.y);
}
@end
#导入“ViewController.h”
@界面视图控制器()
@结束
智力得分;
int生命;
内部攻击发生;
灌肠位;
int随机速度;
漂浮敌人的速度;
@实现视图控制器
-(无效)viewDidLoad{
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
}
-(无效)未收到记忆警告{
[超级记忆警告];
//处置所有可以重新创建的资源。
}
@结束
@PlayViewController的实现
-(无效)视图显示:(BOOL)动画{
//要隐藏的图像
playerShip.hidden=是;
Enemmyship.hidden=是;
导弹隐藏=是;
earth.hidden=是;
//隐藏标签
scoreLabel.hidden=是;
livesLabel.hidden=是;
//设定分数和剩余生命
得分=0;
寿命=0;
//弦
scoreString=[NSString stringWithFormat:@“分数:0”];
liveString=[NSString stringWithFormat:@“生命:0”];
//初始标签文本
scoreLabel.text=scoreString;
livesLabel.text=liveString;
//图像起始位置
playerShip.center=CGPointMake(150658);
enemyShip.center=CGPointMake(175,20);
employee.center=CGPointMake(playerShip.center.x,playerShip.center.y);
}
-(iAction)开始名称:(id)发送方{
//隐藏按钮
startButton.hidden=是;
exitButton.hidden=是;
//要显示的图像
playerShip.hidden=否;
Enemmyship.hidden=否;
earth.hidden=否;
//标签
scoreLabel.hidden=否;
livesLabel.hidden=否;
[敌我];
}
-(无效)触摸开始:(NSSet*)触摸事件:(UIEvent*)事件{
}
-(无效)触摸移动:(NSSet*)触摸事件:(UIEvent*)事件{
touch=[触摸任何对象];
CGPoint=[触摸位置视图:self.view];
playerShip.center=CGPointMake(point.x,playerShip.center.y);
}
-(void)touchesend:(NSSet*)toucheevent:(UIEvent*)event{
[任务移动计时器失效];
导弹隐藏=否;
employee.center=CGPointMake(playerShip.center.x,playerShip.center.y);
missileMovementTimer=[NSTimer scheduledTimerWithTimeInterval:0.01目标:自选择器:@selector(missileMovement)用户信息:无重复:是];
}
-(无效)敌方{
//随机敌方阵地
enemyPosition=arc4random()%249;
灌肠位置=灌肠位置+20;
//敌方图像定位
enemyShip.center=CGPointMake(enemyPosition,-40);
//设定敌人的速度
randomSpeed=arc4random()%3;
开关(随机速度){
案例0:
敌人速度=0.03;
打破
案例1:
敌人速度=0.02;
打破
案例2:
敌人速度=0.01;
违约:
打破
}
EnemyAttackOccurrence=arc4random()%5;
[自执行选择器:@selector(enemyMovementTimerMethod),对象:nil afterDelay:enemyattackoccurrence];
}
-(无效)enemyMovementTimerMethod{
enemyMovementTimer=[NSTimer scheduledTimerWithTimeInterval:enemySpeed target:self self selector:@selector(enemyMovement)userInfo:nil repeats:YES];
}
-(无效)灌肠运动{
enemyShip.center=CGPointMake(enemyShip.center.x,enemyShip.center.y+2);
if(CGRectIntersectsRect(enemyShip.frame,earth.frame)){
生命=生命-1;
liveString=[NSString stringWithFormat:@“生命:%i”,生命];
livesLabel.text=liveString;
//阻止敌人移动
[enemyMovementTimer失效];
如果(寿命>0){
[敌我];
}
如果(寿命==0){
[自我放逐];
}
}
}
-(无效)文书动议{
导弹隐藏=否;
emilose.center=CGPointMake(emilose.center.x,emilose.center.y-2);
if(CGRectIntersectsRect(emilose.frame,enemyShip.frame)){
分数=分数+1;
scoreString=[NSString stringWithFormat:@“分数:%i”,分数];
scoreLabel.text=scoreString;
//拦截导弹
[任务移动计时器失效];
//将导弹定位在玩家中心
employee.center=CGPointMake(playerShip.center.x,playerShip.center.y);
导弹隐藏=是;
//阻止敌人移动
[enemyMovementTimer失效];
[敌我];
}
}
-(无效)游戏结束{
[enemyMovementTimer失效];
[任务移动计时器失效];
[自执行选择器:@selector(gameReplay)with object:nil afterDelay:3];
}
-(无效)游戏重播{
//要隐藏的图像
playerShip.hidden=是;
Enemmyship.hidden=是;
导弹隐藏=是;
earth.hidden=是;
//隐藏标签
scoreLabel.hidden=是;
livesLabel.hidden=是;
//设定分数和剩余生命
得分=0;
寿命=0;
//弦
scoreString=[NSString stringWithFormat:@“分数:0”];
liveString=[NSString stringWithFormat:@“生命:0”];
//初始标签文本
scoreLabel.text=scoreString;
livesLabel.text=liveString;
//图像起始位置
playerShip.center=CGPointMake(150658);
enemyShip.center=CGPointMake(175,20);
employee.center=CGPointMake(playerShip.center.x,playerShip.center.y);
}
@结束
ViewController.h(仅用于备份)
#导入
@界面ViewController:UIViewController{
IBUIButton*StartName;
}
@结束
@界面PlayViewController:UIViewController{
IBUIImageView*剧组;
IBUIImageView*电子商务;
IBUIImageView*导弹;
IBUIImageView*地球;
ibuilabel*livesLabel;
IBUILabel*s
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
IBOutlet UIButton *startGame;
}
@end
@interface PlayViewController : UIViewController {
IBOutlet UIImageView *playerShip;
IBOutlet UIImageView *enemyShip;
IBOutlet UIImageView *missile;
IBOutlet UIImageView *earth;
IBOutlet UILabel *livesLabel;
IBOutlet UILabel *scoreLabel;
IBOutlet UIButton *startButton;
IBOutlet UIButton *exitButton;
UITouch *touch;
NSString *liveString;
NSString *scoreString;
NSTimer *enemyMovementTimer;
NSTimer *missileMovementTimer;
}
-(IBAction)startGame:(id)sender;
@end