首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

推箱子容易实现(objective-c)

2012-09-19 
推箱子简单实现(objective-c)推箱子大家都知道吧,在cocos2d上简单实现了一个!//后退函数-(void) GoBack{//

推箱子简单实现(objective-c)

推箱子大家都知道吧,在cocos2d上简单实现了一个!

//后退函数-(void) GoBack{    //后退专用    int x_1;//人的前面(箱子)    int y_1;    int x_2;//人的后面    int y_2;        CGPoint p=[self outStack];    int na=p.x;    if (na==0) {        return ;    }    switch (na) {        case 1:            CCLOG(@"下");            //            x_1=x+1;            y_1=y;            x_2=x-1;            y_2=y;            [self MoveBack:p.y x1:x_1 y1:y_1 x2:x_2 y2:y_2];            break;        case 2:            CCLOG(@"上");            //            x_1=x-1;            y_1=y;            x_2=x+1;            y_2=y;            [self MoveBack:p.y x1:x_1 y1:y_1 x2:x_2 y2:y_2];            break;        case 3:            CCLOG(@"右");            //            x_1=x;            y_1=y-1;            x_2=x;            y_2=y+1;            [self MoveBack:p.y x1:x_1 y1:y_1 x2:x_2 y2:y_2];            break;        case 4:            CCLOG(@"左");            //            x_1=x;            y_1=y+1;            x_2=x;            y_2=y-1;            [self MoveBack:p.y x1:x_1 y1:y_1 x2:x_2 y2:y_2];            break;        default:            break;    }}-(void) MoveBack:(int)box x1:(int)x1 y1:(int)y1 x2:(int)x2 y2:(int)y2{        Map_State P1,P2;    P1=P2=None;    //p1:前面,箱子,p2:后面    if ([self IsInGameArea:x1 col:y1]) {        P1=myArrays[x1][y1];    }    if ([self IsInGameArea:x2 col:y2]) {        P2=myArrays[x2][y2];    }    //后面是路    if (P2==Passageway) {        //        myArrays[x2][y2]=Worker;        [self changeSpritePic:x2 yy:y2 type:Worker];    }//后面是目的地    if (P2==Destination) {        //        myArrays[x2][y2]=WorkerInDest;        [self changeSpritePic:x2 yy:y2 type:WorkerInDest];    }        [self MoveMan:x yy:y];    //前面是箱子并且当时走这一步时推了箱子    if (P1==Box&&box==1) {        //        if (myArrays[x][y]==Destination) {            myArrays[x][y]=RedBox;            [self changeSpritePic:x yy:y type:RedBox];        }        if (myArrays[x][y]==Passageway)        {            myArrays[x][y]=Box;            [self changeSpritePic:x yy:y type:Box];        }                myArrays[x1][y1]=Passageway;        [self changeSpritePic:x1 yy:y1 type:Passageway];    }//前面是目的地的箱子并且当时走这一步时推了箱子    if (P1==RedBox&&box==1) {        //                if (myArrays[x][y]==Destination) {            myArrays[x][y]=RedBox;            [self changeSpritePic:x yy:y type:RedBox];        }        if (myArrays[x][y]==Passageway)        {            myArrays[x][y]=Box;            [self changeSpritePic:x yy:y type:Box];        }                myArrays[x1][y1]=Destination;        [self changeSpritePic:x1 yy:y1 type:Destination];    }    x=x2;    y=y2;    }

好了,就这么多,回头我会再贴一个,C#写的地图编辑器!欢迎交流!


热点排行