paths.h

来自「symbian 的一个 二维飞行游戏 源码 及相关技术文章」· C头文件 代码 · 共 219 行

H
219
字号
// Copyright 2002 Kenneth Guy,
// 
#include "TPathLineType.h"
#include "TBadGuyFlags.h"

extern const TInt16 KPaths[]={
  // path 0
  EPathLineStart,1,0,0,
  EPathLineMoveTo,1,270,0,
  EPathLineSetVelocity,1,2,2,
  EPathLineMoveStepTo,1,30,0,
  EPathLineMoveStepTo,1,30,90,
  EPathLineSetClearFlags,1,  TBadGuyFlags::EHomingX    |
                             TBadGuyFlags::EHomingY, 0,
  EPathLineMoveSimple,0,0,0,

  // path 1
  EPathLineStart,1,0,0,
  // Bad guy that is larger if iHealth is greater
  // also gains one health every 8 frames so if the player leaves
  // it alone it recovers.
  // offset 6
  EPathLineSetHealth,1,2,0,
  EPathLineSetSprite,1,55,0,
  EPathLineSetClearFlags,1,  TBadGuyFlags::EBounceTop    |
                             TBadGuyFlags::EBounceBottom |
                             TBadGuyFlags::EBounceLeft   |
                             TBadGuyFlags::EBounceRight,0,
  EPathLineSetVelocity,1,1,1,
  EPathLineSetCounter,1,0,0,  // loop2, reset counter to 0
  EPathLineIfHealthEqual,2,1,1, // set sprite depending on health, loop1
  EPathLineSetSprite,1,54,0,
  EPathLineIfHealthEqual,2,1,2,
  EPathLineSetSprite,1,55,0,
  EPathLineIfHealthEqual,2,1,3,
  EPathLineSetSprite,1,56,0,
  EPathLineIfHealthEqual,2,1,4,
  EPathLineSetSprite,1,57,0,
  EPathLineIfHealthEqual,2,1,5,
  EPathLineSetSprite,1,58,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineAddCounter,1,1,0, // add one to counter
  EPathLineIfCounterLess,1,-12,8, // if counter < 8 goto loop1
  EPathLineIfHealthLess,-14,1,5, // if health >= 5 goto loop2
  EPathLineAddHealth,-15,1,0, // add 1 to health and goto loop2
  
  // path 2
  EPathLineStart,1,0,0,
 // zig zag path , offset 26
  EPathLineSetCounter,1,0,0, //looppoint1, reset counter to 0
  EPathLineMoveBy,1,-2,+2,
  EPathLineAddCounter,1,1,0, // add one to counter
  EPathLineIfCounterLess,1,-2,32, // goto looppoint1 if < 32
  EPathLineSetCounter,1,0,0, //looppoint2, reset counter to 0
  EPathLineMoveBy,1,0,-2,
  EPathLineAddCounter,1,1,0, // add one to counter
  EPathLineIfCounterLess,-7,-2,32, // goto looppoint2 if < 32 else goto 1


  // path 3
  EPathLineStart,1,0,0,
  // path offset 64
  // set up velocity and bouncing
  EPathLineSetVelocity,1,1,1, 
  EPathLineSetClearFlags,1,  TBadGuyFlags::EBounceTop    |
                             TBadGuyFlags::EBounceBottom |
                             TBadGuyFlags::EBounceLeft   |
                             TBadGuyFlags::EBounceRight, 0,
  // loop bouncing and changing sprites
  EPathLineSetSprite,1,16,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,31,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,32,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,33,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,32,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,31,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,-17,0,0,

  // path 4
  EPathLineStart,1,0,0,
  // path offset 84
  // set up homing and velocity
  EPathLineSetVelocity,1,1,1, 
  EPathLineSetClearFlags,1,  TBadGuyFlags::EHomingX    |
                             TBadGuyFlags::EHomingY, 0,
  EPathLineSetSprite,1,19,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,20,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,-7,0,0,

  // path 5
  EPathLineStart,1,0,0,
  // path offset 94
  EPathLineSetVelocity,1,1,2,
  EPathLineSetClearFlags,1,  TBadGuyFlags::EHomingY, 0,
  EPathLineSetSprite,1,35,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,36,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,37,0,
  EPathLineMoveBy,1,-6,0,
  EPathLineSetSprite,1,37,0,
  EPathLineMoveBy,-3,-6,0,


  // path 6
  EPathLineStart,1,0,0,
  // offset 134  
  EPathLineSetVelocity,1,0,1, 
  EPathLineSetPoints,1,50,0,  
  EPathLineSetHealth,1,6,0,
  EPathLineSetSprite,1,48,0,
  EPathLineSetClearFlags,1,  TBadGuyFlags::EBounceTop    |
                             TBadGuyFlags::EBounceBottom |
                             TBadGuyFlags::EBounceLeft   |
                             TBadGuyFlags::EBounceRight, 0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,48,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,49,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,50,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,51,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,52,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineSetSprite,1,53,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineMoveSimple,1,0,0,
  EPathLineClone,-25,1,0,
  EPathLineSetSprite,1,47,0,  // cloned version
  EPathLineSetPoints,1,2,0,  
  EPathLineSetVelocity,1,-2,2,  
  EPathLineSetId,1,0,0,        // remove id, kill this doesn't damage parent
  EPathLineSetHealth,1,1,0, 
  EPathLineSetClearFlags,1,  TBadGuyFlags::EBounceTop    |
                             TBadGuyFlags::EBounceBottom |
                             TBadGuyFlags::EBounceLeft, TBadGuyFlags::EBounceRight,
  EPathLineMoveSimple,0,0,0,
  

EPathLineEnd,0,0,0
};


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?