888 lines
21 KiB
C++
888 lines
21 KiB
C++
![]() |
/************************/
|
|||
|
/* ohta.c */
|
|||
|
/************************/
|
|||
|
#include "../systeminc/version.h"
|
|||
|
#include "../systeminc/system.h"
|
|||
|
#include "ohta.h"
|
|||
|
#include "../systeminc/loadsprbin.h"
|
|||
|
#include "../systeminc/t_music.h"
|
|||
|
|
|||
|
ACTION *MakeJiki( void );
|
|||
|
void Jiki( ACTION *pAct );
|
|||
|
|
|||
|
ACTION *MakeJikiTama( int x, int y, int dx, int dy, int bmpNo );
|
|||
|
void JikiTama( ACTION *pAct );
|
|||
|
|
|||
|
ACTION *MakeEnemy( void );
|
|||
|
void Enemy( ACTION *pAct );
|
|||
|
|
|||
|
ACTION *MakeEnemyTama( ACTION *pOya );
|
|||
|
void EnemyTama( ACTION *pAct );
|
|||
|
|
|||
|
ACTION *MakeBg( void );
|
|||
|
void Bg( ACTION *pAct );
|
|||
|
|
|||
|
ACTION *MakeKen( void );
|
|||
|
void Ken( ACTION *pAct );
|
|||
|
|
|||
|
ACTION *MakeGameOver( void );
|
|||
|
void GameOver( ACTION *pAct );
|
|||
|
|
|||
|
/* <20><><EFBFBD>k<EFBFBD>ǩ`<60><> */
|
|||
|
int bomData[] = { 21, 22, 23, 23, 22, 21 };
|
|||
|
|
|||
|
/* <20>ԙC<D499>Υݥ<CEA5><DDA5><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
ACTION *pJiki;
|
|||
|
|
|||
|
|
|||
|
/* <20><><EFBFBD>ĤηN<CEB7><4E> */
|
|||
|
enum{
|
|||
|
TAMA_NORMAL, /* <20>Ω`<60>ޥ<EFBFBD> */
|
|||
|
TAMA_TWIN, /* <20>ĥ<EFBFBD><C4A5><EFBFBD> */
|
|||
|
TAMA_3WAY, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
TAMA_DIR, /* ȫ<><C8AB><EFBFBD><EFBFBD> */
|
|||
|
TAMA_END /* <20>K<EFBFBD><4B><EFBFBD><EFBFBD> */
|
|||
|
};
|
|||
|
|
|||
|
/********************************************/
|
|||
|
/* <09>ԙC */
|
|||
|
/********************************************/
|
|||
|
|
|||
|
/* <20>ԙC<D499><43><EFBFBD>䘋<EFBFBD><E4988B><EFBFBD><EFBFBD> */
|
|||
|
typedef struct{
|
|||
|
int cnt,cnt2,cnt3; /* <20><><EFBFBD>å<EFBFBD><C3A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
int tamaDir; /* <20><><EFBFBD>η<EFBFBD><CEB7><EFBFBD> */
|
|||
|
int tamaDx; /* <20><><EFBFBD>Σ؉<CEA3><D889><EFBFBD> */
|
|||
|
int attackKind; /* <20><><EFBFBD>ĤηN<CEB7><4E> */
|
|||
|
STR_BUFFER strTestBuffer; /* <20>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
}JIKI;
|
|||
|
|
|||
|
static int No = 36000;
|
|||
|
|
|||
|
/* <20>ԙC<D499><43><EFBFBD><EFBFBD> *******************************************************************/
|
|||
|
ACTION *MakeJiki( void )
|
|||
|
{
|
|||
|
ACTION *pAct;
|
|||
|
JIKI *pYobi;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꥹ<EFBFBD>Ȥ˵<C8A4><CBB5>h */
|
|||
|
pAct = GetAction( PRIO_JIKI, sizeof( JIKI ) );
|
|||
|
if( pAct == NULL ) return NULL;
|
|||
|
|
|||
|
/* <20><><EFBFBD>䘋<EFBFBD><E4988B><EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5>ɥ쥹 */
|
|||
|
pYobi = ( JIKI *)pAct->pYobi;
|
|||
|
|
|||
|
/* <20>g<EFBFBD><67><EFBFBD>v<EFBFBD><76> */
|
|||
|
pAct->func = Jiki;
|
|||
|
/* <20><>ʾ<EFBFBD><CABE><EFBFBD>ȶ<EFBFBD> */
|
|||
|
pAct->dispPrio = DISP_PRIO_JIKI;
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> + <20>ܥå<DCA5><C3A5><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|||
|
pAct->atr |= ACT_ATR_HIT_BOX;
|
|||
|
/* <20><><EFBFBD>ץ饤<D7A5>ȷ<EFBFBD><C8B7><EFBFBD> */
|
|||
|
//pAct->bmpNo = 31;
|
|||
|
//pAct->anim_chr_no = 20001;
|
|||
|
// anim_tbl.h <20>η<EFBFBD><CEB7><EFBFBD>
|
|||
|
pAct->anim_chr_no = 31555; // <20><><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD>
|
|||
|
//pAct->anim_chr_no = 5200; // <20>ޥ<EFBFBD><DEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`<60><><EFBFBD><EFBFBD>
|
|||
|
//pAct->anim_chr_no = 9350; // SCORE
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//pAct->anim_no = ANIM_ATTACK;
|
|||
|
pAct->anim_no = ANIM_STAND;
|
|||
|
pAct->anim_no = ANIM_STAND + 1;
|
|||
|
// <20><><EFBFBD>˥<EFBFBD><CBA5>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>( <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> )( <20>¤<EFBFBD><C2A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һؤ<D2BB> )
|
|||
|
pAct->anim_ang = 0;
|
|||
|
/* <20>ȣ<EFBFBD> */
|
|||
|
pAct->hp = 100;
|
|||
|
/* <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> */
|
|||
|
pAct->x = 304;
|
|||
|
pAct->y = 400;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
// MakeEnemy();
|
|||
|
/* <20>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
//MakeBg();
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
// MakeKen();
|
|||
|
|
|||
|
/* <20><><EFBFBD>ĤηN<CEB7><4E> */
|
|||
|
//pYobi->attackKind = TAMA_DIR;
|
|||
|
pYobi->attackKind = TAMA_3WAY;
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
pYobi->tamaDir = 1;
|
|||
|
pYobi->tamaDx = 1;
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>`<60>Х<EFBFBD><D0A5>˱<EFBFBD><CBB1><EFBFBD> */
|
|||
|
pJiki = pAct;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ф<EFBFBD><D0A4>L<EFBFBD><4C>
|
|||
|
pYobi->strTestBuffer.len = 10;
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ф<EFBFBD>ɫ
|
|||
|
pYobi->strTestBuffer.color = 1;
|
|||
|
pYobi->strTestBuffer.x = 320;
|
|||
|
pYobi->strTestBuffer.y = 260;
|
|||
|
|
|||
|
return pAct;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/* <20>ԙC<D499>I<EFBFBD><49> *******************************************************************/
|
|||
|
void Jiki( ACTION *pAct )
|
|||
|
{
|
|||
|
JIKI *pYobi = ( JIKI *)pAct->pYobi;
|
|||
|
//int i;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>ܤ<EFBFBD><DCA4><EFBFBD><EFBFBD>r */
|
|||
|
if( pAct->damage > 0 ){
|
|||
|
pAct->hp -= pAct->damage;
|
|||
|
if( pAct->hp <= 0 ){
|
|||
|
pAct->state = ACT_STATE_DEAD;
|
|||
|
pYobi->cnt = 0;
|
|||
|
pYobi->cnt2 = 0;
|
|||
|
pYobi->cnt3 = 0;
|
|||
|
}
|
|||
|
pAct->damage = 0;
|
|||
|
}
|
|||
|
// ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// rcX = Rnd( 0,608 );
|
|||
|
// rcY = Rnd( 0,400 );
|
|||
|
// SetRect( &Rc[ pAct->bmpNo ], rcX, rcY, rcX + 32, rcY + 32 );
|
|||
|
|
|||
|
// <20>ޥ<EFBFBD><DEA5><EFBFBD><EFBFBD>Ƅ<EFBFBD>
|
|||
|
//pAct->x = mouse.nowPoint.x;
|
|||
|
//pAct->y = mouse.nowPoint.y;
|
|||
|
|
|||
|
// <20>ޥ<EFBFBD><DEA5><EFBFBD><EFBFBD>Ǐ<EFBFBD><C78F>k<EFBFBD><6B>
|
|||
|
if( pYobi->cnt3 <= 0 ){
|
|||
|
// <20><><EFBFBD>k<EFBFBD><6B>
|
|||
|
//if( mouse.state == MOUSE_LEFT_CRICK ){
|
|||
|
if( mouse.onceState & MOUSE_LEFT_CRICK ){
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><D5A5>`<60><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
|
|||
|
//GetKeyInputFocus( &pYobi->strTestBuffer );
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
//MakeJikiTama( pAct->x , pAct->y -16, 0, -8, Rnd( 0, BMP_FILE - 1 ) );
|
|||
|
//MakeJikiTama( pAct->x , pAct->y -16, 0, -8, 1034 );
|
|||
|
//MakeJikiTama( pAct->x, pAct->y -16, 0, -8, 25 );
|
|||
|
|
|||
|
//MakeJikiTama( pAct->x, pAct->y -16, 0, -8, Rnd( 0, BMP_FILE - 2 ) );
|
|||
|
|
|||
|
//MakeJikiTama( pAct->x, pAct->y -16, 0, -8, Rnd( 31554, 31557 ) ); // <20>ԣǣ<D4A3>
|
|||
|
//MakeJikiTama( pAct->x, pAct->y -16, 0, -8, Rnd( 31000, 31069 ) ); // <20><><EFBFBD><EFBFBD><F3A5B9A5>`
|
|||
|
// MakeJikiTama( pAct->x, pAct->y -16, 0, -8, Rnd( 30100, 30135 ) ); // <20>У<EFBFBD>
|
|||
|
//MakeJikiTama( pAct->x + 10, pAct->y -16, 0, -8, Rnd( 0, BMP_FILE - 1 ) );
|
|||
|
//MakeJikiTama( pAct->x, pAct->y -16, 0, -8, 29 );
|
|||
|
//MakeJikiTama( pAct->x - 10, pAct->y -16, 0, -8, 29 );
|
|||
|
//MakeJikiTama( pAct->x + 10, pAct->y -16, 0, -8, 29 );
|
|||
|
pYobi->cnt3 = 5;
|
|||
|
#if 0
|
|||
|
for( i = 0; i < (int)256; i++ ){
|
|||
|
// <20><><EFBFBD>뤯<EFBFBD><EBA4AF><EFBFBD><EFBFBD>
|
|||
|
Palette[i].peRed *= 0.95;
|
|||
|
Palette[i].peGreen *= 0.95;
|
|||
|
Palette[i].peBlue *= 0.95;
|
|||
|
}
|
|||
|
// <20>ѥ<EFBFBD><D1A5>åȤ<C3A5><C8A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><4F>
|
|||
|
lpDraw->lpPALETTE->SetEntries( 0, 0, 256, Palette );
|
|||
|
#endif
|
|||
|
}
|
|||
|
// <20><><EFBFBD>Хܥ<D0A5><DCA5><EFBFBD>
|
|||
|
if( GetAsyncKeyState( VK_MBUTTON ) ){
|
|||
|
//MakeJikiTama( pAct->x, pAct->y -16, 0, -8, 29 );
|
|||
|
//MakeJikiTama( pAct->x, pAct->y -16, 0, -8, Rnd( 0, BMP_FILE - 1 ) );
|
|||
|
// MakeJikiTama( pAct->x, pAct->y -16, 0, -8, 32 );
|
|||
|
pYobi->cnt3 = 5;
|
|||
|
|
|||
|
}
|
|||
|
// <20><><EFBFBD>k<EFBFBD><6B>
|
|||
|
//if( mouse.onceState & MOUSE_RIGHT_CRICK ){
|
|||
|
if( mouse.state & MOUSE_RIGHT_CRICK ){
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><D5A5>`<60><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
|
|||
|
//GetKeyInputFocus( &MyChatBuffer );
|
|||
|
//if( GetAsyncKeyState( VK_RBUTTON ) & 0x8000 ){
|
|||
|
// MakeJikiTama( pAct->x, pAct->y -16, 0, -8, 29 );
|
|||
|
// <20><><EFBFBD>`<60>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ä<EFBFBD><C3A4><EFBFBD>
|
|||
|
//if( lpSurface[ 0 ] != NULL ){
|
|||
|
// // <20><><EFBFBD><EFBFBD><EFBFBD>`<60><>
|
|||
|
// lpSurface[ 0 ]->Release( );
|
|||
|
// lpSurface[ 0 ] = NULL;
|
|||
|
//}
|
|||
|
// MakeBg();
|
|||
|
#if 0
|
|||
|
MakeJikiTama( pAct->x - 10, pAct->y -16, -6, -8, Rnd( 0, BMP_FILE - 2 ) );
|
|||
|
MakeJikiTama( pAct->x - 5, pAct->y -16, -3, -8, Rnd( 0, BMP_FILE - 2 ) );
|
|||
|
MakeJikiTama( pAct->x, pAct->y -16, 0, -8, Rnd( 0, BMP_FILE - 2 ) );
|
|||
|
MakeJikiTama( pAct->x + 5, pAct->y -16, 3, -8, Rnd( 0, BMP_FILE - 2 ) );
|
|||
|
MakeJikiTama( pAct->x + 10, pAct->y -16, 6, -8, Rnd( 0, BMP_FILE - 2 ) );
|
|||
|
#else
|
|||
|
// MakeJikiTama( pAct->x - 10, pAct->y -16, -6, -8, No );
|
|||
|
// MakeJikiTama( pAct->x - 5, pAct->y -16, -3, -8, No );
|
|||
|
// MakeJikiTama( pAct->x, pAct->y -16, 0, -8, No );
|
|||
|
// MakeJikiTama( pAct->x + 5, pAct->y -16, 3, -8, No );
|
|||
|
// MakeJikiTama( pAct->x + 10, pAct->y -16, 6, -8, No );
|
|||
|
#endif
|
|||
|
pYobi->cnt3 = 5;
|
|||
|
#if 0
|
|||
|
for( i = 0; i < (int)256; i++ ){
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Palette[i].peRed *= 1.05;
|
|||
|
Palette[i].peGreen*= 1.05;
|
|||
|
Palette[i].peBlue *= 1.05;
|
|||
|
}
|
|||
|
//<2F>ѥ<EFBFBD><D1A5>åȤ<C3A5><C8A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><4F>
|
|||
|
lpDraw->lpPALETTE->SetEntries( 0, 0, 256, Palette );
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
}else pYobi->cnt3--;
|
|||
|
|
|||
|
/* ״<>B<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> */
|
|||
|
switch( pAct->state ){
|
|||
|
/* ͨ<><CDA8><EFBFBD>r */
|
|||
|
case ACT_STATE_ACT:
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>Ȥε<C8A4><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> */
|
|||
|
//Hit( pAct, PRIO_ENEMY_TAMA );
|
|||
|
/* <20><><EFBFBD>Ȥε<C8A4><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> */
|
|||
|
//Hit( pAct, PRIO_ENEMY );
|
|||
|
|
|||
|
/* <20>Ƅ<EFBFBD> */
|
|||
|
if( joy_con[ 0 ] & JOY_UP ){ /* <20><> */
|
|||
|
pAct->y -= 2;
|
|||
|
if( pAct->y < 0 ) pAct->y = 0;
|
|||
|
}
|
|||
|
if( joy_con[ 0 ] & JOY_DOWN ){ /* <20><> */
|
|||
|
pAct->y += 2;
|
|||
|
if( pAct->y > 448 ) pAct->y = 448;
|
|||
|
}
|
|||
|
if( joy_con[ 0 ] & JOY_LEFT ){ /* <20><> */
|
|||
|
pAct->x -= 2;
|
|||
|
if( pAct->x < 0 ) pAct->x = 0;
|
|||
|
}
|
|||
|
if( joy_con[ 0 ] & JOY_RIGHT ){ /* <20><> */
|
|||
|
pAct->x += 2;
|
|||
|
if( pAct->x > 608 ) pAct->x = 608;
|
|||
|
}
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//if( joy_con[ 0 ] & JOY_B ) MakeEnemy();
|
|||
|
|
|||
|
/* <20><><EFBFBD>k<EFBFBD><6B> */
|
|||
|
if( pYobi->cnt3 <= 0 ){ /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
if( joy_con[ 0 ] & JOY_A ){
|
|||
|
|
|||
|
/*DeathAllAction();*/
|
|||
|
/* <20><><EFBFBD>ηNǷ<EE90A4><C7B7><EFBFBD> */
|
|||
|
switch( pYobi->attackKind ){
|
|||
|
|
|||
|
case TAMA_NORMAL:
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
MakeJikiTama( pAct->x, pAct->y -16, 0, -8, 28 );
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case TAMA_TWIN:
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
MakeJikiTama( pAct->x - 10, pAct->y -16, 0, -8, 29 );
|
|||
|
MakeJikiTama( pAct->x + 10, pAct->y -16, 0, -8, 29 );
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case TAMA_3WAY:
|
|||
|
|
|||
|
MakeJikiTama( pAct->x - 10, pAct->y -16, -4, -8, 29 );
|
|||
|
MakeJikiTama( pAct->x, pAct->y -16, 0, -8, 29 );
|
|||
|
MakeJikiTama( pAct->x + 10, pAct->y -16, 4, -8, 29 );
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case TAMA_DIR:
|
|||
|
|
|||
|
MakeJikiTama( pAct->x, pAct->y -16, pYobi->tamaDx, -8, 29 );
|
|||
|
MakeJikiTama( pAct->x, pAct->y -16, -pYobi->tamaDx, -8, 29 );
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
pYobi->tamaDx += pYobi->tamaDir;
|
|||
|
if( pYobi->tamaDx <= -10 || 10 <= pYobi->tamaDx ){
|
|||
|
pYobi->tamaDir *= -1;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
pYobi->cnt3 = 2; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
//pYobi->cnt3 = 0; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
}
|
|||
|
}else{
|
|||
|
if( pYobi->cnt3 > 0 ) pYobi->cnt3--;
|
|||
|
}
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD> */
|
|||
|
/* if( ( int )pAct->x % 2 ) pAct->atr |= ACT_ATR_HIDE;
|
|||
|
else pAct->atr &= ~ACT_ATR_HIDE;
|
|||
|
*/
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
pYobi->cnt++;
|
|||
|
if( pYobi->cnt >= 1 ){
|
|||
|
//MakeEnemy();
|
|||
|
pYobi->cnt2++;
|
|||
|
if( pYobi->cnt2 >= 5 ){
|
|||
|
pYobi->cnt2 = 0;
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
//pYobi->attackKind++;
|
|||
|
if( pYobi->attackKind >= TAMA_END ){
|
|||
|
pYobi->attackKind = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
pYobi->cnt = 0;
|
|||
|
}
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>r */
|
|||
|
case ACT_STATE_DEAD:
|
|||
|
|
|||
|
if( pYobi->cnt == 0 ){
|
|||
|
pAct->bmpNo = bomData[ 0 ];
|
|||
|
pYobi->cnt = 1;
|
|||
|
}
|
|||
|
/* <20><><EFBFBD>k<EFBFBD><6B><EFBFBD>˥<EFBFBD><CBA5>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
pYobi->cnt2++;
|
|||
|
if( pYobi->cnt2 >= 5 ){
|
|||
|
pAct->bmpNo = bomData[ pYobi->cnt ];
|
|||
|
pYobi->cnt++;
|
|||
|
pYobi->cnt2 = 0;
|
|||
|
/* <20>K<EFBFBD><4B><EFBFBD>ä<EFBFBD><C3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
if( pYobi->cnt == 6 ){
|
|||
|
DeathAction( pAct );
|
|||
|
MakeGameOver( );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
// <20><>ʾ<EFBFBD>ǩ`<60><><EFBFBD><EFBFBD><EFBFBD>Хåե<C3A5><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//StockDispBuffer( pAct->x + 32, pAct->y, pAct->dispPrio, pAct->anim_chr_no, 0 );
|
|||
|
//StockDispBuffer( pAct->x - 32, pAct->y, pAct->dispPrio, pAct->anim_chr_no, 0 );
|
|||
|
{
|
|||
|
char szMoji[ 256 ];
|
|||
|
wsprintf( szMoji,"BmpNo = %d",No );
|
|||
|
// StockFontBuffer( pAct->x, pAct->y, FONT_PRIO_FRONT, 2, szMoji, 0 );
|
|||
|
}
|
|||
|
|
|||
|
// <20><><EFBFBD>˥<EFBFBD><CBA5>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
pattern( pAct, ANM_NOMAL_SPD, ANM_LOOP );
|
|||
|
// <20>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>ʾ
|
|||
|
//StockFontBuffer( 320, 200, FONT_PRIO_FRONT, pYobi->strTestBuffer.color, pYobi->strTestBuffer.buffer, 0 );
|
|||
|
StockFontBuffer2( &pYobi->strTestBuffer );
|
|||
|
}
|
|||
|
|
|||
|
/********************************************/
|
|||
|
/* <09>ԙC<D499><43> */
|
|||
|
/********************************************/
|
|||
|
|
|||
|
/* <20>ԙC<D499><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *********************************************************************/
|
|||
|
ACTION *MakeJikiTama( int x, int y, int dx, int dy, int bmpNo )
|
|||
|
{
|
|||
|
ACTION *pAct;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꥹ<EFBFBD>Ȥ˵<C8A4><CBB5>h */
|
|||
|
pAct = GetAction( PRIO_JIKI_TAMA, 0 );
|
|||
|
if( pAct == NULL ) return NULL;
|
|||
|
|
|||
|
/* <20>g<EFBFBD><67><EFBFBD>v<EFBFBD><76> */
|
|||
|
pAct->func = JikiTama;
|
|||
|
// anim_tbl.h <20>η<EFBFBD><CEB7><EFBFBD>
|
|||
|
pAct->anim_chr_no = bmpNo; // <20><><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//pAct->anim_no = ANIM_ATTACK;
|
|||
|
pAct->anim_no = Rnd( ANIM_ATTACK, ANIM_WALK );
|
|||
|
//pAct->anim_no = ANIM_WALK;
|
|||
|
// <20><><EFBFBD>˥<EFBFBD><CBA5>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>( <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> )( <20>¤<EFBFBD><C2A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һؤ<D2BB> )
|
|||
|
pAct->anim_ang = Rnd( 0, 7 );
|
|||
|
///* <20><><EFBFBD>ץ饤<D7A5>ȷ<EFBFBD><C8B7><EFBFBD> */
|
|||
|
//pAct->bmpNo = bmpNo;
|
|||
|
/* <20><>ʾ<EFBFBD><CABE><EFBFBD>ȶ<EFBFBD> */
|
|||
|
pAct->dispPrio = 2;
|
|||
|
/* <20>ȣ<EFBFBD> */
|
|||
|
pAct->hp = 10000;
|
|||
|
/* <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> */
|
|||
|
pAct->x = x - dx;
|
|||
|
pAct->y = y - dy;
|
|||
|
/* <20><><EFBFBD><EFBFBD> */
|
|||
|
pAct->dx = dx / 2;
|
|||
|
pAct->dy = dy / 2;
|
|||
|
|
|||
|
return pAct;
|
|||
|
}
|
|||
|
|
|||
|
/* <20>ԙC<D499><43><EFBFBD>I<EFBFBD><49> *********************************************************************/
|
|||
|
void JikiTama( ACTION *pAct )
|
|||
|
{
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>ܤ<EFBFBD><DCA4><EFBFBD><EFBFBD>r */
|
|||
|
if( pAct->damage > 0 ){
|
|||
|
pAct->hp -= pAct->damage;
|
|||
|
if( pAct->hp <= 0 ){
|
|||
|
pAct->state = ACT_STATE_DEAD;
|
|||
|
}
|
|||
|
pAct->damage = 0;
|
|||
|
}
|
|||
|
|
|||
|
/* ״<>B<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> */
|
|||
|
switch( pAct->state ){
|
|||
|
/* ͨ<><CDA8><EFBFBD>r */
|
|||
|
case ACT_STATE_ACT:
|
|||
|
|
|||
|
/* <20><><EFBFBD>Ȥε<C8A4><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> */
|
|||
|
//Hit( pAct, PRIO_ENEMY );
|
|||
|
|
|||
|
/* <20>Ƅ<EFBFBD> */
|
|||
|
pAct->x += pAct->dx;
|
|||
|
pAct->y += pAct->dy;
|
|||
|
|
|||
|
/* <20><><EFBFBD>ߥå<DFA5> */
|
|||
|
if( pAct->y <= -32 ){
|
|||
|
pAct->y = -32;
|
|||
|
MakeEnemyTama( pAct );
|
|||
|
DeathAction( pAct );
|
|||
|
}else
|
|||
|
if( lpDraw->ySize <= pAct->y ){
|
|||
|
pAct->y = lpDraw->ySize;
|
|||
|
DeathAction( pAct );
|
|||
|
}
|
|||
|
|
|||
|
if( pAct->x <= -32 ){
|
|||
|
pAct->x = -32;
|
|||
|
DeathAction( pAct );
|
|||
|
}else
|
|||
|
if( lpDraw->xSize <= pAct->x ){
|
|||
|
pAct->x = lpDraw->xSize;
|
|||
|
DeathAction( pAct );
|
|||
|
}
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>r */
|
|||
|
case ACT_STATE_DEAD:
|
|||
|
|
|||
|
DeathAction( pAct );
|
|||
|
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// <20><><EFBFBD>˥<EFBFBD><CBA5>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
pattern( pAct, ANM_NOMAL_SPD, ANM_LOOP );
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/********************************************/
|
|||
|
/* <09><> */
|
|||
|
/********************************************/
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>䘋<EFBFBD><E4988B><EFBFBD><EFBFBD> */
|
|||
|
typedef struct{
|
|||
|
int cnt,cnt2,cnt3,animCnt; /* <20><><EFBFBD>å<EFBFBD><C3A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
}ENEMY;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *********************************************************************/
|
|||
|
ACTION *MakeEnemy( void )
|
|||
|
{
|
|||
|
ACTION *pAct;
|
|||
|
ENEMY *pYobi;
|
|||
|
short bmpTbl[] = { 1, 3, 5, 7, 9, 29 };
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꥹ<EFBFBD>Ȥ˵<C8A4><CBB5>h */
|
|||
|
pAct = GetAction( PRIO_ENEMY, sizeof( ENEMY ) );
|
|||
|
if( pAct == NULL ) return NULL;
|
|||
|
|
|||
|
/* <20><><EFBFBD>䘋<EFBFBD><E4988B><EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5>ɥ쥹 */
|
|||
|
pYobi = ( ENEMY *)pAct->pYobi;
|
|||
|
|
|||
|
/* <20>g<EFBFBD><67><EFBFBD>v<EFBFBD><76> */
|
|||
|
pAct->func = Enemy;
|
|||
|
/* <20><><EFBFBD>ץ饤<D7A5>ȷ<EFBFBD><C8B7><EFBFBD> */
|
|||
|
pAct->bmpNo = bmpTbl[ ( int )Rnd( 0, 4 ) ];
|
|||
|
//pAct->bmpNo = Rnd( 1, 10 );
|
|||
|
/* <20><>ʾ<EFBFBD><CABE><EFBFBD>ȶ<EFBFBD> */
|
|||
|
pAct->dispPrio = 1;
|
|||
|
/* <20>ȣ<EFBFBD> */
|
|||
|
pAct->hp = 10;//Rnd( 10, 50 );
|
|||
|
/* <20><><EFBFBD><EFBFBD>λ<EFBFBD>å<EFBFBD><C3A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
// pAct->x = Rnd( 0, 608 );
|
|||
|
pAct->x = Rnd( 0, lpDraw->xSize );
|
|||
|
ATR_CRS(pAct) = 16;
|
|||
|
ATR_SPD(pAct) = Rnd( 28, 36 );
|
|||
|
pAct->dx = 0;
|
|||
|
|
|||
|
pAct->y = 0;
|
|||
|
/* <20><><EFBFBD>֥<EFBFBD><D6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
pAct->dx = Rnd( -3, 3 );
|
|||
|
pAct->dy = Rnd( 1, 3 );
|
|||
|
|
|||
|
return pAct;
|
|||
|
}
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49> *********************************************************************/
|
|||
|
void enemy_missile( ACTION *a0 )
|
|||
|
{
|
|||
|
gemini(a0); //<2F>Ƅ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʤ<EFBFBD>
|
|||
|
if(ATR_H_POS(a0)>=lpDraw->xSize || ATR_H_POS(a0)<-32 || ATR_V_POS(a0)>lpDraw->ySize || ATR_V_POS(a0)<-32)
|
|||
|
DeathAction( a0 ); //<2F>K<EFBFBD><4B>
|
|||
|
}
|
|||
|
|
|||
|
/* <20><><EFBFBD>I<EFBFBD><49> *********************************************************************/
|
|||
|
void Enemy( ACTION *pAct )
|
|||
|
{
|
|||
|
ENEMY *pYobi = ( ENEMY *)pAct->pYobi;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>ܤ<EFBFBD><DCA4><EFBFBD><EFBFBD>r */
|
|||
|
if( pAct->damage > 0 ){
|
|||
|
pAct->hp -= pAct->damage;
|
|||
|
if( pAct->hp <= 0 ){
|
|||
|
pAct->state = ACT_STATE_DEAD;
|
|||
|
pYobi->cnt = 0;
|
|||
|
pYobi->cnt2 = 0;
|
|||
|
pYobi->cnt3 = 0;
|
|||
|
}
|
|||
|
pAct->damage = 0;
|
|||
|
}
|
|||
|
|
|||
|
/* ״<>B<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> */
|
|||
|
switch( pAct->state ){
|
|||
|
/* ͨ<><CDA8><EFBFBD>r */
|
|||
|
case ACT_STATE_ACT:
|
|||
|
|
|||
|
/* <20>Ƅ<EFBFBD> */
|
|||
|
// pAct->x += pAct->dx;
|
|||
|
// pAct->y += pAct->dy;
|
|||
|
|
|||
|
/* <20><><EFBFBD>ߥåȥ<C3A5><C8A5><EFBFBD><EFBFBD>å<EFBFBD> */
|
|||
|
// if( pAct->x < 0 ){
|
|||
|
// pAct->x = 0;
|
|||
|
// pAct->dx *= -1;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// if( pAct->x > lpDraw->xSize ){
|
|||
|
// pAct->x = lpDraw->xSize;
|
|||
|
// pAct->dx *= -1;
|
|||
|
// }
|
|||
|
// if( pAct->y > lpDraw->ySize ){
|
|||
|
// pAct->y = -32;
|
|||
|
// }
|
|||
|
|
|||
|
pAct->dx++; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD>ߤˣ<DFA4><CBA3>إ<EFBFBD><D8A5>ԩ`<60>ɉ<EFBFBD><C989><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
pAct->dx&=1; //
|
|||
|
gemini(pAct); //<2F>Ƅ<EFBFBD>
|
|||
|
if(ATR_CRS(pAct)==0){ //<2F><><EFBFBD>Ƅ<EFBFBD><C684>Фʤ<D0A4>
|
|||
|
if( pAct->y < -32 ){ //<2F>϶ˤʤ<CBA4>
|
|||
|
ATR_CRS(pAct)=16; //<2F><><EFBFBD>Ƅ<EFBFBD><C684>_ʼ
|
|||
|
ATR_SPD(pAct) = Rnd( 28, 36 );
|
|||
|
pAct->x = Rnd( 0, lpDraw->xSize ); //
|
|||
|
} else {
|
|||
|
if(pAct->dx)
|
|||
|
ATR_SPD(pAct)++; //<2F><><EFBFBD>ԩ`<60>ɥ<EFBFBD><C9A5>å<EFBFBD>
|
|||
|
}
|
|||
|
} else {
|
|||
|
if(pAct->dx){
|
|||
|
ATR_SPD(pAct)--; //<2F><><EFBFBD>ԩ`<60>ɥ<EFBFBD><C9A5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(!ATR_SPD(pAct)){ //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD>ʤ<EFBFBD>
|
|||
|
ATR_CRS(pAct)=0; //<2F><><EFBFBD>Ƅ<EFBFBD><C684>_ʼ
|
|||
|
ACTION *a1; //<2F>ߥ<EFBFBD><DFA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>k<EFBFBD><6B>
|
|||
|
int d1,d2;
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꥹ<EFBFBD>Ȥ˵<C8A4><CBB5>h */
|
|||
|
a1 = GetAction( PRIO_ENEMY_TAMA, 0 );
|
|||
|
if( a1 == NULL ) break;
|
|||
|
/* <20>g<EFBFBD><67><EFBFBD>v<EFBFBD><76> */
|
|||
|
a1->func = enemy_missile;
|
|||
|
/* <20><><EFBFBD>ץ饤<D7A5>ȷ<EFBFBD><C8B7><EFBFBD> */
|
|||
|
a1->bmpNo = No++;
|
|||
|
/* <20><>ʾ<EFBFBD><CABE><EFBFBD>ȶ<EFBFBD> */
|
|||
|
a1->dispPrio = 3;
|
|||
|
/* <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> */
|
|||
|
ATR_H_POS(a1) = ATR_H_POS(pAct)+16;
|
|||
|
ATR_V_POS(a1) = ATR_V_POS(pAct)+16;
|
|||
|
d1 = pJiki->x; //<2F>ԙC<D499>η<EFBFBD><CEB7>å<F2A5BBA5>
|
|||
|
d2 = pJiki->y; //
|
|||
|
radar(a1, &d1, &d2); //
|
|||
|
ATR_CRS(a1)=d1; //
|
|||
|
ATR_SPD(a1)=16; //<2F>Ƅ<EFBFBD><C684>ٶ<EFBFBD>
|
|||
|
play_se( 2, ATR_H_POS(a1), ATR_V_POS(a1) ); //<2F>ߥ<EFBFBD><DFA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>k<EFBFBD><6B><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
// <20><><EFBFBD>˥<EFBFBD><CBA5>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/* pYobi->cnt3 += pAct->dy;
|
|||
|
if( pYobi->cnt3 >= 20 ){
|
|||
|
pYobi->cnt3 = 0;
|
|||
|
pYobi->animCnt = pYobi->animCnt * ( -2 ) + 1;
|
|||
|
pAct->bmpNo += pYobi->animCnt;
|
|||
|
}
|
|||
|
*/
|
|||
|
/*
|
|||
|
pAct->cnt++;
|
|||
|
if( pAct->cnt >= 300 ){
|
|||
|
pAct->state = ACT_STATE_DEAD;
|
|||
|
pAct->cnt = 0;
|
|||
|
}
|
|||
|
*/
|
|||
|
//if( Rnd( 0, 300 ) == 0 ) MakeEnemyTama( pAct );
|
|||
|
//MakeEnemyTama( pAct );
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>r */
|
|||
|
case ACT_STATE_DEAD:
|
|||
|
|
|||
|
if( pYobi->cnt == 0 ){
|
|||
|
pAct->bmpNo = bomData[ 0 ];
|
|||
|
pYobi->cnt = 1;
|
|||
|
}
|
|||
|
/* <20><><EFBFBD>k<EFBFBD><6B><EFBFBD>˥<EFBFBD><CBA5>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
pYobi->cnt2++;
|
|||
|
if( pYobi->cnt2 >= 5 ){
|
|||
|
pAct->bmpNo = bomData[ pYobi->cnt ];
|
|||
|
pYobi->cnt++;
|
|||
|
pYobi->cnt2 = 0;
|
|||
|
/* <20>K<EFBFBD><4B><EFBFBD>ä<EFBFBD><C3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
if( pYobi->cnt == 6 ){
|
|||
|
DeathAction( pAct );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/********************************************/
|
|||
|
/* <09><><EFBFBD><EFBFBD> */
|
|||
|
/********************************************/
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *********************************************************************/
|
|||
|
ACTION *MakeEnemyTama( ACTION *pOya )
|
|||
|
{
|
|||
|
ACTION *pAct;
|
|||
|
//float dir;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꥹ<EFBFBD>Ȥ˵<C8A4><CBB5>h */
|
|||
|
pAct = GetAction( PRIO_ENEMY_TAMA, 0 );
|
|||
|
if( pAct == NULL ) return NULL;
|
|||
|
|
|||
|
/* <20>g<EFBFBD><67><EFBFBD>v<EFBFBD><76> */
|
|||
|
pAct->func = EnemyTama;
|
|||
|
/* <20><><EFBFBD>ץ饤<D7A5>ȷ<EFBFBD><C8B7><EFBFBD> */
|
|||
|
pAct->anim_chr_no = Rnd( 31554, 31556 ); //<2F><><EFBFBD>饤<EFBFBD><E9A5A4>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> + <20>ܥå<DCA5><C3A5><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|||
|
pAct->atr |= ACT_ATR_HIT_BOX;
|
|||
|
//pAct->anim_no = Rnd( ANIM_ATTACK, ANIM_SATTACK );
|
|||
|
//pAct->anim_no = ANIM_ATTACK;
|
|||
|
pAct->anim_no = ANIM_WALK;
|
|||
|
/* <20><>ʾ<EFBFBD><CABE><EFBFBD>ȶ<EFBFBD> */
|
|||
|
pAct->dispPrio = DISP_PRIO_JIKI;
|
|||
|
/* <20>ȣ<EFBFBD> */
|
|||
|
pAct->hp = 0;
|
|||
|
/* <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> */
|
|||
|
//pAct->x = pOya->x + 16;
|
|||
|
//pAct->y = pOya->y + 32 ;
|
|||
|
pAct->x = Rnd( 100, 500 );
|
|||
|
pAct->y = Rnd( 100, 400 );
|
|||
|
|
|||
|
// <20>Ƅӷ<C684><D3B7><EFBFBD>
|
|||
|
radar2( pAct, pJiki->x, pJiki->y, 1 );
|
|||
|
//<2F>Ƅ<EFBFBD><C684>ٶ<EFBFBD>
|
|||
|
pAct->spd = 16;
|
|||
|
|
|||
|
// <20><><EFBFBD>˥<EFBFBD><CBA5>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
pattern( pAct, ANM_NOMAL_SPD, ANM_LOOP );
|
|||
|
return pAct;
|
|||
|
}
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49> *********************************************************************/
|
|||
|
void EnemyTama( ACTION *pAct )
|
|||
|
{
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>ܤ<EFBFBD><DCA4><EFBFBD><EFBFBD>r */
|
|||
|
if( pAct->damage > 0 ){
|
|||
|
pAct->hp -= pAct->damage;
|
|||
|
if( pAct->hp <= 0 ){
|
|||
|
pAct->state = ACT_STATE_DEAD;
|
|||
|
}
|
|||
|
pAct->damage = 0;
|
|||
|
}
|
|||
|
|
|||
|
/* ״<>B<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> */
|
|||
|
switch( pAct->state ){
|
|||
|
/* ͨ<><CDA8><EFBFBD>r */
|
|||
|
case ACT_STATE_ACT:
|
|||
|
|
|||
|
// <20>ޥ<EFBFBD><DEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`<60><><EFBFBD>뤬<EFBFBD>ҥåȤ<C3A5><C8A4>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if( pAct->hitDispNo == HitDispNo ){
|
|||
|
// <20><EFBFBD><F3A5AFA5>å<EFBFBD><C3A5><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>r
|
|||
|
if( mouse.state & MOUSE_LEFT_CRICK ){
|
|||
|
// <20>ɥ<EFBFBD><C9A5>å<EFBFBD><C3A5>Ƅ<EFBFBD>
|
|||
|
pAct->x = mouse.nowPoint.x;
|
|||
|
pAct->y = mouse.nowPoint.y;
|
|||
|
}
|
|||
|
// <20><EFBFBD><F3A5AFA5>å<EFBFBD><C3A5><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>r
|
|||
|
if( mouse.state & MOUSE_RIGHT_CRICK ){
|
|||
|
// <20>ɥ<EFBFBD><C9A5>å<EFBFBD><C3A5>Ƅ<EFBFBD>
|
|||
|
DeathAction( pAct );
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
/* <20>Ƅ<EFBFBD> */
|
|||
|
//pAct->x += pAct->dx;
|
|||
|
//pAct->y += pAct->dy;
|
|||
|
//gemini( pAct ); //<2F>Ƅ<EFBFBD>
|
|||
|
#if 0
|
|||
|
/* <20><><EFBFBD>ߥå<DFA5> */
|
|||
|
if( pAct->y <= 0 ){
|
|||
|
pAct->y = 0;
|
|||
|
DeathAction( pAct );
|
|||
|
}else
|
|||
|
if( pAct->y >= 481 ){
|
|||
|
DeathAction( pAct );
|
|||
|
}
|
|||
|
if( pAct->x <= -8 ){
|
|||
|
DeathAction( pAct );
|
|||
|
}else
|
|||
|
if( lpDraw->xSize <= pAct->x ){
|
|||
|
DeathAction( pAct );
|
|||
|
}
|
|||
|
#endif
|
|||
|
break;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>r */
|
|||
|
case ACT_STATE_DEAD:
|
|||
|
DeathAction( pAct );
|
|||
|
break;
|
|||
|
}
|
|||
|
// <20>Ƅӷ<C684><D3B7><EFBFBD>
|
|||
|
radar2( pAct, pJiki->x, pJiki->y, Rnd( 0, 10 ) );
|
|||
|
// <20><><EFBFBD>˥<EFBFBD><CBA5>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
pattern( pAct, ANM_NOMAL_SPD, ANM_LOOP );
|
|||
|
}
|
|||
|
|
|||
|
/* <20><><EFBFBD>`<60>४<EFBFBD>`<60>Щ`<60><><EFBFBD><EFBFBD> *******************************************************************/
|
|||
|
ACTION *MakeGameOver( void )
|
|||
|
{
|
|||
|
ACTION *pAct;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꥹ<EFBFBD>Ȥ˵<C8A4><CBB5>h */
|
|||
|
pAct = GetAction( PRIO_GAME_OVER, 0 );
|
|||
|
if( pAct == NULL ) return NULL;
|
|||
|
|
|||
|
/* <20>g<EFBFBD><67><EFBFBD>v<EFBFBD><76> */
|
|||
|
pAct->func = GameOver;
|
|||
|
|
|||
|
// <20>DZ<EFBFBD>ʾ
|
|||
|
pAct->atr |= ACT_ATR_HIDE;
|
|||
|
|
|||
|
/* <20><><EFBFBD>ץ饤<D7A5>ȷ<EFBFBD><C8B7><EFBFBD> */
|
|||
|
pAct->bmpNo = 0;
|
|||
|
// pAct->bmpNo = 30;
|
|||
|
/* <20>ȣ<EFBFBD> */
|
|||
|
pAct->hp = 100;
|
|||
|
/* <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> */
|
|||
|
pAct->x = 250;
|
|||
|
pAct->y = 200;
|
|||
|
|
|||
|
return pAct;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/* <20><><EFBFBD>`<60>४<EFBFBD>`<60>Щ`<60>I<EFBFBD><49> *******************************************************************/
|
|||
|
void GameOver( ACTION *pAct )
|
|||
|
{
|
|||
|
//char szMoji[128];
|
|||
|
|
|||
|
// GAME OVER <20><>ʾ
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/* <20>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD> *********************************************************************/
|
|||
|
ACTION *MakeBg( void )
|
|||
|
{
|
|||
|
ACTION *pAct;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꥹ<EFBFBD>Ȥ˵<C8A4><CBB5>h */
|
|||
|
pAct = GetAction( PRIO_BG, NULL );
|
|||
|
if( pAct == NULL ) return NULL;
|
|||
|
|
|||
|
/* <20>g<EFBFBD><67><EFBFBD>v<EFBFBD><76> */
|
|||
|
pAct->func = Bg;
|
|||
|
|
|||
|
/* <20><><EFBFBD>ץ饤<D7A5>ȷ<EFBFBD><C8B7><EFBFBD> */
|
|||
|
//pAct->bmpNo = 30;
|
|||
|
// pAct->bmpNo = 44;
|
|||
|
pAct->anim_chr_no = 9376;
|
|||
|
/* <20><>ʾ<EFBFBD><CABE><EFBFBD>ȶ<EFBFBD> */
|
|||
|
pAct->dispPrio = 0;
|
|||
|
/* <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> */
|
|||
|
pAct->x = 320;
|
|||
|
pAct->y = 240;
|
|||
|
|
|||
|
// ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//pYobi->rcX = 0;
|
|||
|
//pYobi->rcY = lpDraw->ySize;
|
|||
|
//SetRect( &Rc[ pAct->bmpNo ], pYobi->rcX, pYobi->rcY, pYobi->rcX + lpDraw->xSize, pYobi->rcY + lpDraw->ySize );
|
|||
|
|
|||
|
return pAct;
|
|||
|
}
|
|||
|
|
|||
|
/* <20>£DŽI<C784><49> *********************************************************************/
|
|||
|
void Bg( ACTION *pAct )
|
|||
|
{
|
|||
|
// ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//pAct->y++;
|
|||
|
//if( pAct->y >= 240 ) pAct->y = -240;
|
|||
|
pattern( pAct, ANM_NOMAL_SPD, ANM_LOOP ); //<2F><><EFBFBD>˥<EFBFBD><CBA5>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49>
|
|||
|
//StockDispBuffer( pAct->x, pAct->y+lpDraw->ySize, 0, pAct->anim_chr_no, 0 );
|
|||
|
//StockDispBuffer( pAct->x, pAct->y, 0, pAct->anim_chr_no, 0 );
|
|||
|
//StockDispBuffer( pAct->x, pAct->y+lpDraw->ySize, 0, pAct->anim_chr_no, 0);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *********************************************************************/
|
|||
|
ACTION *MakeKen( void )
|
|||
|
{
|
|||
|
ACTION *pAct;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꥹ<EFBFBD>Ȥ˵<C8A4><CBB5>h */
|
|||
|
pAct = GetAction( PRIO_BG, NULL );
|
|||
|
if( pAct == NULL ) return NULL;
|
|||
|
|
|||
|
/* <20>g<EFBFBD><67><EFBFBD>v<EFBFBD><76> */
|
|||
|
pAct->func = Ken;
|
|||
|
|
|||
|
/* <20><><EFBFBD>ץ饤<D7A5>ȷ<EFBFBD><C8B7><EFBFBD> */
|
|||
|
pAct->bmpNo = 33;
|
|||
|
/* <20><>ʾ<EFBFBD><CABE><EFBFBD>ȶ<EFBFBD> */
|
|||
|
pAct->dispPrio = 100;
|
|||
|
/* <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> */
|
|||
|
pAct->x = 100;
|
|||
|
pAct->y = 100;
|
|||
|
|
|||
|
// ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//pYobi->rcX = 0;
|
|||
|
//pYobi->rcY = lpDraw->ySize;
|
|||
|
//SetRect( &Rc[ pAct->bmpNo ], pYobi->rcX, pYobi->rcY, pYobi->rcX + lpDraw->xSize, pYobi->rcY + lpDraw->ySize );
|
|||
|
|
|||
|
return pAct;
|
|||
|
}
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49> *********************************************************************/
|
|||
|
void Ken( ACTION *pAct )
|
|||
|
{
|
|||
|
int anim[] = { 0,0,0,0,
|
|||
|
1,1,1,1,
|
|||
|
2,2,2,2,
|
|||
|
3,3,3,3,
|
|||
|
2,2,2,2,
|
|||
|
1,1,1,1
|
|||
|
};
|
|||
|
}
|
|||
|
|