血族手游攻略

血族手游攻略

聚八方. 聚八方.
回答
  • 鐘意 鐘意

    不合意的自己去修改
    import j**a.awt.*;import j**a.awt.event.*;public class greedsnake/主类
    {
    param args
    public static void main(string[]args){
    todo auto-generated method stub
    new mywindow();}
    }
    class mypanel extends panel implements keyl**tener,runnable/自定义面板类,继承了键盘和线程接口
    {
    button snake[];定义蛇按钮
    int shu=0;蛇的节数
    int food[];食物数组
    boolean result=true;判定结果是输 还是赢
    thread thread;定义线程
    static int weix,weiy;食物位置
    boolean t=true;判定游戏是否结束
    int fangxiang=0;蛇移动方向
    int x=0,y=0;蛇头位置
    mypanel()
    {
    setlayout(**);snake=new button[20];food=new int[20];thread=new thread(th**);for(int j=0;j;j+)
    {
    food[j]=(int)(math.random()*99);定义20个随机食物
    }
    weix=(int)(food[0]*0.1)*60;十位*60为横坐标
    weiy=(int)(food[0]%10)*40;个位*40为纵坐标
    for(int i=0;i;i+)
    {
    snake[i]=new button();}
    add(snake[0]);snake[0].setbackground(color.black);snake[0].addkeyl**tener(th**);为蛇头添加键盘**
    snake[0].setbounds(0,0,10,10);setbackground(color.cyan);}
    public void run()/接收线程
    {
    while(t)
    {
    if(fangxiang=0)/向右
    {
    try
    {
    x+10;snake[0].setlocation(x,y);设置蛇头位置
    if(x=weix&y=weiy)/吃到食物
    {
    shu+;weix=(int)(food[shu]*0.1)*60;weiy=(int)(food[shu]%10)*40;repaint();重绘下一个食物
    add(snake[shu]);增加蛇节数和位置
    snake[shu].setbounds(snake[shu-1].getbounds());}
    thread.sleep(100);睡眠100ms
    }
    catch(exception e){}
    }
    else if(fangxiang=1)/向左
    {
    try
    {
    x-=10;snake[0].setlocation(x,y);if(x=weix&y=weiy)
    {
    shu+;weix=(int)(food[shu]*0.1)*60;weiy=(int)(food[shu]%10)*40;repaint();add(snake[shu]);snake[shu].setbounds(snake[shu-1].getbounds());}
    thread.sleep(100);}
    catch(exception e){}
    }
    else if(fangxiang=2)/向上
    {
    try
    {
    y-=10;snake[0].setlocation(x,y);if(x=weix&y=weiy)
    {
    shu+;weix=(int)(food[shu]*0.1)*60;weiy=(int)(food[shu]%10)*40;repaint();add(snake[shu]);snake[shu].setbounds(snake[shu-1].getbounds());}
    thread.sleep(100);}
    catch(exception e){}
    }
    else if(fangxiang=3)/向下
    {
    try
    {
    y+10;snake[0].setlocation(x,y);if(x=weix&y=weiy)
    {
    shu+;weix=(int)(food[shu]*0.1)*60;weiy=(int)(food[shu]%10)*40;repaint();add(snake[shu]);snake[shu].setbounds(snake[shu-1].getbounds());}
    thread.sleep(100);}
    catch(exception e){}
    }
    int num1=shu;while(num1>1)/判断是否咬自己的尾巴
    {
    if(snake[num1].getbounds().x=snake[0].getbounds().x&snake[num1].getbounds().y=snake[0].getbounds().y)
    {
    t=false;result=false;repaint();}
    num1-;}
    if(x|x>=th**.getwidth()|y|y>=th**.getheight())/判断是否撞墙
    {
    t=false;result=false;repaint();}
    int num=shu;while(num>0)/设置蛇节位置
    {
    snake[num].setbounds(snake[num-1].getbounds());num-;}
    if(shu=15)/如果蛇节数等于15则胜利
    {
    t=false;result=true;repaint();}
    }
    }
    public void keypressed(keyevent e)/按下键盘方向键
    {
    if(e.getkeycode()=keyevent.vk_right)/右键
    {
    if(fangxiang!1)/如果先前方向不为左
    fangxiang=0;}
    else if(e.getkeycode()=keyevent.vk_left)
    { if(fangxiang!0)
    fangxiang=1;}
    else if(e.getkeycode()=keyevent.vk_up)
    { if(fangxiang!3)
    fangxiang=2;}
    else if(e.getkeycode()=keyevent.vk_down)
    { if(fangxiang!2)
    fangxiang=3;}
    }
    public void keytyped(keyevent e)
    {
    }
    public void keyreleased(keyevent e)
    {
    }
    public void paint(graphics g)/在面板上绘图
    {
    int x1=th**.getwidth()-1;int y1=th**.getheight()-1;g.setcolor(color.red);g.filloval(weix,weiy,10,10);食物
    g.drawrect(0,0,x1,y1);墙
    if(t=false&result=false)
    g.drawstring("game over!250,200);输出游戏失败
    else if(t=false&result=true)
    g.drawstring("you win!250,200);输出游戏成功
    }
    }
    class mywindow extends frame implements actionl**tener/自定义窗口类
    {
    mypanel my;button btn;panel panel;mywindow()
    {
    super("greedsnake");my=new mypanel();btn=new button("begin");panel=new panel();btn.addactionl**tener(th**);panel.add(new label("begin后请按tab键选定蛇"));panel.add(btn);panel.add(new label("按上下左右键控制蛇行动"));add(panel,borderlayout.north);add(my,borderlayout.center);setbounds(100,100,610,500);setv**ible(true);validate();addwindowl**tener(new windowadapter()
    {
    public void windowclosing(windowevent e)
    {
    system.exit(0);}
    });}
    public void actionperformed(actionevent e)/按下begin按钮
    {
    if(e.getsource()=btn)
    {
    try
    {
    my.thread.start();开始线程
    my.validate();}
    catch(exception ee){}
    }
    }
    }

类似问答
  • 手游热血合击攻略

    提问时间:2024-05-06 23:19:44

    手游热血合击攻略 热血合击是一款非常受欢迎的手游,该游戏采用了非常独特的合击系统,玩家可以与队友一同发动超强的合击技能,解锁更多的游戏内容。如果你想成为这款游戏...

  • 血族手游

    提问时间:2024-05-06 16:00:20

    血族手游 血族手游是一款以吸血鬼为主题的角色扮演游戏,游戏画面精美,玩法丰富,深受玩家喜爱。下面我将从游戏特点、玩法、社交等方面为大家介绍一下血族手游。游戏特点...

  • 血族手游角色

    提问时间:2024-05-06 10:52:27

    血族手游角色 血族手游是一款以吸血鬼为主题的角色扮演游戏,其中有不少的角色可供玩家选择。那么,哪一个角色是最好的呢?以下是一些我认为比较出色的血族手游角色,希望...

  • 热血传说手游攻略

    提问时间:2024-05-06 07:11:20

    热血传说手游攻略 作为一款经典的MMORPG游戏,《热血传说》在手游市场中也备受瞩目。如果你是初次接触或者想要提升游戏技巧的玩家,以下是几个攻略建议。一、角色选...

  • 血族bloodline攻略

    提问时间:2024-05-06 05:59:24

    血族bloodline攻略 《血族》是一款非常受欢迎的战略角色扮演游戏,玩家可以扮演吸血鬼,建立自己的势力,与其他玩家互相竞争。其中,血统是非常重要的因素,影响...

  • 血族***

    提问时间:2024-05-06 10:49:59

    血族*** 血族是一种古老而强大的生物种族,他们天生拥有强大的力量、速度和耐力,同时还具备着独特的特殊能力。在故事中,我们可以看到许多血族人物以其强大的实力和难...

  • 血族手游账号

    提问时间:2024-05-06 13:02:10

    血族手游账号 血族手游是一款非常受欢迎的RPG类手游,玩家可以在这个游戏中扮演各种不同的角色,探索一片神秘的世界,并与其他玩家展开激烈的战斗。在这个游戏中,拥有...

  • 血族bloodline手游攻略

    提问时间:2024-05-06 10:49:51

    血族bloodline手游攻略 血族bloodline手游是一款以暗黑幻想为背景的动作角色扮演游戏(ARPG),游戏中玩家将扮演一位血族猎人,与其他玩家组队,探...

  • 血族手游人物

    提问时间:2024-05-06 01:51:43

    血族手游人物 血族手游五大职业背景人物介绍【No.1血族公主——莉萝艾】莉萝艾作为剧情中的1号女主角,自然是集作者万般宠爱于一身的血族公主,上可动用血族魔力召唤...

  • 血族bloodline血族元老

    提问时间:2024-05-06 01:19:11

    血族bloodline血族元老 血族bloodline电脑版下载使用教程 1点击下载血族bloodline电脑版玩家们想要在电脑上畅快地玩血族bloo...

精品推荐

友情链接

友链互换QQ:

谷财 备案编号:蜀ICP备11019336号-3商务合作:235-677-2621

Copyright 2009-2020 Chengdu Sanzilewan Technology Co.,Ltd all rights reserve

抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活