Mercurial > hg > Members > kono > tree_dandy2
view move.c @ 0:01387a2e419e
initial version
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 07 Dec 2010 15:39:45 +0900 |
parents | |
children |
line wrap: on
line source
#include <stdlib.h> #include <SDL.h> //#include "libps2.h" #include "move.h" #include "Enemy.h" #include "count2.h" #include "tokuten.h" #include "schedule.h" #include "bom.h" #include "sankaku.h" //#include "libps.h" #include "sgoex.h" #include "atari.h" #include"debug.h" #include "SDL_opengl.h" extern SpriteView spview[MAXOBJ]; int tekino0; int rinkx; int rinky; int rinkf1 = 0, rinkf2 = 0; int asteroiddt[200]; int asteroidi = 0; int enemyfaste = 0; int sf; int amari; int fastebos = 0; void asteroid(int tekino); void Move() { int tekino; for (tekino = 0; tekino < 100; tekino++) { if (enemy[tekino].f == TRUE) { if ((enemy[tekino].move != 8) && (enemy[tekino].move != 9)) if (jiki.bf == TRUE) if (atari(0, tekino)) { Bom(enemy[tekino].x, enemy[tekino].y); enemy[tekino].f = FALSE; enemycount += (enemy[tekino].sc * ((infg.stg / 128) + infg_level + 1)); } if (enemy[tekino].f == TRUE); switch (enemy[tekino].move) { case 0: enemy[tekino].x += enemy[tekino].sx; enemy[tekino].y += enemy[tekino].sy; break; case 1: enemy[tekino].x -= enemy[tekino].sx; enemy[tekino].y -= enemy[tekino].sy; break; case 2: enemy[tekino].sy -= 0.25; enemy[tekino].y += enemy[tekino].sy; break; case 3: enemy[tekino].x += enemy[tekino].sx; enemy[tekino].y += enemy[tekino].sy; if ((enemy[tekino].dt1 == 60) || (enemy[tekino].dt1 == 90) || (enemy[tekino].dt1 == 30)) Puttama(0, enemy[tekino].x, enemy[tekino].y); enemy[tekino].dt1++; break; case 4: enemy[tekino].y += enemy[tekino].sy; enemy[tekino].x += enemy[tekino].sx; if (enemy[tekino].y < jiki.y && enemy[tekino].y + 16 > jiki.y) { enemy[tekino].sy = -2; enemy[tekino].sx = ((jiki.x > enemy[tekino].x) ? 4 : -4); enemy[tekino].move = 7; } break; case 5: enemy[tekino].y += enemy[tekino].sy; enemy[tekino].x += enemy[tekino].sx; if (enemy[tekino].y + 96 < jiki.y && enemy[tekino].y + 128 > jiki.y) { enemy[tekino].sy = -2; enemy[tekino].sx = ((jiki.x > enemy[tekino].x) ? 4 : -4); enemy[tekino].move = 0; } break; case 6: enemy[tekino].y += enemy[tekino].sy; enemy[tekino].x += enemy[tekino].sx; if (enemy[tekino].y + 96 < jiki.y && enemy[tekino].y + 128 > jiki.y) { enemy[tekino].sy = 2; enemy[tekino].sx = ((jiki.x > enemy[tekino].x) ? 4 : -4); enemy[tekino].move = 0; } break; case 7: enemy[tekino].x += enemy[tekino].sx; enemy[tekino].y += enemy[tekino].sy; if ((enemy[tekino].dt1 == 60) || (enemy[tekino].dt1 == 90) || (enemy[tekino].dt1 == 30)) Puttama(1, enemy[tekino].x, enemy[tekino].y); enemy[tekino].dt1++; break; ////////1面中ボスパターン///////////////////////////////// case 8: /*8から11まで登場パターン */ if (enemy[tekino].y < 520) { tekino0 = tekino; kyeenemyno = tekino; enemy[tekino].y += enemy[tekino].sy; count++; DefSpriteEx(enemy[tekino].charno, 16*4, 32*4); // PutSprite(count, enemy[tekino].x, enemy[tekino].y, // enemy[tekino].charno); PutSpriteEx(enemy[tekino].charno, enemy[tekino].x*4, enemy[tekino].y*4, 0.2, 0.2, 1); enemy[tekino].dt1 = 512; enemy[tekino].s = 0.125; goto putout; } enemy[tekino].move = 9; case 9: if (enemy[tekino].s <= 2) { enemy[tekino].s += 0.05; enemy[tekino].y -= 12; count++; DefSpriteEx(54, 16*4, 32*4); // PutSprite(count, enemy[tekino].x, enemy[tekino].y, 54); PutSpriteEx(54, enemy[tekino].x*4, enemy[tekino].y*4, enemy[tekino].s, enemy[tekino].s, 1); goto putout; } count++; DefSpriteEx(54, 16, 32); // PutSprite(count, enemy[tekino].x, enemy[tekino].y, 54); PutSpriteEx(54, enemy[tekino].x, enemy[tekino].y, enemy[tekino].s, enemy[tekino].s, 1); rinkx = enemy[tekino].x; rinky = enemy[tekino].y; Putenemy(5, rinkx - 16, rinky - 16, 1, 0, 10); Putenemy(5, rinkx - 16, rinky - 16, -1, 0, 10); enemy[tekino].move = 11; enemy[tekino].dt1 = 8192; goto putout; case 10: if (enemy[tekino].dt1 < 48) { enemy[tekino].x += enemy[tekino].sx; enemy[tekino].y += enemy[tekino].sy; enemy[tekino].dt1++; break; } rinkf1 = 1; enemy[tekino].dt1 = rinkx; enemy[tekino].dt2 = rinky; enemy[tekino].move = 13; break; case 11: if (rinkf1 == 0) { count++; DefSpriteEx(54, 16, 32); // PutSprite(count, enemy[tekino].x, enemy[tekino].y, 54); PutSpriteEx(54, enemy[tekino].x, enemy[tekino].y, enemy[tekino].s, enemy[tekino].s, 1); goto putout; } enemy[tekino].dt1 = 0; enemy[tekino].dt2 = 0; enemy[tekino].move = 12; break; case 12: if (fastebos > 60 * 60) { if (enemy[tekino].y > 240 + 32) enemy[tekino].f = FALSE; enemy[tekino].y += 3; rinky += 3; count++; DefSpriteEx(54, 16, 32); // PutSprite(count, enemy[tekino].x, enemy[tekino].y, 54); PutSpriteEx(54, enemy[tekino].x, enemy[tekino].y, 2, 2, 1); goto putout; } if (enemy[tekino].dt1 <= 60) { if (jiki.x + 15 - rinkx < -5) enemy[tekino].sx = -0.8; else if (jiki.x + 15 - rinkx > 5) enemy[tekino].sx = +0.8; else enemy[tekino].sx = 0; enemy[tekino].x += enemy[tekino].sx; rinkx = enemy[tekino].x; rinky = enemy[tekino].y; } if ((enemy[tekino].dt1 > 60) && (enemy[tekino].dt1 <= 70)) { if (enemy[tekino].dt1 % 2 == 1) { Puttama(0, rinkx - 16, rinky); Puttama(0, rinkx, rinky); Puttama(0, rinkx + 16, rinky); } } if ((enemy[tekino].dt1 > 180) && (enemy[tekino].dt1 <= 240)) { if (enemy[tekino].dt1 % 2 == 1) { rinkf2 = 1; Puttama(2, rinkx - 16, enemy[tekino].y - 32); Puttama(3, rinkx + 32 - 16, enemy[tekino].y - 32); } else rinkf2 = 0; } if (enemy[tekino].dt1 > 240) { rinkf2 = 2; } if ((enemy[tekino].dt1 > 240) && (enemy[tekino].dt1 <= 400)) { count++; PutSprite(count, rinkx - 16, rinky + 32, 58 + enemy[tekino].dt1 % 4); } if ((enemy[tekino].dt1 > 300) && (enemy[tekino].dt1 <= 400)) { rinkf2 = 3; if (jiki.x + 15 - rinkx < -5) enemy[tekino].sx = -1; else if (jiki.x + 15 - rinkx > 5) enemy[tekino].sx = +1; else enemy[tekino].sx = 0; enemy[tekino].x += enemy[tekino].sx; rinkx = enemy[tekino].x; rinky = enemy[tekino].y; Puttama(4, rinkx - 8, rinky + 16); } if ((enemy[tekino].dt1 > 400) && (enemy[tekino].dt1 <= 500)) { rinkf2 = 4; if (jiki.x + 15 - rinkx < -5) enemy[tekino].sx = -1; else if (jiki.x + 15 - rinkx > 5) enemy[tekino].sx = +1; else enemy[tekino].sx = 0; enemy[tekino].x += enemy[tekino].sx; rinkx = enemy[tekino].x; rinky = enemy[tekino].y; } if (enemy[tekino].dt1 > 500) { rinkf2 = 5; if (jiki.x + 15 - rinkx < -5) enemy[tekino].sx = -1; else if (jiki.x + 15 - rinkx > 5) enemy[tekino].sx = +1; else enemy[tekino].sx = 0; enemy[tekino].x += enemy[tekino].sx; rinkx = enemy[tekino].x; rinky = enemy[tekino].y; } if (enemy[tekino].dt1 > 600) { rinkf2 = 0; enemy[tekino].dt1 = 0; } fastebos++; enemy[tekino].dt1++; count++; DefSpriteEx(54, 16, 32); // PutSprite(count, enemy[tekino].x, enemy[tekino].y, 54); PutSpriteEx(54, enemy[tekino].x, enemy[tekino].y, 2, 2, 1); goto putout; case 13: if (enemy[tekino0].f == FALSE) { Bom(enemy[tekino].x, enemy[tekino].y); enemy[tekino].f = FALSE; } enemy[tekino].x += rinkx - enemy[tekino].dt1; enemy[tekino].y += rinky - enemy[tekino].dt2; enemy[tekino].dt1 = rinkx; enemy[tekino].dt2 = rinky; if (rinkf2 == 1) { if (enemy[tekino].x > rinkx) { Puttama(2, enemy[tekino].x + 32, enemy[tekino].y); } if (enemy[tekino].x < rinkx) { Puttama(3, enemy[tekino].x, enemy[tekino].y); } } if (rinkf2 == 4) { count++; PutSprite(count, enemy[tekino].x, enemy[tekino].y + 56, 58 + filpcount % 4); } if (rinkf2 == 5) { if (enemy[tekino].x > rinkx) { Puttama(5, enemy[tekino].x + 8, enemy[tekino].y + 24); } if (enemy[tekino].x < rinkx) { Puttama(5, enemy[tekino].x + 8, enemy[tekino].y + 24); } } break; case 20: enemy[tekino].x += enemy[tekino].sx; enemy[tekino].y += enemy[tekino].sy; enemy[tekino].sx -= 0.5; //-=1; enemy[tekino].sy += 0.4; //+=0.8; break; case 21: enemy[tekino].x += enemy[tekino].sx; enemy[tekino].y += enemy[tekino].sy; enemy[tekino].sx += 0.5; //+=1; enemy[tekino].sy += 0.4; //+=0.8; break; ///////////ここまで/////////////////////// case 22: sf = rand() % 4; if ((sf == 0) || (sf == 1)) { enemy[tekino].x = -35; enemy[tekino].y = rand() % (120 - 35); enemy[tekino].sx = (rand() % 4 + 1); enemy[tekino].sy = rand() % 3 - 1; enemy[tekino].move = 23; } if ((sf == 2)) { enemy[tekino].x = rand() % 290; enemy[tekino].y = -30; enemy[tekino].sx = rand() % 3 - 1; enemy[tekino].sy = (rand() % 4 + 1); enemy[tekino].move = 23; } if (sf == 3) { enemy[tekino].x = 320; enemy[tekino].y = rand() % (120 - 35); enemy[tekino].sx = (rand() % 4 + 1) * -1; enemy[tekino].sy = rand() % 3 - 1; enemy[tekino].move = 23; } break; case 23: asteroid(tekino); break; //////////////////////////////////////// case 24: kyeenemyno = tekino; tekino0 = 0; rinkx = 0; rinky = 0; rinkf1 = 0; rinkf2 = 0; enemy[tekino].move = 25; break; case 25: if (enemy[tekino].dt1 <= 360) { enemy[tekino].x = Mycos(enemy[tekino].dt1) * 30 / SANKAKU + 82 + 32; enemy[tekino].y = Mysin(enemy[tekino].dt1) * 30 / SANKAKU + 30; } if (enemy[tekino].dt1 > 360) { enemy[tekino].x = Mycos(enemy[tekino].dt1) * 30 * -1 / SANKAKU + 142 + 32; enemy[tekino].y = Mysin(enemy[tekino].dt1) * 30 / SANKAKU + 30; } count++; PutSprite(count, enemy[tekino].x - 42, enemy[tekino].y, 64); amari = rand() % 160; if ((amari == 1) && (enemy[kyeenemyno + 5].f == TRUE)) { enemy[tekino].move = 26; //バルカンパターン rinkf1 = 1; } if ((amari == 2) && (enemy[kyeenemyno + 1].f == TRUE)) { enemy[tekino].move = 27; //ロケットパンチパターン rinkf1 = 5; rinkx = 0; break; } if ((enemy[kyeenemyno + 5].f != TRUE) && (enemy[kyeenemyno + 1].f != TRUE)) enemy[tekino].move = 28; enemy[tekino].dt1 += 3; if (enemy[tekino].dt1 == 720) enemy[tekino].dt1 = 0; break; case 26: //バルカンパターン if ((enemy[tekino].dt2 > 50) && (enemy[tekino].dt2 < 100)) { rinkf1 = 2; } if (enemy[tekino].dt2 > 100) rinkf1 = 3; if (enemy[tekino].dt2 == 400) rinkf1 = 4; count++; PutSprite(count, enemy[tekino].x - 42, enemy[tekino].y, 64); if (enemy[tekino].dt2 == 401) { enemy[tekino].dt2 = 0; rinkf1 = 0; enemy[tekino].move = 25; break; } enemy[tekino].dt2++; break; case 27: //ロケットパンチパターン if ((enemy[tekino].dt2 > 50) && (enemy[tekino].dt2 < 60) && (enemy[tekino].x > -24) && (enemy[tekino].y > -24)) { rinkf1 = 6; rinkx -= 4; enemy[tekino].x -= 4; enemy[tekino].y -= 4; } if (enemy[tekino].dt2 == 80) { rinkf1 = 7; } if (enemy[tekino].dt2 == 81) { rinkf1 = 8; } if (enemy[tekino].dt2 == 124) { rinkf1 = 9; } if (enemy[tekino].dt2 == 400) { rinkf1 = 10; } if (enemy[tekino].dt2 == 444) { rinkf1 = 11; } if (enemy[tekino].dt2 == 500) { rinkf1 = 12; } if ((enemy[tekino].dt2 > 80) && (enemy[tekino].dt2 < 200)) if ((rinkx != 0) && (enemy[tekino].dt2 % 2 == 1)) { rinkx++; enemy[tekino].x++; enemy[tekino].y++; } count++; PutSprite(count, enemy[tekino].x - 32, enemy[tekino].y, 6); if (rinkf1 == 12) { enemy[tekino].dt2 = 0; rinkf1 = 0; rinkx = 0; enemy[tekino].move = 25; break; } enemy[tekino].dt2++; break; case 28: if (enemy[tekino].dt1 <= 360) { enemy[tekino].x = Mycos(enemy[tekino].dt1) * 30 / SANKAKU + 82 + 32; enemy[tekino].y = Mysin(enemy[tekino].dt1) * 30 / SANKAKU + 30; } if (enemy[tekino].dt1 > 360) { enemy[tekino].x = Mycos(enemy[tekino].dt1) * 30 * -1 / SANKAKU + 142 + 32; enemy[tekino].y = Mysin(enemy[tekino].dt1) * 30 / SANKAKU + 30; } count++; PutSprite(count, enemy[tekino].x - 42, enemy[tekino].y, 64); if (enemy[tekino].dt1 % 30 == 3) Putenemy(24, enemy[tekino].x + 14, enemy[tekino].y + 14, (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1), (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1), 29); enemy[tekino].dt1 += 3; break; case 29: enemy[tekino].x += enemy[tekino].sx; enemy[tekino].y += enemy[tekino].sy; if (enemy[tekino].dt1 % 18 == 1) Puttama(0, enemy[tekino].x, enemy[tekino].y); enemy[tekino].dt1++; break; case 30: //本体 enemy[tekino].x = enemy[kyeenemyno].x - 32; enemy[tekino].y = enemy[kyeenemyno].y; break; case 31: //右腕 if ((enemy[kyeenemyno + 3].f == FALSE) || (kyeenemyno == -1)) { Bom(enemy[tekino].x, enemy[tekino].y); enemy[tekino].f = FALSE; break; } if (rinkf1 == 0) { enemy[tekino].x = enemy[kyeenemyno].x + 40; enemy[tekino].y = enemy[kyeenemyno].y + 28; enemy[tekino].dt2 = 0; } if (rinkf1 == 5) { enemy[tekino].x = enemy[kyeenemyno].x + 52; enemy[tekino].y = enemy[kyeenemyno].y; count++; PutSprite(count, enemy[tekino].x - 4, enemy[tekino].y - 20, 80 + enemy[tekino].dt2 % 4); enemy[tekino].dt2++; } if (rinkf1 == 6) { if (enemy[tekino].y < 240 - 48) { enemy[tekino].y += 6; } else { // rinkf1=7; break; } count++; PutSprite(count, enemy[tekino].x - 4, enemy[tekino].y - 20, 90 + enemy[tekino].dt2 % 4); enemy[tekino].dt2++; } if (rinkf1 == 7) { Putenemy(22, enemy[tekino].x + 14, enemy[tekino].y + 14, 0, 0, 40); // rinkf1=8; break; } if (rinkf1 == 11) { if (enemy[kyeenemyno].y + 20 != enemy[tekino].y) { enemy[tekino].y--; } else { // rinkf1=12; break; } count++; PutSprite(count, enemy[tekino].x + 8, enemy[tekino].y + 44, 58 + enemy[tekino].dt2 % 4); enemy[tekino].dt2++; } break; case 32: //左腕 if ((enemy[kyeenemyno + 4].f == FALSE) || (kyeenemyno == -1)) { Bom(enemy[tekino].x, enemy[tekino].y); enemy[tekino].f = FALSE; break; } enemy[tekino].x = enemy[kyeenemyno].x - 40; enemy[tekino].y = enemy[kyeenemyno].y + 28; if (rinkf1 == 5) { enemy[tekino].x = enemy[kyeenemyno].x - 24 + 4; enemy[tekino].y = enemy[kyeenemyno].y + 28; enemy[tekino].charno = enemystate[20].charno; } if (rinkf1 == 11) { enemy[tekino].charno = enemystate[14].charno; } if (rinkf1 == 7) { Putenemy(23, enemy[tekino].x + 14, enemy[tekino].y + 14, 0, 0, 41); // rinkf1=8; break; } break; case 33: //右肩 if ((enemy[kyeenemyno].f == FALSE) || (kyeenemyno == -1)) { Bom(enemy[tekino].x, enemy[tekino].y); enemy[tekino].f = FALSE; } enemy[tekino].x = enemy[kyeenemyno].x + 32; enemy[tekino].y = enemy[kyeenemyno].y; if (rinkf1 == 5) { enemy[tekino].x = enemy[kyeenemyno].x + 32 - 4; enemy[tekino].y = enemy[kyeenemyno].y; enemy[tekino].charno = enemystate[19].charno; } if (rinkf1 == 6) { enemy[tekino].charno = enemystate[11].charno; } break; case 34: //左肩 if ((enemy[kyeenemyno].f == FALSE) || (kyeenemyno == -1)) { Bom(enemy[tekino].x, enemy[tekino].y); enemy[tekino].f = FALSE; } enemy[tekino].x = enemy[kyeenemyno].x - 32; enemy[tekino].y = enemy[kyeenemyno].y; if (rinkf1 == 5) { enemy[tekino].charno = enemystate[21].charno; } if (rinkf1 == 6) { enemy[tekino].charno = enemystate[12].charno; } break; case 35: //胸 if (kyeenemyno == -1) { Bom(enemy[tekino].x, enemy[tekino].y); enemy[tekino].f = FALSE; } enemy[tekino].x = enemy[kyeenemyno].x; enemy[tekino].y = enemy[kyeenemyno].y + 32; if (rinkf1 == 1) { enemy[tekino].charno = enemystate[16].charno; } if (rinkf1 == 2) { count++; PutSprite(count, enemy[tekino].x - 10, enemy[tekino].y + 16, 58 + enemy[tekino].dt2 % 4); count++; PutSprite(count, enemy[tekino].x + 10, enemy[tekino].y + 16, 58 + enemy[tekino].dt2 % 4); enemy[tekino].dt2++; } if (rinkf1 == 3) { count++; PutSprite(count, enemy[tekino].x - 10, enemy[tekino].y + 16, 58 + enemy[tekino].dt2 % 4); count++; PutSprite(count, enemy[tekino].x + 10, enemy[tekino].y + 16, 58 + enemy[tekino].dt2 % 4); if (enemy[tekino].dt2 % 20 == 1) { Puttama(7, enemy[tekino].x, enemy[tekino].y + 16); Puttama(7, enemy[tekino].x + 20, enemy[tekino].y + 16); } enemy[tekino].dt2++; } if (rinkf1 == 4) { enemy[tekino].charno = enemystate[15].charno; enemy[tekino].dt2 = 0; } break; case 40: //アームバルカン if (enemy[kyeenemyno + 1].f == FALSE) { Bom(enemy[tekino].x, enemy[tekino].y); enemy[tekino].f = FALSE; } if ((rinkf1 == 8) && (enemy[tekino].dt1 % 3 == 1)) { if ((enemy[tekino].dt2 < 16)) { enemy[tekino].dt2++; DefSprite(76, 1, 112, 0, 16, enemy[tekino].dt2, 480); } else { // rinkf1=9; break; } } if (rinkf1 == 9) { if (enemy[tekino].dt1 % 15 == 1) { Puttama(8, enemy[tekino].x, enemy[tekino].y); } } if (rinkf1 == 10) { if (enemy[tekino].dt2 != 0) { enemy[tekino].dt2--; DefSprite(76, 1, 112, 0, 16, enemy[tekino].dt2, 480); } else { enemy[tekino].f = FALSE; // rinkf1=11; } } enemy[tekino].dt1++; break; case 41: //左腕アップアームバルカン if (enemy[kyeenemyno + 2].f == FALSE) { Bom(enemy[tekino].x, enemy[tekino].y); enemy[tekino].f = FALSE; } enemy[tekino].x = enemy[kyeenemyno].x - 20 - 7; enemy[tekino].y = enemy[kyeenemyno].y + 28 + 15; if ((rinkf1 == 8) && (enemy[tekino].dt1 % 3 == 1)) { if ((enemy[tekino].dt2 < 16)) { enemy[tekino].dt2++; DefSprite(77, 1, 112, 16, enemy[tekino].dt2, 16, 480); /*左腕アップアーム砲 */ } else { rinkf1 = 9; break; } } if (rinkf1 == 9) { if (enemy[tekino].dt1 % 15 == 1) { Puttama(9 + rand() % 2, enemy[tekino].x, enemy[tekino].y); } } if (rinkf1 == 10) { if (enemy[tekino].dt2 != 0) { enemy[tekino].dt2--; DefSprite(77, 1, 112, 16, enemy[tekino].dt2, 16, 480); } else { enemy[tekino].f = FALSE; // rinkf1=11; } } enemy[tekino].dt1++; break; case 400: enemy[tekino].sy++; enemy[tekino].y += enemy[tekino].sy / 4; break; case 401: enemy[tekino].sx++; enemy[tekino].x += enemy[tekino].sx / 8; if (enemy[tekino].x > (jiki.x - 32)) { enemy[tekino].sy--; } enemy[tekino].y += enemy[tekino].sy / 8; if (enemy[tekino].dt1 % 50 == 37) { Puttama(1, enemy[tekino].x + 8, enemy[tekino].y + 24); } enemy[tekino].dt1++; break; case 402: enemy[tekino].sx--; enemy[tekino].x += enemy[tekino].sx / 8; if (enemy[tekino].x < (jiki.x + 32)) { enemy[tekino].sy--; } enemy[tekino].y += enemy[tekino].sy / 8; if (enemy[tekino].dt1 % 50 == 37) { Puttama(1, enemy[tekino].x + 8, enemy[tekino].y + 24); } enemy[tekino].dt1++; break; case 410: kyeenemyno = tekino; case 411: if (enemy[tekino].dt2 > 356) enemy[tekino].sx = -1; if (enemy[tekino].dt2 < -398) enemy[tekino].sx = 1; if ((enemy[tekino].dt1) % 62 == 0) Putenemy(41, enemy[tekino].x, enemy[tekino].y, (int) -Mycos(enemy[tekino].dt1 / 16) * 4 / SANKAKU, (int) -Mysin(enemy[tekino].dt1 / 16) * 4 / SANKAKU, 7); if ((enemy[tekino].dt1) % 13 == 0) Puttama(11, enemy[tekino].x + 32, enemy[tekino].y + 32); enemy[tekino].dt2 += enemy[tekino].sx; enemy[tekino].dt1 += enemy[tekino].dt2 / 4; enemy[tekino].x = jiki.x - 16 + Mycos(enemy[tekino].dt1 / 16) * 128 / SANKAKU; enemy[tekino].y = jiki.y - 16 + Mysin(enemy[tekino].dt1 / 16) * 128 / SANKAKU; if (enemy[tekino].x < 0) enemy[tekino].x = 0; if (enemy[tekino].x > 260) enemy[tekino].x = 260; if (enemy[tekino].y < 0) enemy[tekino].y = 0; if (enemy[tekino].y > 232) enemy[tekino].y = 232; break; case 500: enemy[tekino].s = 0; kyeenemyno = tekino; enemy[tekino].dt2++; enemy[tekino].dt2 %= 512; enemy[tekino].dt1++; count++; DefSpriteEx(100, 16, 16); // PutSprite(count, enemy[tekino].x + 16, // enemy[tekino].y + 16, 100); PutSpriteEx(100, enemy[tekino].x + 16, enemy[tekino].y + 16, 2, 2, enemy[tekino].dt1); if (enemy[tekino].dt1 % (5 + enemy[tekino].dt2 / 8) == 1) { if (rand() % 2 == 1) Putenemy(24, enemy[tekino].x, enemy[tekino].y, (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1), (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1), 501); else Putenemy(rand() % 2 + 1, enemy[tekino].x, enemy[tekino].y, (int) Mycos(enemy[tekino].dt1 / 4) * 4 / SANKAKU, (int) -Mysin(enemy[tekino].dt1 / 4) * 4 / SANKAKU, 501); } if (enemy[tekino].dt1 == 50) { /*Putenemy(44,0,0,1,1,411); */ } goto putout; case 501: enemy[tekino].x += enemy[tekino].sx; enemy[tekino].y += enemy[tekino].sy; if (enemy[tekino].dt1 % 32 == 1) Puttama(11, enemy[tekino].x, enemy[tekino].y); enemy[tekino].dt1++; break; case 600: kyeenemyno = tekino; enemy[tekino].dt1 += 30; enemy[tekino].dt2++; enemy[tekino].dt1 %= 360; enemy[tekino].x += Mycos(enemy[tekino].dt1) * 4 / SANKAKU; enemy[tekino].y += Mysin(enemy[tekino].dt1) * 4 / SANKAKU; Puttama(11, enemy[tekino].x + 16, enemy[tekino].y + 16); Puttama(11, enemy[tekino].x + 32, enemy[tekino].y + 48); Puttama(11, enemy[tekino].x + 48, enemy[tekino].y + 16); if (enemy[tekino].dt2 > 240) enemy[tekino].move = 601; if (enemy[tekino].x < 0) enemy[tekino].x = 0; if (enemy[tekino].x > 260) enemy[tekino].x = 260; if (enemy[tekino].y < 0) enemy[tekino].y = 0; if (enemy[tekino].y > 232) enemy[tekino].y = 232; break; case 601: enemy[tekino].dt2++; if (enemy[tekino].x < jiki.x) enemy[tekino].sx++; if (enemy[tekino].x > jiki.x) enemy[tekino].sx--; enemy[tekino].x += enemy[tekino].sx; Putenemy(6, enemy[tekino].x + 16 + rand() % 32, enemy[tekino].y, 0, rand() % 4, 400); if (enemy[tekino].x < 0) enemy[tekino].x = 0; if (enemy[tekino].x > 260) enemy[tekino].x = 260; if (enemy[tekino].y < 0) enemy[tekino].y = 0; if (enemy[tekino].y > 232) enemy[tekino].y = 232; if (enemy[tekino].dt2 > 800) { enemy[tekino].move = 602; } break; case 602: enemy[tekino].dt2++; Putenemy(24, enemy[tekino].x + 14, enemy[tekino].y + 14, (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1), (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1), 29); if (enemy[tekino].dt2 > 1024) { enemy[tekino].move = 600; enemy[tekino].dt2 = 0; } break; } if ((enemy[tekino].y > 964 + 32) || (enemy[tekino].x > 1688 + 50) || (enemy[tekino].y < 0 - 128) || (enemy[tekino].x < 0 - 200)) { enemy[tekino].f = FALSE; } count++; PutSprite(count, enemy[tekino].x, enemy[tekino].y, enemy[tekino].charno); } putout:; } asteroidi = 0; } void asteroid(int tekino) { int i; asteroiddt[asteroidi] = tekino; // if(asteroidi==0) // { enemy[tekino].x += enemy[tekino].sx; enemy[tekino].y += enemy[tekino].sy; // } if (asteroidi > 0) { for (i = 0; i < asteroidi; i++) { if ((enemy[asteroiddt[i]].x + 32 > enemy[tekino].x) && (enemy[tekino].x + 32 > enemy[asteroiddt[i]].x) && (enemy[asteroiddt[i]].y + 32 > enemy[tekino].y) && (enemy[asteroiddt[i]].y < enemy[tekino].y + 32)) { enemy[tekino].sx *= -1; enemy[tekino].sy *= -1; } } } asteroidi++; } void charpatern() { /* GsSPRITE gt; SpriteView st; int counttag; counttag = count; enemyfaste++; while (counttag > enemyfaste) { st = spview[counttag]; gt = sprite[counttag]; sprite[counttag] = sprite[enemyfaste]; spview[counttag] = spview[enemyfaste]; sprite[enemyfaste] = gt; spview[enemyfaste] = st; counttag--; enemyfaste++; } */ } void cgcg(int p) { /* GsSPRITE gt; SpriteView st; int counttag; counttag = count; st = spview[counttag]; gt = sprite[counttag]; sprite[counttag] = sprite[p]; spview[counttag] = spview[p]; sprite[p] = gt; spview[p] = st; */ } void bosguage() { int h; float py; float wariai1, wariai2; if (kyeenemyno != -1) { if (stage == 0) h = 4; if (stage == 1) h = 18; if (stage == 2) h = 44; if (stage == 3) h = 30; if (stage == 4) h = 49; wariai2 = enemy[kyeenemyno].p; wariai1 = wariai2 / enemystate[h].p; py = 186.0 * wariai1; DefSprite(94, 3, 48, 64 + (186 - py), 16, py, 480); count++; // PutSprite(count, 320 - 16, 220 - py, 94); PutSpriteEx(94, 1500, 1100 - py, 4, 4, 0); } }