2011年5月31日 星期二

touch


@interface HelloWorld : CCLayer
{
CCSprite *Sprite;
CCSprite *Sprite2;
}


+(id) scene;

@end

#import "HelloWorldScene.h"
#import "ProgramTest.h"

@implementation HelloWorld

+(id) scene
{
CCScene *scene = [CCScene node];
HelloWorld *layer = [HelloWorld node];
[scene addChild: layer];
return scene;
}


-(id) init
{
if( (self=[super init] )) {
self.isTouchEnabled = YES;

CCMenuItemFont *start=[CCMenuItemFont itemFromString:@"Happy Gamer"
  target:self
selector:@selector(start)];
CCMenu *menu=[CCMenu menuWithItems:start,nil];
[self addChild:menu];
Sprite=[[CCSprite alloc]initWithFile:@"Icon-Small.png"];
[self addChild:Sprite];
Sprite.position=ccp(100,100);
[self schedule:@selector(scheduleTest)  interval:2];
Sprite2=[CCSprite spriteWithFile:@"Icon-Small.png"];
[self addChild:Sprite2];
Sprite2.position=ccp(200,100);
}
return self;
}
-(void)start{
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:0.5
scene:[ProgramTest scene]]];
}
-(void)scheduleTest{
CGRect r1=CGRectMake(Sprite.position.x-15,Sprite.position.y-15 , 30, 30);
CGRect r2=CGRectMake(Sprite2.position.x-15,Sprite2.position.y-15 , 30, 30);
if(CGRectContainsRect(r1,r2 )|| CGRectIntersectsRect(r2,r1)){
NSLog(@"TEST.....");
}
}

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
for( UITouch *touch in touches ) {
CGPoint location = [touch locationInView: [touch view]];
location = [[CCDirector sharedDirector] convertToGL: location];
[Sprite setPosition:location];
}
}
- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
for( UITouch *touch in touches ) {
CGPoint location = [touch locationInView: [touch view]];
location = [[CCDirector sharedDirector] convertToGL: location];
[Sprite setPosition:location];
}
}
- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
for( UITouch *touch in touches ) {
CGPoint location = [touch locationInView: [touch view]];
location = [[CCDirector sharedDirector] convertToGL: location];

}
}
@end

=======================================================



#import
#import "cocos2d.h"

@interface ProgramTest : CCLayer {
CCSprite *Sprite1;

}
+(id) scene;
@end


#import "ProgramTest.h"
#import "HelloWorldScene.h"
#import "StopScene.h"
@implementation ProgramTest
+(id) scene
{
CCScene *scene = [CCScene node];
ProgramTest *layer = [ProgramTest node];
[scene addChild: layer];
return scene;
}


- (id) init
{
self = [super init];
if (self != nil) {
Sprite1=[CCSprite spriteWithFile:@"Default.png"];
[self addChild:Sprite1];
Sprite1.rotation=-90;
Sprite1.position=ccp(240,160);
CCMenuItemFont *back=[CCMenuItemFont itemFromString:@"back" 
target:self
  selector:@selector(back)];
back.position=ccp(200,-140);
CCMenu *Menu=[CCMenu menuWithItems:back,nil];
[self addChild:Menu];
CCMenuItemFont *stop=[CCMenuItemFont itemFromString:@"stop" 
target:self 
  selector:@selector(stop)];
stop.position=ccp(200,140);
CCMenu *Menu2=[CCMenu menuWithItems:stop,nil];
[self addChild:Menu2];
}
return self;
}


-(void)back{
CCScene *scene = [CCScene node];
HelloWorld *layer = [HelloWorld node];
[scene addChild: layer];
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:0.5
scene:scene]];
}
-(void)stop{
CCScene *scene=[StopScene scene];
[[CCDirector sharedDirector] pushScene:[CCTransitionFade transitionWithDuration:0.5
  scene:scene]];
}
@end


=================================================


#import
#import "cocos2d.h"

@interface StopScene : CCLayer {
CCSprite *Sprite3;
}
+(id) scene;
@end



#import "StopScene.h"

@implementation StopScene
+(id) scene
{
CCScene *scene = [CCScene node];
StopScene *layer = [StopScene node];
[scene addChild: layer];
return scene;
}

- (id) init
{
self = [super init];
if (self != nil) {
Sprite3=[CCSprite spriteWithFile:@"exciting-icon.png"];
[self addChild:Sprite3];
Sprite3.position=ccp(240,160);
CCMenuItemFont *stop=[CCMenuItemFont itemFromString:@"stop" 
target:self 
  selector:@selector(stop)];
stop.position=ccp(200,140);
CCMenu *Menu2=[CCMenu menuWithItems:stop,nil];
[self addChild:Menu2];
}
return self;
}

-(void)stop{
[[CCDirector sharedDirector] popScene];
}
@end


2011年5月29日 星期日

CCBezier

BezierScene

.h


@interface BezierScene : CCLayer {
CCSprite *sprite;
CCBezierBy *Bezier;
}

@end

==========================

.m


