Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos2D:塔防游戏制作之旅(九)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

炮塔哲学:敌人,攻击波和路径点

在创建敌人之前,让我们先为它们”铺路”.敌人将沿着一系列的路径点前进,这些路径点互相连接,它们被定义为敌人在你创建的世界中移动的路径.

敌人将在第一个路径点上出现,搜索列表中下一个路径点,然后这样重复下去,直到它们到达最后一个路径点-你的基地!如果这些家伙抵达你的基地,你将收到损伤.

我们使用类模板创建路径点的列表,名字为Waypoint,继承于CCNode.

将Waypoint.h替换为如下内容:

#import "cocos2d.h"
#import "HelloWorldLayer.h"

@interface Waypoint: CCNode {
    HelloWorldLayer *theGame;
}

@property (nonatomic,readwritE) CGPoint myPosition;
@property (nonatomic,assign) Waypoint *nextWaypoint;

+(id)nodeWithTheGame:(HelloWorldLayer*)_game LOCATIOn:(CGPoint)LOCATIOn;
-(id)initWithTheGame:(HelloWorldLayer *)_game LOCATIOn:(CGPoint)LOCATIOn;

@end

然后在替换Waypoint.m为以下内容:

#import "Waypoint.h"

@implementation Waypoint

@synthesize myPosition,nextWaypoint;

+(id)nodeWithTheGame:(HelloWorldLayer*)_game LOCATIOn:(CGPoint)LOCATIOn
{
    return [[self alloc] initWithTheGame:_game LOCATIOn:LOCATIOn];
}

-(id)initWithTheGame:(HelloWorldLayer *)_game LOCATIOn:(CGPoint)LOCATIOn
{
    if( (self=[super init])) {

        theGame = _game;

        [self setPosition:CGPointZero];
        myPosition = LOCATIOn;

        [theGame addChild:self];

    }

    return self;
}

-(void)draw
{
    ccDrawColor4B(0,255,2,255);
    ccDrawCircle(myPosition,6,360,30,false);
    ccDrawCircle(myPosition,false);

    if(nextWaypo@R_874_10185@
        ccDrawLine(myPosition,nextWaypoint.myPosition);

    [super draw];   
}

@end

首先,代码通过传递HelloWorldLayer对象的引用和一个CGPoint来初始化一个路径点,CGPoint是该路径点的位置.

每一个路径点包括了下一个路径点的引用;它创建了一系列路径点的链接(你以前有认真留意过数据结构课程吗?).每一个路径点”知道”列表中的下一个路径点.通过跟随这些路径点链接,你可以引导敌人到它们最终的目的地.敌人从不会从地图上撤退,它们有点像神风特工队的队员一样(kamikaze warriors).

大佬总结

以上是大佬教程为你收集整理的Cocos2D:塔防游戏制作之旅(九)全部内容,希望文章能够帮你解决Cocos2D:塔防游戏制作之旅(九)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。