IOS的一个关于球碰撞的小游戏

这个游戏是关于一个球随机在屏幕上移动,可以用手指来操纵令一个球,如果两个球碰撞到一起,就表示输了,非常简单的一个游戏

在StoryBoard里定义两个UIImageView和一个start按钮

然后把这两个UIimageView跟代码链接

@property (weak, nonatomic)
IBOutlet UIImageView *player;

@property (weak, nonatomic)
IBOutlet UIImageView *enemy;

@property (weak, nonatomic)
IBOutlet UIButton *start;

在ViewDidLoad中定义球移动的速率

pos =
CGPointMake(5.0,4.0);

如果点击了start按钮

- (IBAction)start:(id)sender {
    [self.start setHidden:YES];
    //启动一个timer,让player这个球随机移动
    randomMain = [NSTimer scheduledTimerWithTimeInterval:0.03 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];

}

-(void)onTimer{
    [self checkCollision];
    self.enemy.center = CGPointMake(self.enemy.center.x+pos.x, self.enemy.center.y+pos.y);
    if (self.enemy.center.x > 320 || self.enemy.center.x < 0) {
        pos.x = -pos.x;

    }

    if (self.enemy.center.y > 480 || self.enemy.center.y < 0) {
        pos.y = -pos.y;
    }
}

-(void) checkCollision{
    //检测两个球是否碰撞到一起了
    if (CGRectIntersectsRect(self.player.frame, self.enemy.frame)) {
        [randomMain invalidate];
        [self.start setHidden:NO];

        CGRect frame = [self.player frame];
        frame.origin.x = 137.0f;
        frame.origin.y = 326.0f;
        [self.player setFrame:frame];

        CGRect frame2 = [self.enemy frame];
        frame2.origin.x = 137.0f;
        frame2.origin.y = 20.0f;
        [self.enemy setFrame:frame2];

        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ball is catched" message:@"you have to play again" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:nil];
        [alert show];
    }
}

代码可以在下载

IOS的一个关于球碰撞的小游戏

时间: 2024-10-05 23:43:05

IOS的一个关于球碰撞的小游戏的相关文章

一个简单的“贪吃蛇”小游戏

一个简单的“贪吃蛇”小游戏 页面结构 简单的21x21的方块,页面结构 id为container的div包含所21个class名为row的div,每个row代表贪吃蛇的一整行,每个row中又包含21个div,代表这一行的每一个div方格,如果这个方格是空的话,div的类名为blank,如果这一个方格表示“贪吃蛇”的“食物”,div的类名为food,如果这一个方格表示“蛇”,div的类名为snake. CSS JS 然后我们思考下一个贪吃蛇游戏需要那些参数, 首先,界面中可见的元素无非就是空方格,

[~!]一个被删掉的小游戏

突发奇想的想搞个游戏:点击中间的灯泡,其状态会由关闭改为打开,而且它的上下左右 四个灯泡执行同样的操作.再次点击,则其本身及上下左右四个按钮状态修改.  无论点击任何一个灯泡,其本身及上下左右四个灯泡皆改变状态. (全部点亮即过关...) 为了确保游戏没那么难过关, 我仅仅设置了 8 行 6列,如上图所示: 1.首先当然是在视图上放置Button控件,为了方便将来更改它的难度,我设置了两个宏,分别代表它的行和列.同样还设置了一个宏代表每个Button之间的间隔 #define Row 8 #de

axure 实现的一个简易的找茬小游戏

好吧,今天早上用了一早的时间,就是实现一个看图找不同的小游戏.到下课,才把基本情况弄好! 首页不用多说,大家都会,只需要一个简单的链接. 在关卡中,各个关卡都大致相同,我就以第一关为例简要说明一下: 1.时间 限定时间为120秒,就需要一个计时器,用动态面板实现它.新建动态面板,设置两个状态,载入页面时,默认为状态1,转换为状态2.在“动态面板状态改变时”一栏中,设置一下三个用例:     判断语句中的状态切换达到计时器效果,而元件文字框的判断是为了在时间到了的时候,给出如上图2的提示.“时间到

[Qt 5.6.2] 利用Qt实现一个难度可变的2048小游戏

利用Qt实现一个难度随时可调的2048小游戏 一.游戏简介 1.规则创新 胜利条件:达成2048 难度变化:玩家可以通过调整难度条来控制随机池(2.4.8.16)中各个数出现的概率,同时也会改变分数的加成比例 移动触发:每次移动后会从随机池中按照概率随机选取一个数,将其随机放置在一个空余位置上 分数计算:总分=基础分+加成分,基础分+=合并的数值,加成分+=随机生成的数值*加成比例 2.游戏效果 二.设计思路 先将该项目分为游戏入口.主窗口设计与游戏逻辑三个主要模块,再在这三个模块的基础上继续细

IOS-一个自定义进度条的小例子

//  processDIY.m #import "processDIY.h" static const CGFloat kBorderWidth = 2.0f; @interface THProgressLayer : CAReplicatorLayer @property (nonatomic, strong) UIColor* progressTintColor; @property (nonatomic, strong) UIColor* borderTintColor; @p

C语言编程 如何构建一个简单的猜数字小游戏

源代码如下: #include<stdio.h> #include<stdlib.h> #include<time.h>//生成随机函数起点时用到time.h int main() { int number1 = 0, choice = 0, number2 = 0; printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");//界面设置 printf(&qu

分享一个《连连看》的小游戏,cocos2dx版本

先上效果图: 在设计算法上还是很值得钻研一下的!不过我自己实在是没有什么耐心了,就扔下不管了! 没有做好,就先这样吧 再贴一下代码: #include "GameScene.h" GameScene::GameScene(void) { this->selected = -1; } GameScene::~GameScene(void) { } bool GameScene::init() { CCSize base_coord = CCSize(570,46); CCLayer

分享一个《打地鼠》的小游戏,cocos2dx版本

先上效果图: 主要的类: #include "Hole.h" #include <stdlib.h> #include "ccMacros.h" Hole::Hole(void) { this->image = NULL; this->animation = NULL; this->hit = NULL; this->state = 0; } Hole::~Hole(void) { } void Hole::onEnter() {

微信为什么要搞一个小游戏?

众厂关于 H5 游戏市场的争夺,自 2014 年以来,一直就没有停止过.但一直也没有尘埃落定,最终花落谁家,鹿死谁手现在还不好讲.微信推出小程序,继而推出小游戏,只是腾讯数年来在 H5 市场企业战略的一环. 微信为什么要自定义一套技术,起名为小程序?明明就是原来的 H5 技术,为什么 CSS 不叫 CSS,叫 WXSS:为什么 HTML 不叫 HTML,叫 WXML:为什么明明有 JS.TS,还要自主研发一个 WXS,并且声称"WXS 与 JS 是不同的语言,有自己的语法,并不和 JS 一致&q