前序:
你没有看错,开发游戏不再是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: [email protected]