@implementation BezierScene
- (id) init
{
self = [super init];
if (self != nil) {
sprite=[CCSprite spriteWithFile:@"Icon-Small.png"];
[self addChild:sprite];
sprite.position=ccp(0,0);
ccBezierConfig b;
b.controlPoint_1=ccp(20,10);
b.controlPoint_2=ccp(300,10);
b.endPosition=ccp(40,50);
Bezier =[CCBezierBy actionWithDuration:10
  bezier:b];
[sprite runAction:Bezier];
}
return self;
}

@end

2011年5月28日 星期六

CCJump

JumpScene

.h


#import
#import "cocos2d.h"

@interface JumpScene : CCLayer {
CCSprite *Sprite;
CCSprite *Sprite2;
CCJumpBy *Jump;
CCJumpTo *Jump2;
}

@end


===========================

.m



@implementation JumpScene
- (id) init
{
self = [super init];
if (self != nil) {
Sprite=[CCSprite spriteWithFile:@"Icon-Small.png"];
[self addChild:Sprite];
Sprite.position=ccp(300,100);
Jump=[CCJumpBy actionWithDuration:2
position:ccp(50,10
  height:50 jumps:3];
[Sprite runAction:Jump];
Sprite2=[CCSprite spriteWithFile:@"Icon-Small-50.png"];
[self addChild:Sprite2];
Sprite2.position=ccp(200,0);
Jump2=[CCJumpTo actionWithDuration:2 
  position:ccp(40,30
height:20 
jumps:4];
[Sprite2 runAction:Jump2];
}
return self;
}

@end

2011年5月27日 星期五

CCMove


MoveScene


.h

#import
#import "cocos2d.h"

@interface MoveScene : CCLayer {
CCSprite *sprite;
CCSprite *sprite2;
CCMoveBy *Move;
CCMoveTo *Move2;
}

@end




===================================

.m

#import "MoveScene.h"


@implementation MoveScene
- (id) init
{
self = [super init];
if (self != nil) {
sprite=[CCSprite spriteWithFile:@"Icon.png"];
[self addChild:sprite];
sprite.position=ccp(100,200);
Move=[CCMoveBy actionWithDuration:1
position:ccp(50,0)];
[sprite runAction:Move];
sprite2=[CCSprite spriteWithFile:@"Icon-72.png"];
[self addChild:sprite2];
sprite2.position=ccp(240,160);
Move2=[CCMoveTo actionWithDuration:0.5 
  position:ccp(0,100)];
[sprite2 runAction:Move2];
}
return self;
}

@end





2011年5月9日 星期一

更新近況

最近學習進入一個段落了
基本上觀念都印在腦海中
唯一缺乏的就是實際演練
練習真的是一個重要課題
因為練習過後才會懂得運用
我的指導老師非常希望我能儘快學習起來
我本人當然也非常希望

總之!
就是要加油!

[轉]原來我們一直都錯了!談"鋰"電池照顧大法


一直以來,大家對於 iPhone、iPod touch、iPad 到底該什麼時候充電,是不是要等到電池快用完了再充電會比較好呢?第一次充電要不要充 12 個小時呢?常常充電會不會降低電池壽命?我的手機每天都連接在電腦上,會不會提早壞掉呢?

為了以上的問題,小編今天特別整理這份文章,希望對大家有幫助:

電池的種類:

首先,我們要先了解電池共分為很多很多種,而 iPhone、iPod touch、iPad 使用的是"Li-ion 鋰離子可充電電池" ,一般我們在便利商店買到的是所謂的【一次電池】,常見的就是 鹼性電池、錳乾電池、氧化銀電池、水銀電池等等,這些電池只能用一次,電力用完之後,就必須要進行拋棄回收了!

另外一種則是【二次電池】,這也就是所謂的充電電池,常見的類型如鎳鎘電池、鉛酸電池、鎳氫電池、鋰離子電池、燃料電池 等等。不過這些只要看看就好,您就不用做筆記了,因為真正的電池分類,還不止這些呢!而本篇,小編就針對 iPhone、iPod touch、iPad 使用的"Li-ion 鋰離子可充電電池"來做使用上的分享:
  
鋰電池只能充放電 500 次?說對也對,說錯也錯!

在一些國際研究數據中顯示,充放電的次數確實有限,這是正確的!但這必須架構在將電量耗盡的情況下,也就是你如果把電充飽(4.2伏特),然後持續使用(3.6至3.7伏特),若電量越來越低(3V~2.5V),則會開始進行弱店警告,而若低於 2.5V,則這顆電池就算耗盡,而進行自動關閉,這樣的動作叫做深度放電 (從2.5伏特充電至4.2伏特算一次)。

根據根據國外的實驗數據顯示,優良的鋰電池深度放電的次數可以達到 500 次以上,換句話說,雖然深度充放電(充滿、耗盡)的動作對鋰電池來說並不好,但是這樣的動作次數與壽命卻也有高達 500 次以上的壽命,不過還是根據電池的設計與品質而定(撇除品牌效益的話,貴的電池還是有他貴的原因),而可以肯定的是......耗盡的次數越多,你的電池歸西的時間就會提早到來

但按照鋰電池的特性,如果電池內的電壓低到某個程度,那麼這顆鋰電池就會搞自閉即時沒壞,也就因為電壓已經低於某個限度,而導致電池一睡不起的死亡狀態(這種現在稱為假性故障)!所以你會發現,如果你的手機電池或是數位相機電池很久沒有使用時,那顆電池怎麼無法充電?或是壽命越來越短?其實這就是因為電池的電量耗盡,導致電壓過低而讓這顆鋰電池無法啟動,如此反而讓電池提早故障了(因為低於電壓值,導致這顆電池蕊無法再度啟動充電程序)!

這種情形最常發生在數位相機的電池上面,很多人會替數位相機多買幾顆電池,但有時候這些電池卻是沒有經常用到,加上平常忽略充電的動作,所以一個不注意,這些電池就這樣放到沒電,當電池電量低於特定電壓之後,這個電池就這樣報廢了(所以沒事記得把電池拿出來充充電)。

優良的電池都會有「充電管理IC」,用以限制充電及放電電壓,以確保不超過安全電壓(過充)而致電池爆炸,同時也會由 IC 來偵測避免低於2.5伏特,這樣可以讓電池不至於因電量耗盡而造成無法啟動充店程序。但是如果一顆已經快沒電的電池,您又沒有趕快充電,那麼電量還是會被內建的管理 IC 慢慢吃光,到時電壓低於 2.5V 之後,你的電池就會報廢了.....

鋰電池如果放太久沒充電,就會壞掉

過度的充電,這個問題在許多裝置上都有充飽後自動停止充電的保護裝置,所以這個問題大家不用擔心!但另外一個問題,其實是大家要多注意的,那就是.........別把電池放到完全沒電

常常會聽到有人說,建議你"最好把電池的電量用完,最好用到關機之後再去充電",但這種說法在鋰電池的世界裡,是完全完全錯誤的觀念!當 iPhone 在 20% 出現電力警告時,就要開始準備進行充電了,鋰電池若過度放電,有可能會導致電池電壓過低,造成電池一睡不起的冬眠狀態,而使這顆電池提早報廢死亡!

本文出自【iPhone & iPad粉絲同好會】:http://www.facebook.com/ipad.ipod.iphone

新電池第一次使用時,不用充電 12 小時

新電池需要充電 12 小時以上的說法,其實是承襲以前鎳電池,如鎳鎘(Ni-Cd)和鎳氫(Ni-MH)電池所延續下來的說法,但科技在進步,到了鋰電池之後,其實是完全不需要做此動作的! 甚至過度的充電與放電,對鋰電池是有傷害的。
  
很多產品(手機、數位相機、衛星導航)在說明書上,都會要求您第一次使用時,要充飽 12 小時以上,其實是為了"以策安全",因為這些產品從工廠出貨一直到銷售至使用者的手上,這段過程有可能耗費好幾個月,而這些電池在這段時間有可能因為慢慢流失,而導致電量不斷下降,所以原廠説明裡,通常會建議您先接上充電器,並且要充電 12 小時以上,其實就是要避免你拿到裝置時就開始玩,到時若把電池玩到低於 2.5V,那電池就糟糕了!所以原廠會要你充電 12 小時,其實也是為了避免使用者不小心造成電池耗盡的"手法"。

大部分的充電器或裝置(手機、數位相機、筆記型電腦等等),在電池充飽後,都會自動停止充電動作,以及弱店就關閉的保護裝置,以避免對電池的傷害。但也有一些廉價的電池或充電器"有可能"不會這樣做(成本),所以使用時一定要注意,電池充飽就把它拿下來,不用一直放在充電器上,那是沒有意義的,而電池沒電就趕快拿下來,不要再繼續用了,以免造成電量耗盡,這樣電池會掛掉的

想充就充,盡量保持有電的狀況,這樣就對了

所以綜合來說,別讓你的電池沒電!這才是最佳的保護,隨時插上充電線、傳輸線,對電池並沒有影響,鋰電池本身的特性,決定了它幾乎沒有記憶效應,所以就算你現在有 80% 的電量,也放膽去充電吧,電池充飽之後會自動停止充電動作,這樣你的電池不會過充、也不會對電池有任何影響!

換句話說,鋰電池不怕隨時充電,而是怕沒電當出現電量過低提示時,應該儘快進行充電或是將該顆電池換下,別讓他完全耗盡(例如數位相機的電池,別拼命拍到完全沒電,這樣很傷)。

若鋰電池沒電後,又長時間放置不使用、也不充電,那就會導致鋰電池因為電量過低而失效不能再使用,經常把鋰電池電量耗盡的電池,比經常充電的使用方式,其壽命至少短少一半以上,不可不慎呀。

結論:

1.使用鋰電池的裝置,第一次使用不用充電 12 小時,這是沒必要的!
2.隨時充電,對你的裝置沒有影響,因為鋰電池不怕你充電,只怕沒電!
3.電池電量耗盡請盡快充電,時間拖太久會讓電池從此一睡不起唷!

[閒聊]久未更新