PageRenderTime 56ms CodeModel.GetById 27ms RepoModel.GetById 0ms app.codeStats 0ms

/gameedit/EngineSrc/src/ScreenTD_Main.java

http://cellengine.googlecode.com/
Java | 266 lines | 177 code | 66 blank | 23 comment | 30 complexity | 187f71b601a908f3e60fe0aa7d24d7dc MD5 | raw file
Possible License(s): GPL-2.0, AGPL-1.0, BSD-3-Clause, AGPL-3.0, LGPL-2.1, Apache-2.0, MPL-2.0-no-copyleft-exception, CPL-1.0
  1. import game.unit.UnitEnemy;
  2. import game.unit.UnitShoot;
  3. import game.unit.UnitTower;
  4. import javax.microedition.lcdui.Graphics;
  5. import com.cell.*;
  6. import com.cell.game.*;
  7. import com.cell.game.ai.*;
  8. import com.cell.particle.*;
  9. //?????CScreen????????
  10. public class ScreenTD_Main extends AScreen {
  11. // game world
  12. CWorld world;
  13. CMap map;
  14. CCamera cam;
  15. UnitEnemy enemys[] = new UnitEnemy[8];
  16. UnitTower towers[] = new UnitTower[4];
  17. UnitShoot shoots[] = new UnitShoot[8];
  18. CSprite point;
  19. public ScreenTD_Main(){
  20. IsDebug = false;
  21. FrameDelay = 25;
  22. // res
  23. IImages mapTile = new CTiles20();
  24. IImages sprTile = new CTiles20();
  25. IImages guiTile = new CTiles20();
  26. IImages towerTile = new CTiles20();
  27. IImages shootTile = new CTiles20();
  28. ResesScript.buildClipImages_MapTile(mapTile);
  29. ResesScript.buildClipImages_SprTile(sprTile);
  30. ResesScript.buildClipImages_GUITile(guiTile);
  31. ResesScript.buildClipImages_TowerTile(towerTile);
  32. ResesScript.buildClipImages_ShootTile(shootTile);
  33. // map type
  34. map = ResesScript.createMap_Map00(mapTile, false, false);
  35. // spr type
  36. CSprite enemy ;
  37. switch(Math.abs(Random.nextInt()%4)){
  38. case 0: enemy = ResesScript.createSprite_Enemy00(sprTile);break;
  39. case 1: enemy = ResesScript.createSprite_Enemy01(sprTile);break;
  40. case 2: enemy = ResesScript.createSprite_Enemy02(sprTile);break;
  41. case 3: enemy = ResesScript.createSprite_Enemy03(sprTile);break;
  42. case 4: enemy = ResesScript.createSprite_Enemy04(sprTile);break;
  43. case 5: enemy = ResesScript.createSprite_Enemy05(sprTile);break;
  44. case 6: enemy = ResesScript.createSprite_Enemy06(sprTile);break;
  45. case 7: enemy = ResesScript.createSprite_Enemy07(sprTile);break;
  46. default: enemy = ResesScript.createSprite_Enemy00(sprTile);break;
  47. }
  48. CSprite tower = ResesScript.createSprite_Tower(towerTile);
  49. CSprite point = ResesScript.createSprite_Point(guiTile);
  50. CSprite shoot = ResesScript.createSprite_Shoot(shootTile);
  51. // camera
  52. cam = new CCamera(0,0,
  53. SCREEN_WIDTH,
  54. SCREEN_WIDTH,
  55. map,true,0);
  56. // world
  57. world = new world_Level00();
  58. ((world_Level00)world).Map00 = map;// setmap
  59. ((world_Level00)world).setCamera(cam);//set camera
  60. ((world_Level00)world).initPath();// init path
  61. ((world_Level00)world).initUnit();
  62. world.isRPGView = true;
  63. for(int i=0;i<enemys.length;i++){
  64. enemys[i] = new UnitEnemy(enemy);
  65. enemys[i].Active = false;
  66. enemys[i].Visible = false;
  67. enemys[i].Y = -32 - i*32;
  68. }
  69. for(int i=0;i<towers.length;i++){
  70. towers[i] = new UnitTower(tower);
  71. towers[i].Active = false;
  72. towers[i].Visible = false;
  73. }
  74. for(int i=0;i<shoots.length;i++){
  75. shoots[i] = new UnitShoot(shoot);
  76. shoots[i].Active = false;
  77. shoots[i].Visible = false;
  78. shoots[i].Priority = 1024;
  79. }
  80. this.point = point;
  81. world.addSprites(shoots);
  82. world.addSprites(enemys);
  83. world.addSprites(towers);
  84. world.addSprite(point);
  85. resetTimer();
  86. }
  87. public void notifyLogic() {
  88. // if(isKeyDown(KEY_STAR)) {FrameDelay --;}
  89. // if(isKeyDown(KEY_SHARP)){FrameDelay ++;}
  90. // if(isKeyDown(KEY_0)){ChangeSubScreen("ScreenLogo");}
  91. if(isKeyDown(KEY_0)){AScreen.ExitGame = true;}
  92. // if(isKeyDown(KEY_0)){
  93. // println("");
  94. // for(int i=0;i<world.Sprs.size();i++){
  95. // println(i + " : " + world.Sprs.elementAt(i).getClass().toString()
  96. // + " : Y=" + world.getSprite(i).Y
  97. // + " : PRI=" + world.getSprite(i).Priority
  98. // );
  99. // }
  100. // }
  101. processPoint();
  102. processEnemys();
  103. processTowers();
  104. processShoots();
  105. int cdx = point.X - (cam.getX() + cam.getWidth() /2);
  106. int cdy = point.Y - (cam.getY() + cam.getHeight()/2);
  107. cam.mov(cdx/4,cdy/4);
  108. world.update();
  109. tickTimer();
  110. }
  111. public void notifyRender(Graphics g) {
  112. //clearScreenAndClip(g,0xff000000);
  113. world.render(g);
  114. showFPS(g, 1, 1, 0xffffffff);
  115. }
  116. public void notifyPause() {}
  117. public void notifyResume() {}
  118. // -------------------------------------------------------------------------------------------------------------------------------
  119. int holdTime = 10;
  120. public void processPoint(){
  121. if(isPointerDown()){
  122. }
  123. if(isKeyDown(KEY_5)){
  124. for(int i=0;i<towers.length;i++){
  125. if(!towers[i].Active){
  126. int bx = point.X/map.getCellW();
  127. int by = point.Y/map.getCellH();
  128. if(map.getFlag(bx, by)==0){
  129. map.putFlag(bx, by, 1);
  130. int dx = (bx * map.getCellW()) + map.getCellW()/2;
  131. int dy = (by * map.getCellH()) + map.getCellH()/2;
  132. towers[i].startBuild(dx, dy-1);
  133. }
  134. break;
  135. }
  136. }
  137. }
  138. holdTime--;
  139. if(isKeyDown(KEY_2)){
  140. holdTime=10;
  141. }
  142. if(isKeyDown(KEY_8)){
  143. holdTime=10;
  144. }
  145. if(isKeyDown(KEY_4)){
  146. holdTime=10;
  147. }
  148. if(isKeyDown(KEY_6)){
  149. holdTime=10;
  150. }
  151. if(holdTime<0 || holdTime==10){
  152. if(isKeyHold(KEY_2)){
  153. if(point.Y>0)
  154. point.tryMove(0, -map.getCellH());
  155. }
  156. if(isKeyHold(KEY_8)){
  157. if(point.Y<map.getHeight()-map.getCellH())
  158. point.tryMove(0, map.getCellH());
  159. }
  160. if(isKeyHold(KEY_4)){
  161. if(point.X>0)
  162. point.tryMove(-map.getCellW(), 0);
  163. }
  164. if(isKeyHold(KEY_6)){
  165. if(point.X<map.getWidth()-map.getCellW())
  166. point.tryMove( map.getCellW(), 0);
  167. }
  168. }
  169. if(point.X%map.getCellW()!=map.getCellW()/2){
  170. int dx = point.X/map.getCellW() + map.getCellW()/2;
  171. point.tryMove(dx - point.X ,0);
  172. }
  173. if(point.Y%map.getCellH()!=map.getCellH()/2){
  174. int dy = point.Y/map.getCellH() + map.getCellH()/2;
  175. point.tryMove(0, dy - point.Y);
  176. }
  177. point.nextCycFrame();
  178. }
  179. public void processEnemys(){
  180. if(getTimer()==1)
  181. for(int i=0;i<enemys.length;i++){
  182. if(!enemys[i].Active){
  183. enemys[i].startMove(world.WayPoints[0]);
  184. }else{
  185. }
  186. }
  187. }
  188. public void processTowers(){
  189. for(int i=0;i<towers.length;i++){
  190. if(!towers[i].Active){
  191. }else{
  192. towers[i].startAttack(enemys,shoots);
  193. }
  194. }
  195. }
  196. public void processShoots(){
  197. // for(int i=0;i<shoots.length;i++){
  198. // }
  199. }
  200. }