📄 refresh.cpp
字号:
#include "RpgMain.h"
int CursorX[10];
int CursorY[10];
void RefreshAll()
{
MakeRect(0,0,640,480);
lpDDSBuffer->BltFast(0,0,lpDDSMap,&r,NoKey);
for(int i=0;i<MaxHuman;i++)
Human[i]->Show();
for (i=0;i<LastBullet;i++)
Bullet[i]->Show();
MakeRect(0,0,640,480);
lpDDSBuffer->BltFast(0,0,lpDDSOver,&r,SrcKey);
POINT curpos;
GetCursorPos(&curpos);
if (curpos.x>640) curpos.x=640;
if (curpos.y>480) curpos.y=480;
for (i=0;i<10;i++)
{
CursorX[i]=CursorX[i+1];
CursorY[i]=CursorY[i+1];
}
CursorX[9]=curpos.x;
CursorY[9]=curpos.y;
for (i=0;i<10;i++)
{
int mx=32;
int my=26;
if (640-CursorX[i]<mx) mx=640-CursorX[i];
if (480-CursorY[i]<my) my=480-CursorY[i];
MakeRect(0,0,mx,my);
lpDDSBuffer->BltFast(CursorX[i],CursorY[i],lpDDSMouse,&r,SrcKey);
}
Flip();
}
//---------------Main Timer-----------------------------------------
void CALLBACK GameTimer(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{
int i;
static int count=0;
count++;
if (count%2==0)
{
for (i=0;i<LastBullet;i++)
{
if (Bullet[i]->status!=-1)
{
Bullet[i]->status=(Bullet[i]->HalfMove+1)%4;
Bullet[i]->HalfMove++;
if (Bullet[i]->HalfMove==4)
{
Bullet[i]->HalfMove=0;
Bullet[i]->x+=WhereX[Bullet[i]->face];
Bullet[i]->y+=WhereY[Bullet[i]->face];
}
}
}
}
for (i=0;i<MaxHuman;i++)
{
if (Human[i]->status==Casting)
Human[i]->cooldown++;
if (Human[i]->cooldown==8)
{
Human[i]->status=Free;
Human[i]->cooldown=0;
}
if (Human[i]->status==Moving)
{
if ((i==Boy)||(count%4==0))
{
temp=1;
int x=Human[i]->x;
int y=Human[i]->y;
Human[i]->leg=(Human[i]->leg+1)%2;
Human[i]->HalfMoving++;
temp=0;
if (Human[i]->HalfMoving==4)
{
Human[i]->HalfMoving=0;
Human[i]->x+=WhereX[Human[i]->face];
Human[i]->y+=WhereY[Human[i]->face];
Human[i]->status=Free;
int x=Human[i]->x;
int y=Human[i]->y;
//////////////////////////////////////////////////////////////////
if ((x==10)&&(y==14)&&(Human[i]->map==Inn))
Map[Outside]->Active(i,10,1);
if ((x==10)&&(y==0)&&(Human[i]->map==Outside))
{
Map[Inn]->Active(i,10,13);
if (i==Boy)
{
Human[Teacher]->SetXY(5,8);
kk=1;
Map[Inn]->Active(Girl,7,10);
Map[Inn]->Active(Girl2,5,11);
Map[Inn]->Active(Boy2,6,11);
for (int j=1;j<=4;j++)
{
if (Human[j]->status!=Dead)
Human[j]->status=Busy;
Human[j]->HalfMoving=0;
}
for (int k=1;k<=3;k++)
Human[k]->face=up;
Human[Teacher]->face=down;
}
}
if ((x==4)&&(kk==1)&&(y==10)&&(i==Boy))
{
LongTalk=1;
Human[Boy]->face=up;
Human[Boy]->HalfMoving=0;
SetAll(Busy);
Human[Teacher]->SayTo(Boy,"大家安静一下,现在又上数学课了!!!");
kk=0;
}
///////////////////////////////////////////////////////////////////
}
}
}
}
if (count%3==0)
{
for (i=0;i<MaxHuman;i++)
{
if ((GameOver!=1)&&(Human[i]->ti<=99)&&(Human[i]->status!=Moving))
Human[i]->SetTi(Human[i]->ti+1);
}
}
if (count%4==0)
{
for (i=0;i<MaxHuman;i++)
{
if ((GameOver!=1)&&(Human[i]->nei<=99)&&(Human[i]->status!=Casting))
Human[i]->SetNei(Human[i]->nei+1);
}
}
for (int x=1;x<MaxHuman;x++)
{
if ((Human[x]->fstatus==Angry)&&(Human[x]->status==Free)&&(Human[x]->map==Human[Boy]->map))
{
if (Human[x]->x==Human[Boy]->x)
{
if (Human[x]->y<Human[Boy]->y)
{
Human[x]->face=0;
Human[x]->HalfMoving=0;
Human[x]->status=Free;
Human[x]->weapon=Missile;
Human[x]->Fight();
}
if (Human[x]->y>Human[Boy]->y)
{
Human[x]->face=2;
Human[x]->HalfMoving=0;
Human[x]->status=Free;
Human[x]->weapon=Missile;
Human[x]->Fight();
}
}
if (Human[x]->y==Human[Boy]->y)
{
if (Human[x]->x<Human[Boy]->x)
{
Human[x]->face=3;
Human[x]->HalfMoving=0;
Human[x]->status=Free;
Human[x]->weapon=Missile;
Human[x]->Fight();
}
if (Human[x]->x>Human[Boy]->x)
{
Human[x]->face=1;
Human[x]->HalfMoving=0;
Human[x]->status=Free;
Human[x]->weapon=Missile;
Human[x]->Fight();
}
}
}
}
if (rand()%3>1)
{
int x=rand()%(MaxHuman-1)+1;
if (Human[x]->status==Free)
{
if (rand()%4>1)
{
Human[x]->Move(Human[x]->face);
}
else
{
Human[x]->Move(rand()%4);
}
}
}
if (count==2000)
{
count=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -