⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 human.cpp

📁 一个45度角场景RPG游戏程序的demo
💻 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 + -