Android也能写游戏——五子棋的实现

作者: Trap_余生 | 来源:发表于2016-08-23 17:23 被阅读312次

    前序:

           你没有看错,开发游戏不再是Cocos2d-x的专利,Android也能写游戏。小编今天比较闲,突奇想就写了个游戏五子棋玩一玩。纯Android写,相当的简单,唯一比较为难的就是切图了,当然也就是比较为难,机智如小编专治各种疑难杂症!哼,这里小编会告诉你是从网上切的图么!!!

    正文:

          先看游戏运行后是啥玩意请看图:

           一句话概括就是两类一接口,没错,这就能实现五子棋的游戏了。老规矩请看截图:

           其实小编想将所有代码截下来的,可是一看,卧槽,有500行代码,另加上这迷人的网速,小编瞬间决定等时机成熟再传,也趁此时间好好的修改一番,特别是屏幕适配这个问题,切的图就那么大,在不同屏幕展现都可能出现失真的效果。

    核心代码:

    privateBitmapCreatMatrixBitmap(intresourcesID, floatscr_width, floatres_height)

    {

    Bitmap bitMap =null;

    bitMap = BitmapFactory.decodeResource(sResources,resourcesID);

    intbitWidth = bitMap.getWidth();

    intbitHeight = bitMap.getHeight();

    floatscaleWidth = scr_width / (float) bitWidth;

    floatscaleHeight = res_height / (float) bitHeight;

    Matrix matrix =newMatrix();

    matrix.postScale(scaleWidth,scaleHeight);

    bitMap = Bitmap.createBitmap(bitMap,0,0,bitWidth,bitHeight,matrix, true);

    returnbitMap;

    }

    private voidUpdateTouchEvent(intx, inty)

    {

    switch(mGameState)

    {

    caseGS_GAME:

    if(x >0&& y >mTitleHeight)

    {

    mMapIndexX= (int) (x /mTitleSpace);

    mMapIndexY= (int) ((y -mTitleHeight) /mTitleSpace);

    if(mMapIndexX>mMapWidthLengh)

    {

    mMapIndexX=mMapWidthLengh;

    }

    if(mMapIndexX<0)

    {

    mMapIndexX=0;

    }

    if(mMapIndexY>mMapHeightLengh)

    {

    mMapIndexY=mMapHeightLengh;

    }

    if(mMapIndexY<0)

    {

    mMapIndexY=0;

    }

    if(mGameMap[mMapIndexY][mMapIndexX] ==CAMP_DEFAULT)

    {

    if(mCampTurn==CAMP_HERO)

    {

    mGameMap[mMapIndexY][mMapIndexX] =CAMP_HERO;

    if(CheckPiecesMeet(CAMP_HERO))

    {

    mCampWinner= R.string.Role_black;

    setGameState(GS_END);

    }

    else

    {

    mCampTurn=CAMP_ENEMY;

    }

    }

    else

    {

    mGameMap[mMapIndexY][mMapIndexX] =CAMP_ENEMY;

    if(CheckPiecesMeet(CAMP_ENEMY))

    {

    mCampWinner= R.string.Role_white;

    setGameState(GS_END);

    }else

    {

    mCampTurn=CAMP_HERO;

    }

    }

    }

    }

    break;

    caseGS_END:

    setGameState(GS_GAME);

    break;

    }

    }

    分享经验:

              作为一名开发人员是如何与产品汪斗智斗勇,对于产品汪,小编跟广大网友一样,不爽、不爽、不爽!重要的事情说三遍,特别还是这位产品汪还是尼玛一屌丝。吆喝,今天跟我谈需求变更,尼玛,平时这么拽,现在看我怎么整他,还是请直接看图:

    没错,你没有看错,我答应了下来,并且说15个工作日,并且把这份计划图也给他看,小编都佩服自己,看看时间就跟我说那就不改了,就这样挺好!哈哈哈......

    反馈:

              欢迎万能网友互相分享交流!

              CSDN:http://write.blog.csdn.net/postlist

              github: https://github.com/ITtrap

            QQ: 2632545852          微信:xuchen2100       

            Email: xuchen1009@gmail.com

    相关文章

      网友评论

        本文标题:Android也能写游戏——五子棋的实现

        本文链接:https://www.haomeiwen.com/subject/mgknsttx.html