iPad程序有一条不成文的规定:所有app必须支持屏幕旋转,至少支持180度旋转,仅仅支持一个方向的app将被无情拒绝。
目前cocos2d已经支持iPad开发,却并不支持屏幕旋转。
下面我们就利用UIController的自动旋转特性,让cocos2d支持180度旋转:
1。创建controller,且叫做TransController吧,内容如下
#import <UIKit/UIKit.h>
#define LANDSCAPE_MODE YES
@interface TransController : UIViewController {
}
@end
#import "TransController.h"
@implementation TransController
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Overriden to allow any orientation.
if (LANDSCAPE_MODE){
if (interfaceOrientation == UIDeviceOrientationLandscapeLeft||interfaceOrientation == UIDeviceOrientationLandscapeRight) {
return YES;
}
}else {
if (interfaceOrientation == UIDeviceOrientationPortrait||interfaceOrientation == UIDeviceOrientationPortraitUpsideDown) {
return YES;
}
}
return NO;
}
- (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.
}
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
@end
#define LANDSCAPE_MODE YES 用来设定app的横竖屏模式
2。修改appdelegate
无论程序是横/竖,setDeviceOrientation都为竖屏,方向总是相对的,呵呵,即总是:
[[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationPortrait];
TransController *tc = [[TransController alloc] init];
tc.view.frame = window.frame;
[window addSubview:tc.view];
[[CCDirector sharedDirector] attachInView:tc.view];
tc无需释放(因为没有意义),也不可以释放(释放后将不能旋转),如果你喜欢释放的话,就在.h中定义然后dealloc中去release吧。
分享到:
相关推荐
在cocos2d-x 2.2.2中,开发者可以利用C++语言进行编程,同时也支持Lua和JavaScript作为脚本语言,这大大增加了开发的灵活性。C++的性能优势结合脚本语言的易用性,使得游戏的开发过程既高效又便捷。同时,cocos2d-x...
资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...
4. 翻转结束:当旋转角度达到180度时,扑克牌完成翻转,正面朝上。 五、光照与阴影 为了增强3D效果,可以添加光照和阴影处理。通过设置光源的位置和属性,调整物体表面的反射和阴影,使翻牌更具有立体感。 六、...
这次Cocos2d-x 3.13.1与Spine 3.6的整合,意味着开发者可以利用Spine的强大功能,为游戏带来更生动的角色动作和更丰富的视觉效果。 首先,我们需要了解Cocos2d-x与Spine的集成过程。在Cocos2d-x项目中,你需要将...
Cocos2d-JS是一款强大的2D游戏开发框架,它结合了JavaScript的灵活性与Cocos2d-x的高效性能,让开发者能够轻松地创建跨平台的游戏。本篇将深入探讨Cocos2d-JS的游戏开发知识,从基础到进阶,帮助你掌握这一利器。 ...
《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...
cocos2d-x 3.0是cocos2d-x系列的一个重要升级,它基于C++编写,支持跨平台开发,包括iOS、Android、Windows等多个操作系统。该版本引入了新的渲染系统、性能提升、新的动画系统以及更友好的API,极大地提高了开发...
3. **Actions和Transitions**:cocos2d提供了一系列动作和过渡效果,如移动、旋转、缩放、淡入淡出等,使开发者能够轻松创建丰富的动画效果。 4. **Tiled Map**:支持TMX格式的Tiled地图编辑器,允许开发者创建复杂...
cocos2d-android游戏引擎是著名游戏引擎cocos2d游戏引擎的Android版。cocos2d-android游戏引擎性能优越、易学、可以进行纯java编程、具有极高的研 究价值、大大的降低了开发者的学习成本。您只需要一台普通配置的...
4. **Action系统**:cocos2d-x的动作系统允许开发者轻松实现物体的移动、旋转、缩放等效果,极大地简化了动画制作。 5. **Scene和Layer**:通过Scene和Layer的概念,可以组织游戏的场景和层次结构,方便管理游戏...
下面将详细讲解如何利用Cocos2d-x库来实现这些功能。 一、双指缩放 双指缩放是通过检测两个触点(手指)之间的距离变化来实现的。首先,我们需要在`Cocos2d-x`项目中设置触摸事件监听器,以便捕获用户的触摸动作。...
1. **跨平台支持**:Cocos2d-x 3.1支持多种操作系统和设备,包括iOS、Android、Windows、Mac、Linux等,使得开发者可以编写一次代码,到处运行。 2. **C++基础**:Cocos2d-x主要采用C++作为编程语言,同时也支持Lua...
在开发过程中,你可以利用Cocos2d提供的各种组件,如`CCScene`(场景)、`CCSprite`(精灵)、`CCLabel`(文本标签)等,创建游戏对象和交互逻辑。同时,别忘了Cocos2d支持事件处理,如触摸事件和键盘事件,这使得...
本书以C++语言为主要编程工具,详细介绍了如何利用Cocos2d-x进行游戏开发。 首先,Cocos2d-x的基础知识是必须掌握的。Cocos2d-x基于C++,但也支持Lua和JavaScript,但本书主要关注C++的使用。C++作为一门强大的系统...
Cocos2d是一款广泛应用于游戏开发、图形界面和2D应用程序的开源框架,它支持多种编程语言,包括Python(cocos2d),Objective-C(cocos2d-objc)以及C++(cocos2d-x)。这篇学习资料是针对cocos2d/x,特别是cocos2d-...
3. **动作(Actions)与效果**:Cocos2d-x的动作系统允许开发者对游戏对象施加各种效果,如移动、旋转、缩放、淡入淡出等,实现丰富的视觉表现。 4. **物理引擎集成**:可能包含Box2D或Chipmunk等物理引擎的集成,...
3. **Action和Effects**:Cocos2d-iPhone提供了一系列动作和效果类,如移动、旋转、缩放、淡入淡出等,方便开发者快速创建复杂的动画序列。 4. **Scene Management**:通过CCDirector和CCScene类,开发者可以轻松...
该资源主要用于cocos2d-x中Value与json字符串的相互转换,提供从json文件读取为cocos2d::Value,cocos2d::Value写入到文件,cocos2d::Value转换为json字符串,json字符串转换为cocos2d::Value。json字符串转换成cocos...
同时,Cocos2d-x集成了Box2D物理引擎,使开发者能轻松实现物理效果,如碰撞检测、重力模拟等。 游戏中的音频管理也是不可或缺的一环。本书会介绍Cocos2d-x的音频API,包括音乐播放、音效处理以及音效资源的加载和...
选择cocos2d-html5进行移植,主要得益于cocos2d-x的强大支持。对于有cocos2d-iphone经验的开发者来说,转向cocos2d-html5相对容易,因为它保留了许多相似的API和开发流程。这种迁移路径降低了学习成本,使得开发者...