这是本人第一次写博客,是写给自己看的吧,标志着我下定决心开始走程序媛这条路了。
而且这也是我第一次用Processing写小游戏,算是纪念了。
首先帖一张运行初始界面图:
我们可以看到最下面那个警察是玩家,上面有4只僵尸,一只狙击手还有一个杀手。
医生是横着走而且超出界面后不会返回。
然后我们要对每个NPC定义它特有的属性,它是横着走还是竖着走,速度怎么样还有它和玩家相碰之后的结果。
下面是僵尸、狙击以及杀手的特性:
碰到僵尸后游戏不会结束,但是要找医生才能解除屏幕上的提示,当医生不在后如果再碰到僵尸游戏立刻结束。
PImage img=new PImage();
float speed; //将速度定义为全局变量
Enemy enemy1_1,enemy1_2,enemy1_3,enemy1_4; //4只僵尸
class Enemy
{
float img_x,img_y;
Enemy(float x, float y,float sd)
{
img_x=x;
img_y=y;
speed=sd;
}
void movel1()
{ img_x+=speed;
if(img_x>width-80) //僵尸是来回走的
{
img_x=40;
}
}
void movel2()
{ img_x-=speed;
if(img_x<40)
{
img_x=width-80;
}
}
boolean contact() //检测是否和僵尸碰到
{
float Offset = dist(img_x,img_y,X,Y); //距离
boolean bContact =false ;
if(Offset<=55) //如果两个距离小于55说明相碰返回true
{
bContact=true;
}
return bContact;
}
void display()
{
image(img,img_x,img_y);
if(life==1)
{
color c=color(255,204,0);
pushStyle();
fill(c);
textFont(font,25);
text("You have to find the doctor!",width/2-140,height/2);
//生命值为1说明和僵尸相碰了
popStyle();
}
}
}
PImage img6=new PImage(); //狙击
Juji juji;
class Juji
{ float img6_x,img6_y;
Juji(float x, float y,float sd)
{
img6_x=x;
img6_y=y;
speed=sd;
}
void display()
{
image(img6,img6_x,img6_y);
}
void movel3()
{
img6_y+=speed;
if(img6_y>450)
{
img6_y=150;
}
}
boolean contact() //检测是否和狙击碰到
{
float Offset = dist(img6_x,img6_y,X,Y); //distance
boolean bContact =false ;
if(Offset<=55)
{
bContact=true;
}
return bContact;
}
}
PImage img3=new PImage(); //杀手
Shashou shashou;
float