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

📄 movie.cpp

📁 轩辕2源代码.rar
💻 CPP
字号:
#include "ls.h"
#include "text.cpp"

char *reads[10]={
 "梦回到那纵横捭阖的历史",
 "太古神剑将再次演义战国风云",
};
int fade_view(int x,int y,char *s)
{ int i;
  for (i=0;i<13;i++) {
     world.noop(game_delay*2);
     lsetColor(light_map.data[i*255/15][15]);
     louttextxy(x,y,s);
  }
  return 0;
}
int GAME::MovieEnd()
{ int i,j,k;
  extern char *text_end[];
  voc.stopmidi();
  for (i=0;i<63;i++) {
    world.noop(game_delay/2);
    laddPal(-i,pal0,pal);
    lsetPal(pal);
  }
  lClearSurface(&layer.layers[0],0);
  game_blit(-1,1);
  lActiveSurface(NULL);
  lsetPal(pal0);
  for (i=0;i<10;i++) {
    fade_view(160-strlen(text_end[i])*4,8+i*18,text_end[i]);
    world.noop(game_delay*35);
  }
  while (!game_key(0));
  for (i=0;i<63;i++) {
    world.noop(game_delay/2);
    laddPal(-i,pal0,pal);
    lsetPal(pal);
  }
  lClearSurface(&layer.layers[0],0);
  game_blit(-1,1);
  lsetPal(pal0);
  layer.active(0);
  return 0;
}
int GAME::MovieShip()
{ int i,j,k;
  char *bitmap;
  char *ship;
  char name[80];
  RGB  tpal[256];
  extern char *text_penglai[];

  game_getfname(NAME_TITLE,6,name);
  bitmap=lrPicFile(name,0,tpal);
  if (!bitmap) {
     voc.regist_msg("error load %s in MoveShip()",name);
  }
  voc.playmidi(6,0);
  for (i=0;i<63;i++) {
    world.noop(game_delay/2);
    laddPal(-i,pal0,pal);
    lsetPal(pal);
  }
  layer.active(0);
  lClearSurface(&layer.layers[0],0);
  lgPutImage(0,0,319,239,bitmap);
  game_blit(-1,1);
  for (i=0;i<64;i++) {
    world.noop(game_delay/2);
    laddPal(-63+i,tpal,pal);
    lsetPal(pal);
  }
  ship=express.syspic.LpcImage[24];
  for (i=-20;i<340;i++) {
    world.noop(game_delay);
    lgPutImage(0,0,319,239,bitmap);
    lputImage(i,37,ship);
    game_blit(-1,1);
  }
  voc.stopmidi();
  for (i=0;i<63;i++) {
    world.noop(game_delay/2);
    laddPal(-i,tpal,pal);
    lsetPal(pal);
  }
  lClearSurface(&layer.layers[0],0);
  game_blit(-1,1);
  lsetPal(pal0);
  lActiveSurface(NULL);
  for (i=0;i<2;i++) {
    fade_view(160-strlen(text_penglai[i])*4,60+i*28,text_penglai[i]);
    world.noop(game_delay*80);
  }
  world.noop(game_delay*80);
  for (i=0;i<63;i++) {
    world.noop(game_delay/2);
    laddPal(-i,tpal,pal);
    lsetPal(pal);
  }
  lClearSurface(&layer.layers[0],0);
  game_blit(-1,1);
  layer.active(0);
  lsetPal(pal0);
  delete bitmap;
  return 0;
}
int GAME::GameMovie()
{ int i,j,k,ok,key,x,y;
  int y0,y1,end_y0=50,end_y1=200;
  int time_pass=0;
  char name[100],*bitmap;
  char text[100]="无名鸟工作室荣誉制作";
  RGB  pal[256];
  RGB tpal[256];
  
  FILE *f;

  static struct
  { int x,y,len,wid;
  } rect[200];

  game_reset_all(-1,-1,1,-1);
  if (game_debug==1) return 0;
  lsetPal(pal0);
  lActiveSurface(NULL);
  fade_view(160-13*8+16,75,reads[0]);
  world.noop(game_delay*60);
  fade_view(160-13*8,120,reads[1]);
  
  world.noop(game_delay*100);
  for (i=0;i<60;i++) {
    world.noop(game_delay/3);
    laddPal(-i,pal0,tpal);
    lsetPal(tpal);
  }
  game_getfname(NAME_TITLE,4,name);
  bitmap=lrPicFile(name,0,pal);
  if (!bitmap) {
     voc.regist_msg("error load %s",name);
     return -5;
  }
  lActiveSurface(NULL);
  lputBlock(0,0,bitmap);
  delete bitmap;
  for (i=-63;i<=0;i++) {
      world.noop(game_delay/4);
      laddPal(i,pal,tpal);
      lsetPal(tpal);
      if (i==-15) voc.playdigi(4);
  }
  world.noop(game_delay*100);
  for (i=0;i<70;i++) {
      world.noop(game_delay/2);
      ldecPal(1,tpal);
      lsetPal(tpal);
  }
  game_getfname(NAME_TITLE,0,name);
  bitmap=lrPicFile(name,0,pal);
  if (!bitmap) {
     voc.regist_msg("error load %s",name);
     return -1;
  }
  layer.active(2);
  lputBlock(0,0,bitmap);
  delete bitmap;
  game_getfname(NAME_TITLE,1,name);
  bitmap=lrPicFile(name,0,NULL);
  if (!bitmap) {
     voc.regist_msg("error load %s",name);
     return -2;
  }
  layer.active(1);
  lputBlock(0,240,bitmap);
  delete bitmap;
  game_getfname(NAME_TITLE,2,name);
  bitmap=lrPicFile(name,0,NULL);
  if (!bitmap) {
     voc.regist_msg("error load %s",name);
     return -3;
  }
  layer.active(0);
  lputBlock(0,240,bitmap);
  delete bitmap;
  game_getfname(NAME_TITLE,3,name);
  if ((f=fopen(name,"rb"))==NULL)
   { voc.regist_msg("error load %s",name);
     return -4;
   }
  fread(rect,sizeof(rect[0]),100,f);
  fclose(f);
  layer.datas[1].x=layer.datas[2].x=0;
  layer.datas[1].y=layer.datas[2].y=0;
  layer.datas[0].x=layer.datas[0].y=0;
  layer.datas[1].y=240;
  layer.datas[2].y=240;
  voc.playmidi(0,1);
  world.color_change=0;
  bitmap=layer.layers[0].memory;
  for (i=0;i<320*200;i++) if (bitmap[i+320*240]) bitmap[i+320*240]=10;
  for (ok=0,i=-70,y0=230,y1=20,key=0;ok==0;time_pass++)
   {  world.noop(game_delay*2);
      if (game_key(0)==0) key=1;
      if (y0==end_y0&&game_key(0)&&key) ok=1,key=0;
      if (y1==end_y1&&game_key(1)&&key) ok=-1,key=0;
      laddPal(i,pal,tpal);
      lsetPal(tpal);
      layer.datas[2].y=(y0>=0)? y0 : 0;
      layer.datas[1].y=(y1>=0)? y1 : 0;
      game_blit(1,1);
      if (y1<end_y1) y1++;
      if (y0>end_y0) y0--;
      if (i<0&&(time_pass&1)==0) i++;
      if (time_pass>180) ok=1;
   }
  lsetPal(10,36,1,1);
  lBlitFast(&layer.layers[1],0,0, 0,0,319,239,&layer.layers[0],0);

  for (i=0;i<100;i++)
   { world.noop(game_delay/2);
     lBlitFast(&layer.layers[0],rect[i].x,rect[i].y, rect[i].x,rect[i].y+240,
               rect[i].x+rect[i].len-1,rect[i].y+240+rect[i].wid-1,&layer.layers[0],1);
     lOutToScr(&layer.layers[0], 0,0, 0,0,319,239);
   }
  while (!game_key(0));
  for (i=36,j=1,k=0,ok=0,time_pass=0;ok==0;time_pass++)
   {  world.noop(game_delay);
      lBlitFast(&layer.layers[0],0,0, 0,0,319,239,&layer.layers[1],0);
      lBlitFast(&layer.layers[0],0,-k, 0,240,319,479,&layer.layers[0],1);
      lOutToScr(&layer.layers[0],0,0, 0,0,319,239);
      if (j<52) j+=1; else ok=1;
      if (i<52) i+=1;
      if (k<20&&time_pass%2==0) k++;
      for (y=0;y<2;y++) for (x=0;x<256;x++) {
          if (pal[x].r>0) pal[x].r--;
          if (pal[x].g>0) pal[x].g--;
          if (pal[x].b>0) pal[x].b--;
      }
      pal[10].r=i; pal[10].g=pal[10].b=j;
      lsetPal(pal);
   }
  layer.active(0);
  lBlitFast(&layer.layers[0],0,0, 0,240,319,479, &layer.layers[0],0);
  lBlitFast(&layer.layers[0],0,-20, 0,240,319,479, &layer.layers[0],0);
  lgetBlock(0,0,319,239,title);
  world.noop(game_delay*45);
  lloadPal(pal);
  for (i=0,k=255;i<60;i++,k-=4) {
    if (k<0) k=0;
    voc.volume(k,k);
    world.noop(game_delay/6);
    ldecPal(1,pal);
    lsetPal(pal);
  }
  voc.volume(255,255);
  game_reset_all(-1,-1,1,-1);
  game_blit(1,1);
  lsetPal(pal0);
  for (i=0;i<320*240;i++) if (title[i+4]==10) title[i+4]=22;
    else title[i+4]=0;
  world.color_change=1;
  return 0;
}
int GAME::MovieNew()
{ char name[100];
  char *bitmap;
  int x,y,i,j,k;
  int textcolor,texty;
  short len,wid,ok;
  int pal_t,key;
  int light[20],lstep=11;
  RGB pal[256],tpal[256];

  if (game_debug==1) return 0;
  game_getfname(NAME_TITLE,5,name);
  world.color_change=0;
  bitmap=lrPicFile(name,0,pal);
  if (!bitmap) {
     voc.regist_msg("error load bitmap %s",name);
     return -1;
  }
  textcolor=lpBestfitColor(pal,44,44,44);
  for (i=0,j=44;i<lstep;i++,j-=44/lstep) {
      if (j<0) j=0;
      light[i]=lpBestfitColor(pal,j,j,j);
  }
  layer.active(2);
  lgetSize(&len,&wid,bitmap);
  lputBlock(0,0,bitmap);
  delete bitmap;
  voc.playmidi(2,1);
  for (ok=0,pal_t=-60,texty=220,y=40,x=0,j=0,key=0;ok==0;j++)
   {  world.noop(game_delay*4);
      if (key==0&&(game_key(0)==0&&game_key(1)==0)) key=1;
      if (key==1&&(game_key(0)==1||game_key(1)==1)) ok=1;
      laddPal(pal_t,pal,tpal);
      lsetPal(tpal); if (++pal_t>=0) pal_t=0;
      layer.active(0);
      lBlitFast(&layer.layers[0],x,y, 0,0,len-1,wid-1,&layer.layers[2],0);
      lsetColor(0);
      lbar(0,y-30,319,y-1);
      lbar(0,y+wid,319,y+wid+30);
      for (i=0;text_game_start[i];i++) {
        lsetColor(textcolor);
        k=texty+i*20;
        if (k>-16&&k<250) {
           lsetColor(0);
           louttextxy(10+1,texty+i*18+1,text_game_start[i]);
           lsetColor(textcolor);
           louttextxy(10,texty+i*18,text_game_start[i]);
        }
      }
      for (i=0;i<lstep;i++) {
         for (k=0;k<320;k++) if (lrpixel(k,y-1-i)) lpixel(k,y-1-i,light[i]);
         for (k=0;k<320;k++) if (lrpixel(k,y+wid+i)) lpixel(k,y+wid+i,light[i]);
      }
      lsetColor(0);
      lbar(0,0,319,y-lstep);
      lbar(0,y+wid+lstep,319,239);
      lOutToScr(&layer.layers[0],0,0, 0,0,319,239);
      if (--texty<-108) ok=1;
      if ((j%4)==0) if (x>320-len) x--;
   }
  world.noop(game_delay*60);
  voc.stopmidi();
  for (i=0;i>-63;i--) {
    laddPal(i,pal,tpal);
    lsetPal(tpal);
    world.noop(game_delay*2/3);
  }
  game_reset_all(-1,-1,1,-1);
  game_blit(1,1);
  lsetPal(pal0);
  world.color_change=1;
  return 0;
}
int GAME::MovieAbout()
{ int i,j;
  char name[100];

  world.color_change=0;
  world.color_change=1;
  return 0;
}
int GAME::MovieGameOver()
{ int i,j,k;
  char *bitmap;
  bitmap=new char[320*240+8];

  delete bitmap;
  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -