`
yangping_Account
  • 浏览: 192709 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

Cocos2D-iPhone添加本地通知(UILocalNotification)

 
阅读更多

 

   首先申明下:希望大家转载的时候不要忘记给原文连接,看到不少论坛转载完全变成他们论坛自己原创了~ 请大家配合哈~谢谢~娃哈哈;

         本篇Himi为童鞋们介绍两个常用的知识点:一个是在Cocos2d中添加UILocalNotification本地化通知,另外一个就是添加UIScrollViewiOS系统组件实现滚动字幕效果;

          对于UILocalNotification这个本地化通知功能实现比较简单,用途很广,最大的用途就是阶段性的让用户回归我们的应用中;那么下面就直接上代码:

          因为是添加到cocos2d引擎中,另一方面一般我们需要用户进入我们应用后就开启通知功能的;所以我们将代码放在 AppDelegate.m 类中的applicationDidFinishLaunching中,代码如下:


- (void) applicationDidFinishLaunching:(UIApplication*)application  

{  

    ...  

    application.applicationIconBadgeNumber = 0;//应用程序右上角的数字=0(消失)  

    [[UIApplication sharedApplication] cancelAllLocalNotifications];//取消所有的通知  

    //------通知;  

    UILocalNotification *notification=[[UILocalNotification alloc] init];   

    if (notification!=nil) {//判断系统是否支持本地通知  

        notification.fireDate=[NSDate dateWithTimeIntervalSinceNow:kCFCalendarUnitDay];//本次开启立即执行的周期  

        notification.repeatInterval=kCFCalendarUnitDay;//循环通知的周期  

        notification.timeZone=[NSTimeZone defaultTimeZone];  

        notification.alertBody=@"哇,我的女神,你怎了?";//弹出的提示信息  

        notification.applicationIconBadgeNumber=1; //应用程序的右上角小数字  

        notification.soundName= UILocalNotificationDefaultSoundName;//本地化通知的声音  

        notification.alertAction = NSLocalizedString(@"营救女神!", nil);  //弹出的提示框按钮  

        [[UIApplication sharedApplication]   scheduleLocalNotification:notification];  

    }   

 ...  

}  

 

 

           这里Himi首先是将之前的所有通知都取消掉,防止开启多个循环本地化通知,并且让应用右上角的数字设置为0,这里设置为0就相当与取消数字的显示了;

           然后需要说明的是循环通知的周期,iOS提供如下一些周期:


enum {  

    kCFCalendarUnitEra = (1UL << 1),  

    kCFCalendarUnitYear = (1UL << 2),  

    kCFCalendarUnitMonth = (1UL << 3),  

    kCFCalendarUnitDay = (1UL << 4),  

    kCFCalendarUnitHour = (1UL << 5),  

    kCFCalendarUnitMinute = (1UL << 6),  

    kCFCalendarUnitSecond = (1UL << 7),  

    kCFCalendarUnitWeek = (1UL << 8) /* CF_DEPRECATED(10_4, 10_7, 2_0, 5_0) */,  

    kCFCalendarUnitWeekday = (1UL << 9),  

    kCFCalendarUnitWeekdayOrdinal = (1UL << 10),  

#if MAC_OS_X_VERSION_10_6 <= MAC_OS_X_VERSION_MAX_ALLOWED || __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED  

    kCFCalendarUnitQuarter = (1UL << 11),  

#endif  

#if MAC_OS_X_VERSION_10_7 <= MAC_OS_X_VERSION_MAX_ALLOWED || __IPHONE_5_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED  

    kCFCalendarUnitWeekOfMonth = (1UL << 12),  

    kCFCalendarUnitWeekOfYear = (1UL << 13),  

    kCFCalendarUnitYearForWeekOfYear = (1UL << 14),  

#endif  

};  

        下面是真机截图:

 

              


          以上是在我真机iOS5系统上的测试效果,主界面中的展示效果以及通知栏内的通知效果,在iOS5之前都会出现类似弹出一个框,框中有你设置的按钮名称和提示文字~

         OK,这个知识点就不多说了,比较easy;下面介绍如何在cocos2d中添加UIScrollView;

        对于UIScrollView视图,比较常用,Android也有此视图,那么它用途比较广,最常用也是最容易想到的就是利用此功能实现游戏中公司介绍、字幕滚动效果,那么Himi就简单的实现在cocos2d中利用UIScrollView添加一个无线循环滚动的小例子加以讲解;

        注意:对于还不知道如何在cocos2d中添加系统组建的童鞋请移步到《【Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!》此贴学习先,下面开始添加:

         首先我们新建一个cocos2d项目,然后添加显示一个自定义的MyView(UIViewController)的视图,并且在MyView.xib中添加了一些label和ScrollView组件中;

          如下图:

            


           然后修改MyView.h,和MyView.m类,在MyView.h中如下代码:

 

@interface MyView : UIViewController<UIScrollViewDelegate>{  

    IBOutlet UIScrollView *scrollView;  

}  

@property(nonatomic,retain)IBOutlet UIScrollView *scrollView;  

@end  


 

  .h类中添加了一个UIScrollView并使用UIScrollViewDelegate协议,并IBOutlet出去,接着让xib文件中的UIScrollView组件连接此scrollView;

          之后在MyView.m中添加如下代码:

         1.添加一行如下代码:


@synthesize scrollView;  

         2.在- (void)viewDidLoad{}中添加如下代码:


- (void)viewDidLoad  

{  

    [super viewDidLoad];  

    //滚动view   

    scrollView.delegate = self;  

    scrollView.scrollEnabled = YES;   

    scrollView.contentSize = CGSizeMake(100, 249);//设置滚动的可视区域  

    // Do any additional setup after loading the view from its nib.  

}  


    整个MyView.m代码如下:


//  
//  MyView.m  
//  ScrollViewByHimi  
//  
//  Created by 华明 李 on 11-10-22.  
//  Copyright (c) 2011年 __MyCompanyName__. All rights reserved.  
//  
  
#import "MyView.h"  
  
@implementation MyView  
@synthesize scrollView;  
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil  
{  
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];  
    if (self) {  
        // Custom initialization  
    }  
    return self;  
}  
  
- (void)didReceiveMemoryWarning  
{  
    // Releases the view if it doesn't have a superview.  
    [super didReceiveMemoryWarning];  
      
    // Release any cached data, images, etc that aren't in use.  
}  
  
#pragma mark - View lifecycle  
  
- (void)viewDidLoad  
{  
    [super viewDidLoad];  
    //滚动view   
    scrollView.delegate = self;  
    scrollView.scrollEnabled = YES;   
    scrollView.contentSize = CGSizeMake(100, 249);//设置滚动的可视区域  
    // Do any additional setup after loading the view from its nib.  
}  
  
- (void)viewDidUnload  
{  
    [super viewDidUnload];  
    // Release any retained subviews of the main view.  
    // e.g. self.myOutlet = nil;  
}  
  
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
{  
    // Return YES for supported orientations  
    return (interfaceOrientation == UIInterfaceOrientationPortrait);  
}  
  
@end  

       OK,运行代码即可,运行效果如下:

       可以拖动ScrollView中的数据了,ScrollView默认显示滚动条的,可以代码设置隐藏也可以xib中对ScrollView属性调整都可以;

分享到:
评论

相关推荐

    cocos2d-iphone-2.0.tar.gz

    Cocos2d-iPhone是一个广泛使用的2D游戏开发框架,专为iOS设备(如iPhone和iPad)设计。这个开源项目让开发者能够轻松地创建高质量的游戏、应用和交互式内容,而无需深入理解底层图形和物理编程。"cocos2d-iphone-2.0...

    cocos2d-iphone~cocos2d-html5移植之旅

    ### cocos2d-iphone至cocos2d-html5移植之旅:深入解析与实践指南 #### 引言 在数字化时代,跨平台游戏开发成为了一种趋势,尤其在移动设备和网页端之间的转换变得日益频繁。《cocos2d-iphone至cocos2d-html5移植...

    【iOS-Cocos2d游戏开发】Cocos2d-iPhone动作Action-扩展动作

    在iOS游戏开发中,Cocos2d-x是一个广泛使用的2D游戏引擎,其Cocos2d-iPhone版本专为Objective-C编程语言设计。本主题主要关注Cocos2d-iPhone中的“动作”(Actions)机制,这是一个强大的工具,用于创建各种动画效果...

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    子龙山人兄弟翻译cocos2d-iphone教程.rar

    对于游戏的音效和音乐管理,cocos2d-iphone提供了丰富的API,使得开发者能够轻松添加背景音乐和交互音效,提升游戏体验。 教程还将涉及cocos2d-iphone的扩展功能,如粒子系统(Particle System)用于创建华丽的特效...

    cocos2d-x API中文文档

    在Cocos2d-x的家族中,还有其他分支引擎,如Cocos2d-iPhone、Cocos2d-python、Cocos2d-xna等,它们各自支持不同的平台和编程语言,满足不同开发者的需求。例如,Cocos2d-iPhone专注于iOS平台,使用Objective-C或...

    iOS游戏应用源代码——cocos2d-cocos2d-iphone-extensions.zip

    3. **物理引擎集成**:通过Box2D或Chipmunk等物理引擎,cocos2d-iphone能够实现物体碰撞检测和物理模拟,为游戏添加真实感。 4. **事件处理**:提供了触摸事件、键盘事件的处理机制,方便与用户交互。 5. **音频...

    cocos2d-iphone 2.1 第一部分

    继续输入cd Cocos2d-iPhone-0.99.5(cd Cocos2d-iPhone-0.99.5为解压的cocos2d文件夹名称)进入cocos2d文件夹中。 4。继续输入./install-templates.sh则打开你文件夹下面的install-templates.sh进行cocos2d的安装。...

    cocos2d-x windows vs2010配置

    "cocos2d-x windows vs2010 配置详解" 本文将详细介绍如何在 Windows 环境下使用 Visual Studio 2010 配置 Cocos2d-x 游戏引擎。Cocos2d-x 是一个跨平台的游戏引擎,可以在多种平台上运行,包括 Windows、Mac OS X...

    cocos2d-x_v3.16安装及环境变量配置文档

    cocos2d-x 是一个开源的游戏开发框架,使用 C++ 语言编写,支持多平台发布,包括 iOS、Android、Windows、macOS、Linux 和 Web。cocos2d-x v3.16 是该框架的一个版本号,本文档主要介绍了该版本的安装流程以及环境...

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    12. **扩展性**:cocos2d-x提供了插件系统和扩展API,方便开发者添加自定义功能和第三方库。 在学习和使用cocos2d-x 3.8时,开发者需要注意与最新版本的差异,例如API的变化、新功能的缺失等。同时,由于3.8是旧...

    Cocos2d-x 3.x游戏开发实战pdf含目录

    游戏数据存储方面,Cocos2d-x提供了SQLite数据库支持,用于本地数据存储。此外,还会讲解如何利用JSON或XML进行数据序列化和反序列化,便于游戏数据的读写和交换。 最后,本书可能会探讨性能优化技巧,如内存管理、...

    cocos2d-x-3.13.1 spine3.6.zip

    Cocos2d-x提供了一个SpineNode类,它是Cocos2d-x的CCNode的子类,可以直接在场景中添加和管理Spine动画。通过Lua绑定,你可以轻松地调用Spine的API来播放、停止、暂停或重置动画,以及改变动画的速度、时间缩放等...

    Cocos2d-x实战 JS卷 Cocos2d-JS开发

    《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...

    Cocos2d-x实战:C++卷(2版)源代码

    《Cocos2d-x实战:C++卷(2版)源代码》这本书是关于使用Cocos2d-x游戏引擎进行游戏开发的专业指南。Cocos2d-x是一个开源的、跨平台的游戏开发框架,广泛应用于iOS、Android、Windows等多个操作系统。本书以C++语言...

    Cocos2d-iphone 开发教程

    - Cocos2d-iPhone的设计理念强调简洁性和可扩展性,它的架构设计使得开发者能够轻松地添加自定义功能。 - 同时,它也鼓励开发者采用模块化的方法来组织代码,这样可以使项目更加易于维护。 2. **框架、工具与设计...

    Cocos2d-JS游戏开发

    Cocos2d-JS是一款强大的2D游戏开发框架,它结合了JavaScript的灵活性与Cocos2d-x的高效性能,让开发者能够轻松地创建跨平台的游戏。本篇将深入探讨Cocos2d-JS的游戏开发知识,从基础到进阶,帮助你掌握这一利器。 ...

    Cocos2d-x实战++JS卷++Cocos2d-JS开发+PDF电子书下载+带书签目录+完整

    标题中提到了"Cocos2d-x实战++JS卷++Cocos2d-JS开发+PDF电子书下载+带书签目录+完整",这里面包含了几个关键知识点: 1. Cocos2d-x:是一个开源的游戏开发框架,它主要用于开发跨平台的游戏和应用程序,支持iOS、...

    cocos2d-x-cocos2d-x-2.2.2.zip

    这个压缩包“cocos2d-x-cocos2d-x-2.2.2.zip”包含了cocos2d-x 的2.2.2版本,该版本是cocos2d-x发展中的一个重要里程碑,它提供了许多改进和优化,使得开发者能够更加高效地创建2D游戏和应用。 在cocos2d-x 2.2.2中...

    cocos2d-html5-v2.2.3.zip

    Cocos2d是一个开源的游戏开发框架,而Cocos2d-x是它的C++版本,主要应用于移动设备。本文将深入探讨Cocos2d-html5,它是一个基于HTML5的版本,允许开发者使用JavaScript进行游戏开发,非常适合那些希望从其他领域...

Global site tag (gtag.js) - Google Analytics