📄 screen.java
字号:
g.drawImage(timeimg1, 77, 183, 0); //画时间的进度条
g.setColor(128, 128, 128);
g.fillRect(77 + timexx, 183, 75 - timexx, 15);
g.drawImage(timeimg2, 76, 182, 0);
if( timexx<75 && isover==0 )
timexx=(int)(4*(19*(GetTime2-GetTime1)/65000));
for(byte i = 0; i < lifeball1; i++) //画上层的生命球
g.drawImage(lifeimg, 140 - 13 * i, 145, 0);
for(byte i = 0; i < lifeball2; i++) //画下层的生命球
g.drawImage(lifeimg, 140 - 13 * i, 158, 0);
if( lifeball1<=0 ) //生命球个数为零时游戏结束
{
if(lifeball1==0)
{
isover=22;
lifeball1=-1;
}
setover();
}
else if( timexx==75 ) //游戏正常结束
{
Check();
setover();
}
}
void Check()
{
byte ccc=0;
for(int i=0;i<6;i++)
{
if( ball[i]>=0 ) //下落的球
{
if( d1.data[ball[i]][1]>-12 && d1.data[ball[i]][1]<=111 )
ccc++;
else
ball[i]=-1;
}
if( ballup[i][0]>=0 ) //上升的球
{
if( d1.data[ballup[i][0]][1]>-12 && d1.data[ballup[i][0]][1]<=111 )
ccc++;
else
ballup[i][0]=-1;
}
if( balldown[i][0]>=0 ) //自由落体的球
{
if( d1.data[balldown[i][0]][1]<=111 )
ccc++;
else
balldown[i][0]=-1;
}
}
if( ccc==0 )
isover=25;
}
void setover()
{
isover++;
if(isover==26)
{
fenmu=Numlossed+Numgoods+Numgreats;
WriteRecord1();
if(soundselect==1)
activeBKSound(3);
gametime=0;
}
}
void drawPause(Graphics g)
{
g.drawImage(offS, 0, -15, 0);
g.setColor(0xE8EB01);
g.fillRect(0,HI-15,WD,15);
setClipImage(g, 2, 189, menu3, 216, 0, 31, 16);
setClipImage(g, 142, 189, menu3, 247, 0, 32, 16);
/*
if(selectp == 0)
g.drawImage(menu1, 42, 60, 0);
else
g.drawImage(menu1, 42, 85, 0);
setClipImage(g, 68, 62, menu3, 216, 0, 31, 16);
setClipImage(g, 68, 87, menu3, 247, 0, 32, 16);
*/
}
void drawGameResult(Graphics g)
{
for(int i=0;i<20;i++)
{
setClipImage(g,xy[i][0],xy[i][1],back2img,0,0,66,66);
xy[i][0]++;
xy[i][1]++;
}
if(xy[0][0]==0)
{
for(int i=0;i<20;i++)
{
xy[i][0]-=66;
xy[i][1]-=66;
}
}
setClipImage(g, 20+5, 16, messageimg2, 0, 0, 32, 15); //missed
setClipImage(g, 27+5, 69, messageimg2, 63, 0, 16, 15); //good
setClipImage(g, 10+5, 122, messageimg2, 32, 0, 50, 15); //great
// 画进度条
g.drawImage(jindutiaoimg1,103-5,16,0);
g.drawImage(jindutiaoimg2,103-5,69,0);
g.drawImage(jindutiaoimg3,103-5,122,0);
g.setColor(0);
g.fillRect(106-5,19,63-63*lossx/fenmu,11);
g.fillRect(106-5,72,63-63*goodx/fenmu,11);
g.fillRect(106-5,125,63-63*greatx/fenmu,11);
if(goodx<Numgoods)
goodx+=5;
else
goodx=Numgoods;
if(lossx<Numlossed)
lossx+=5;
else
lossx=Numlossed;
if(greatx<Numgreats)
greatx+=5;
else
greatx=Numgreats;
// 画成绩
if( (goodx+lossx+greatx)==fenmu )
{
drawscore1(g, 172-5, 36, Numlossed);
drawscore1(g, 172-5, 36+53, Numgoods);
drawscore1(g, 172-5, 36+106, Numgreats);
if( flagstar )
{
//starnum=10*(Numgreats+(Numgoods*4/5))/fenmu;
starnum=10*Numgreats/fenmu;
gametime=0;
flagstar=false;
}
}
// 画星星
for(int i=0;i<10;i++)
setClipImage(g,9+i*16,165,starimg,13,0,13,14);
if(gametime/5<starnum)
{
for(int i=0;i<gametime/5;i++)
setClipImage(g,9+i*16,165,starimg,0,0,13,14);
}
else
{
for(int i=0;i<starnum;i++)
setClipImage(g,9+i*16,165,starimg,0,0,13,14);
}
//wolf setClipImage(g, 1, 188, menu3, 216, 0, 31, 16);
setClipImage(g, 144, 188, menu3, 216, 0, 31, 16);//wolf
if(!ispassed)
//wolf setClipImage(g, 144, 188, menu3, 247, 0, 32, 16);
setClipImage(g, 1, 188, menu3, 247, 0, 32, 16); //wolf
else
//wolf setClipImage(g, 144, 188, menu3, 279, 0, 31, 16);
setClipImage(g, 1, 188, menu3, 279, 0, 31, 16);//wolf
}
void drawscore1(Graphics g, int x, int y, int nNumber) //无位数限制
{
do
{
setClipImage(g, x-=11, y,numimg,(nNumber%10)*9,0,9,13);
}
while ((nNumber/=10) != 0);
}
void drawscore2(Graphics g, int x, int y, int nNumber) //有位数限制
{
for(int i=0; i<6; i++)
{
setClipImage(g, x-11*i, y, numimg, (nNumber%10)*9, 0, 9, 13);
//g.drawString(Integer.toString( (nNumber%10) ),x-=9, y,0);
nNumber/=10;
}
}
public void setClipImage(Graphics g, int i, int j, Image image,int k, int l,int i1,int j1)
{
g.setClip(i, j, i1, j1);
g.drawImage(image, i - k, j - l, 0);
g.setClip(0, 0, WD, HI);
}
public int Random(int length)
{
return Math.abs(rand.nextInt()%length);
}
public void hideNotify()
{
gt.showmenu=true;
//wolf repaint();
//wolf serviceRepaints();
activeBKSound(2);//wolf
}
int wolfT;//wolf
public void showNotify()
{
if( gamepause && isover>0 )
gamepause=false;
gt.showmenu=false;
//wolf repaint();
//wolf serviceRepaints();
if(wolfT==0)
{
gamestate=TITLE;
wolfT=1;
}
else
gamestate=COVER2;//wolf
}
void addball(int kkk,int sss) //增加新的球
{
if(isaddballup)
{
for(int k=0;k<6;k++)
{
if(ballup[k][0]==-1)
{
if( kkk==0 )
ballup[k][0]=ball[0];
else
ballup[k][0]=balldown[0][0];
ballup[k][1]=sss;
break;
}
}
isaddballup=false;
}
if( kkk==1 )
return;
for(int i=0;i<5;i++)
ball[i]=ball[i+1];
if(isaddball)
{
ball[5]+=1;
switch(level)
{
case Screen.Easy:
d1.data[ball[5]][1]=d1.data[ball[4]][1]-91;
break;
case Screen.Normal:
d1.data[ball[5]][1]=d1.data[ball[4]][1]-90;
break;
case Screen.Hard:
d1.data[ball[5]][1]=d1.data[ball[4]][1]-84;
break;
}
}
else
{
ball[5]=-1;
}
}
void Updataballdown()
{
for(int k=0;k<5;k++)
{
balldown[k][0]=balldown[k+1][0];
balldown[k][1]=balldown[k+1][1];
}
balldown[5][0]=-1;
balldown[5][1]=0;
}
void addballdown(int kkk)
{
if( kkk==0 )
{
for(int k=0;k<6;k++)
{
if( balldown[k][0]==-1 )
{
balldown[k][0]=ball[0];
balldown[k][1]=0;
break;
}
}
}
else
{
int temp=balldown[0][0];
int iii=0;
for(int k=1;k<6;k++)
{
if( balldown[k][0]!=-1 )
iii++;
balldown[k-1][0]=balldown[k][0];
balldown[k-1][1]=balldown[k][1];
}
balldown[iii][0]=temp;
balldown[iii][1]=0;
}
}
// 7 111 104 97 90
// 10 111 101 91
// 14 111 97
void Compare(Graphics g,byte k) //判断是否点中
{
if( balldown[0][0]>=0 &&
d1.data[balldown[0][0]][2]==k &&
(d1.data[balldown[0][0]][1]-step)>(111-28) &&
(d1.data[balldown[0][0]][1]-step)<=111 )
{
boolean flag=false;
byte speed=0;
//byte speed=1;
switch(level)
{
case Screen.Easy:
if( (d1.data[balldown[0][0]][1]-step)<=90 )
flag=true;
else if( (d1.data[balldown[0][0]][1]-step)<=97 )
{
flag=true;
speed=1;
}
else
speed=2;
break;
case Screen.Normal:
if( (d1.data[balldown[0][0]][1]-step)<=91 )
flag=true;
else if( (d1.data[balldown[0][0]][1]-step)<=101 )
{
flag=true;
speed=1;
}
else
speed=2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -