📄 human.cpp
字号:
#include "main.h"
HUMAN *human[MaxHuman];
char *DialogText;
HUMAN::HUMAN(int id1,int x1,int y1,int face1,int type1)
{
id=id1;
type=type1;
x=x1;
y=y1;
face=face1;
MoveToX=x1;
MoveToY=y1;
health=100;
MainStatus=normal;
FootStatus=-1;
FollowID=-1;
TalkID=-1;
CoolDown=0;
}
void HUMAN::moveto(int x1,int y1)
{
int oldface=face;
int dx,dy;
dx=x1-x;
dy=y1-y;
if ((abs(dx*12)<abs(dy*5)))
if (dy>0)
face=7;
else
face=6;
else
{
if ((abs(dx*12)>abs(dy*29)))
if (dx>0)
face=5;
else
face=4;
else
{
if (dx>0)
if (dy>0)
face=3;
else
face=1;
else
if (dy>0)
face=0;
else
face=2;
}
}
if ((x1+2*y1>640)&&(x1+2*y1<1920)&&(x1-2*y1>-640)&&(x1-2*y1<640)&&(CoolDown==0))
{
MoveToX=x1;
MoveToY=y1;
if (FootStatus==-1)
FootStatus=0;//作移动标记
}
else if (FootStatus!=-1)
face=oldface;
}
void HUMAN::show( )
{
if (MainStatus!=away)
{
int sm=FootStatus;
if (sm==-1)
sm=0;
MakeRect(sm*64+type*256,face*64,sm*64+64+type*256,face*64+64);
MyBlt(x-human[main]->x+288,y-human[main]->y+192,SHuman,SBuffer,SrcKey);
}
}
void HUMAN::fight(int target_x,int target_y)
{
if (CoolDown==0)
{
CoolDown=CoolTime;
for (int i=0;i<MaxBullet;i++)
if (bullet[i]->status==-1)
break;
bullet[i]->status=0;
bullet[i]->x=x;
bullet[i]->y=y;
bullet[i]->owner=id;
bullet[i]->tx=target_x;
bullet[i]->ty=target_y;
bullet[i]->life=BulletLife;
}
}
void HUMAN::fight()
{
if (CoolDown==0)
{
CoolDown=CoolTime;
for (int i=0;i<MaxBullet;i++)
if (bullet[i]->status==-1)
break;
bullet[i]->status=0;
bullet[i]->x=x;
bullet[i]->y=y;
bullet[i]->owner=id;
bullet[i]->tx=human[FollowID]->x;
bullet[i]->ty=human[FollowID]->y-16;
bullet[i]->life=BulletLife;
}
}
void HUMAN::talk(int who)
{
if (human[who]->MainStatus!=away)
{
human[who]->FootStatus=-1;
human[who]->MainStatus=talking;
if (face%2==0)
human[who]->face=face+1;
else
human[who]->face=face-1;
TalkID=who;
MainStatus=talking;
DialogText="*%&)%@#^*(@*!";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -