📄 mycanvas.java
字号:
/*//////// 添加的总绘制方法,其中有9个参数 ////////////////
依次是 (((图片名称, 画笔, 绘制的起始坐标x, y, 图片宽w, 高h, 小图在大图的坐标dx,dy,是否翻转Change_Image)))
*/
public void paintImage(Image img,Graphics g,int x,int y,int w ,int h,int dx ,int dy,int Change_Image)
{
switch(Change_Image)
{
case 0://不反转
g.setClip(x,y,w,h);
g.drawImage(img,x-dx,y-dy,0);
break;
case 4://水平反转 左右镜像
for(int i=0;i<w;i++)
{
g.setClip(x+i,y,1,h);
g.drawImage(img,x-dx-w+1+2*i,y-dy,0);
}
break;
case 1://垂直反转 上下镜像
for(int i = 0;i<h;i++)
{
g.setClip(x,y + i,w,1);
g.drawImage(img,x-dx,y-h+2*i-dy,0);
}
break;
case 2://90度旋转
for (int i=0;i<h;i++)
{
for (int j=0;j<w;j++)
{
g.setClip(i+x, j+y, 1, 1);
g.drawImage(img, i-j-dx+x, i+j-h-dy+y,0);
}
}
break;
case 3://270度旋转
for (int i=0;i<h;i++)
{
for (int j=0;j<w;j++)
{
g.setClip(i+x, j+y, 1, 1);
g.drawImage(img, i-j-dx+x, j-i-dy+y,0);
}
}
break;
}
g.setClip(0,0,GAME_W,GAME_H);
}
/*//////// 添加的boolean型碰撞方法,其中有8个参数 ////////////////
依次是 (((物体1的起始坐标x1, site, 物体1的宽高w1, h1, 物体2的起始坐标x2, y2, 物体2的宽高w2, h2)))
*/
boolean butt(int x1,int y1,int w1,int h1,int x2,int y2,int w2,int h2)
{
boolean b=false;
if(x1+w1>x2&&x1<x2+w2&&y1+h1>y2&&y1<y2+h2)
{
b=true;
}
return b;
}
/***********************************************************************************
* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
***************************** 所有的按键控制 ***********************************
* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
************************************************************************************
*/
public void keyTime()//按键的响应时间
{
if(UP)
{
UP1++;
if(UP1>=10)
{
UP=false;
UP1=0;
if(score-scoreTemp<=0&&wait_time/15>5&&canvasIndex==15)
{
if(score>0)
score-=5;
ArrowTemp[0]=5;
}
}
}
if(DOWN)
{
DOWN1++;
if(DOWN1>=10)
{
DOWN=false;
DOWN1=0;
if(score-scoreTemp<=0&&wait_time/15>5&&canvasIndex==15)
{
if(score>0)
score-=5;
ArrowTemp[3]=5;
}
}
}
if(LEFT)
{
LEFT1++;
if(LEFT1>=10)
{
LEFT=false;
LEFT1=0;
if(score-scoreTemp<=0&&wait_time/15>5&&canvasIndex==15)
{
if(score>0)
score-=5;
ArrowTemp[1]=5;
}
}
}
if(RIGHT)
{
RIGHT1++;
if(RIGHT1>=10)
{
RIGHT=false;
RIGHT1=0;
if(score-scoreTemp<=0&&wait_time/15>5&&canvasIndex==15)
{
if(score>0)
score-=5;
ArrowTemp[2]=5;
}
}
}
}
protected void keyPressed(int k)//检测按键按下
{
scoreTemp=score;
switch(canvasIndex)
{
case 6://///////~~~~~~~~~~菜单界面~~~~~~~~~~~按键
if(sound==0||sound==1)
{
try {/////////音乐开始播放
player002.start();
} catch (MediaException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
switch(k)
{
case -1:
switch(Cursor)
{
case 0:
Cursor=1;
break;
case 2:
Cursor=3;
break;
case 4:
Cursor=1;
break;
case 5:
Cursor=0;
break;
}
break;
case -2:
switch(Cursor)
{
case 0:
Cursor=5;
break;
case 1:
Cursor=0;
break;
case 3:
Cursor=2;
break;
case 4:
Cursor=5;
break;
}
break;
case -3:
switch(Cursor)
{
case 0:
Cursor=4;
break;
case 1:
Cursor=4;
break;
case 2:
Cursor=5;
break;
case 3:
Cursor=0;
break;
case 5:
Cursor=4;
break;
}
break;
case -4:
switch(Cursor)
{
case 0:
Cursor=2;
break;
case 1:
Cursor=3;
break;
case 4:
Cursor=0;
break;
case 5:
Cursor=2;
break;
}
break;
case -5:
try {/////////音乐停止播放
player001.stop();
} catch (MediaException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
switch(Cursor)
{
case 0: ///////////////////////////****练舞场****
wait_time=0;
pt=0;
canvasIndex=0;
break;
case 1: ///////////////////////////******马戏团******
wait_time=0;
pt=0;
canvasIndex=0;
break;
case 2: //////////////////////////******幸运小屋******
wait_time=0;
pt=0;
canvasIndex=0;
break;
case 3: //////////////////////////******宠物店*****
wait_time=0;
pt=0;
canvasIndex=0;
break;
case 4: /////////////////////////~~~~~~~游戏设置~~~~~~~
site=0;
wait_time=0;
canvasIndex=18;
break;
case 5://///////////////////////~~~~~~~游戏介绍~~~~~~~
wait_time=0;
canvasIndex=19;
break;
}
break;
case -7:case -6:case 48:
mid.exit();
try {/////////音乐停止播放
player001.stop();
} catch (MediaException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
break;
}
break;
case 7://**********(((((((((测试界面))))))))))**********
switch(k)
{
case 49:
canvasIndex=13;
talk_a=false;
talk_i=7;
break;
case 50:
talk_a=false;
talk_i=-1;
score=0;
space=0;
wait_time=0;
for(int i=0;i<array_Arrow.length-1;i++)
{
for(int j=0;j<array_Arrow[0].length;j++)
{
array_Arrow[i][j]=0;
}
}
canvasIndex=14;
break;
}
break;
case 12:////////////////《《★★★★马戏团★★★★》》~~~~~~~界面~~~~~~~按键
switch(k)
{
case -1:
if(talk_i>26&&wait_time>60&&LEFT==false)
{
if(fettle_lion!=1&&y_lion>-1)
{
UP=true;
speed=-7;
fettle_lion=1;
}
}
// // pt=0;
break;
case -3:
if(talk_i>26&&wait_time>60)
{
LEFT=true;
fettle_lion=3;
if(origin<0)
origin+=2;
}
break;
case -4:
if(talk_i>26&&wait_time>60)
{
RIGHT=true;
fettle_lion=2;
if(y_lion<0)
origin-=6;
else
origin-=4;
}
break;
case -5:
talk_a=true;
talk_i++;
if(talk_i>26)
{
talk_a=false;
talk_i=28;
if(wait_time>=61)
canvasIndex=29;//切换到暂停界面
}
break;
case -7:
try {/////////音乐停止播放
player200.stop();
} catch (MediaException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
origin=0;
Cursor=1;
pt=0;
site=0;
speed=0;
wait_time=0;
talk_a=false;
talk_i=0;
score=0;
canvasIndex=6;
break;
case 48:///////////////////帮助界面
if(talk_i<26)
wait_time=0;
canvasIndex=22;
break;
case (Canvas.KEY_STAR):
try {/////////音乐停止播放
player200.stop();
} catch (MediaException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
origin=0;
Cursor=1;
pt=0;
speed=0;
wait_time=0;
talk_a=false;
talk_i=0;
score=0;
canvasIndex=6;
break;
}
break;
case 13://《《★★★★幸运转盘★★★★》》~~~~~~~界面~~~~~~~按键
if(sound==0||sound==1)
{
try {/////////音乐开始播
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -