Android小游戏开发相关菜鸟级经验及提示&1&图像和音频相_Android_第七城市
Android小游戏开发相关菜鸟级经验及提示&1&图像和音频相
哦,,我真是消失的够久了,,,这个学期在做大作业的过程中其实着实遇到了些问题,只不过,因为忙着做作业呀,还有一些其他什么的一直没有总结,,,今天的主要任务完成的差不多,又想起可以来更一下了。今天主要总结下自己做安卓手游的一些菜鸟问题。 1、有关放图 这真是基础的不能再基础的问题了。 放图的方式主要两种,一种用Bitmap,一种用ImageView。就我个人经验来讲,我认为ImageView呢主要是在Activity里面进行使用(就是说代码直接写在Activity里面的意思,我很菜嘛,所以用语可能不规范,请多包涵哈~),也有自己写一个继承ImageView的类的情况,最简单的放图就是用ImageView加载一张图片: 1>在界面XML文件中添加一个ImageView1 2>在Activity代码中声明一个ImageView,ID指向ImageView1的ID,这个ID可以根据需要进行修改 ImageView title = (ImageView) findViewById(R.id.title); 就个人经验之谈,↑这个语句不能写到自定义类中。 3>加载图片 title.setImageResource(R.drawable.title); Bitmap实际上是绘制在画布上的,它只起到加载图片的作用,也就是说首先你需要有一个画布: 1>准备工作: Canvas mC B 2>加载图片: blackbitmap= BitmapFactory.decodeResource(res, R.drawable.black); 3>绘制: mCanvas.drawBitmap(blackbitmap,x, y, true); Bitmap的绘制方法有很多,这是最简单的,用坐标进行绘制 其他常用绘制方法列举: 1>使用rect 就是先定义一个矩形,将Bitmap绘制在这个矩形范围内。 RectF rect = new RectF();//绘制范围 rect.set(x,y,x+50,y+50); canvas.drawBitmap(bitmap, null, rect,null); 需要注意的是,rect.set(float x,float y,float x2,float y2),这四个参数可以这样理解: 你所定义的矩形左上角点为(x,y)右下角点为(x2,y2) 没错,就是这样,和我们的常规理解不太一样。 2>使用Matrix进行变换: Matrix是一个功能强大的类,可以进行平移、旋转、缩放、倒影等多种变换,详情可百度,这里只做列举和一些我应用到的提示(关于旋转): 还是要定义一个Matrix // 实现图像旋转 Matrix mat = new Matrix(); Paint _mPaint = new Paint();//画笔 _mPaint.setColor(Color.WHITE);//设置画笔颜色 mat.reset(); mat.setTranslate(675,329);//图片位置,坐标 mat.preRotate(-_decDegree,(float)arrow.getWidth()/2,((float)arrow.getHeight()*4)/5); canvas.drawBitmap(arrow, mat, _mPaint); 这里需要重!点!提一下的就是.preRotate()方法!!! 表示我在实际操作中被网上的一些教程坑了,,, preRotate()中第一个参数就是你要旋转的角度,第二第三个参数可以没有,有的话用来表示旋转中心。重点就是在旋转中心这里,它使用的比不是我们下意识认为的屏幕坐标,而是相对图片本身的位置,即你要是想绕图片自身中心旋转90度就这样写: Mat.preRotate(90,(float)arrow.getWidth()/2,(float)arrow.getHeight()/2); ↑应该表示的很清楚了吧?大家那么棒我就不赘述了,。(づ ̄ 3 ̄)づ 2、有关音频加载 音频加载的两种方式大家都应该从网上找到了很多资料,MediaPlayer和SoundPool,两种都可以用,用法也没有教程上那么复杂,需要注意的就是SoundPool只能加载7秒以下音频,多了就容易出错了。 网络上关于使用MediaPlayer的用法大多提倡使用Service,它的明显优点就是前台后台互不干涉,你操作你的,并不能影响我的音乐播放←这样。但是有些需要语音剧情的情况下(原谅我并不知道其他好的解决办法,欢迎指正)还是需要MediaPlayer对一些操作作出反馈,这样的话就直接用就可以了。下面是我写的一个非常简单的继承MediaPlayer的类: /** * Created by lenovo on . */ public class opera { MediaPlayer m1; int Id; C int end=1; public opera(int id,Context c){ this.Id=//加载的音乐文件ID this.mcontext=c; } public void initmedia(){ this.m1=MediaPlayer.create(this.mcontext,this.Id); } public void playmedia(){ if(end==1){ this.m1.start(); Log.i("tag", "音乐开始播放"); } else Log.i("tag","出错"); } public void destroymedia(){ int juge=1; this.m1.setOnCompletionListener(newMediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { Log.d("tag", "播放完毕"); mp.stop(); Log.d("tag", "停止"); mp.release(); mp.reset(); Log.i("tag", "销毁成功"); } }); /* 上面这部分代码是用来判断音乐播放结束并销毁的,因为就我个人实际测试经验,MediaPlayer会自动循环你加载的音乐,而且每次循环会有一定的间隔,需要你在音乐播放结束的时候及时的终止。 */ this.end= } public void destroy(){ this.m1.release(); this.m1= Log.i("tag", "销毁"); } 它的调用: opera op1=new opera(R.raw.scene1,this); op1.initmedia(); op1.playmedia(); op1.destroymedia(); 需要注意的是,最后一定要进行销毁,不然的话你的音乐会一直运行下去。 今天就先到这里吧,,,,还有好多想要总结的都没有写出来_(:з」∠)_,有关于surfaceView,有关于触摸事件,,,,,已经熄灯了,我就洗洗睡了,明天还有课,,, 由于UP个人能力所限,能为大家提供的东西也有限,如果各位大大有什么更好的处理方法,欢迎指正~←此宣言时效永久~ 最后祝大家学业顺利~(づ ̄ 3 ̄)づ
最新教程周点击榜
微信扫一扫查看: 6986|回复: 10
公民, 积分 145, 距离下一级还需 155 积分
精华0帖子威望0 点积分145 点注册时间最后登录
用NO$Zoomer打开游戏两个屏幕就变成白色..完全无法进入游戏,是什么设置问题吗.......
骑士, 积分 2033, 距离下一级还需 967 积分
精华0帖子威望0 点积分2033 点注册时间最后登录
烧录卡名字?&&见都没见过,,,,传说中的模拟器?& &应该去EZ问,,,
公民, 积分 296, 距离下一级还需 4 积分
精华0帖子威望0 点积分296 点注册时间最后登录
no gba设置里reset/startup entrypoint 这项选择gba bios
公民, 积分 142, 距离下一级还需 158 积分
精华0帖子威望0 点积分142 点注册时间最后登录
下面是引用lph5-09-30 17:10发表的:
no gba设置里reset/startup entrypoint 这项选择gba bios
不明白,详细一点可以吗?
公民, 积分 142, 距离下一级还需 158 积分
精华0帖子威望0 点积分142 点注册时间最后登录
下面是引用lph5-09-30 17:10发表的:
no gba设置里reset/startup entrypoint 这项选择gba bios
不明白,详细一点可以吗?
公民, 积分 142, 距离下一级还需 158 积分
精华0帖子威望0 点积分142 点注册时间最后登录
下面是引用lph5-09-30 17:10发表的:
no gba设置里reset/startup entrypoint 这项选择gba bios
不明白,详细一点可以吗?
公民, 积分 296, 距离下一级还需 4 积分
精华0帖子威望0 点积分296 点注册时间最后登录
NO$Zoomer设置--nogba设置--reset/startup entrypoint --gba bios
平民, 积分 19, 距离下一级还需 81 积分
精华0帖子威望0 点积分19 点注册时间最后登录
依然还是不能行,昨天晚上已经搞了很久了
平民, 积分 33, 距离下一级还需 67 积分
精华0帖子威望0 点积分33 点注册时间最后登录
我也是一样位提不会解决
公民, 积分 277, 距离下一级还需 23 积分
精华0帖子威望0 点积分277 点注册时间最后登录
no gba设置里reset/startup entrypoint 这项选择gba bios
Powered by
扫描二维码
下载 A9VG 客户端(iOS, Android)当前位置: &>&&>& > 我的世界 v1.10疯狂的爆炸&PVE&地图下载
我的世界 v1.10疯狂的爆炸&PVE&地图
语言:多国语言游戏
开发:未知
来源:互联网
大小:0.59MB
版本:未知
累计人气:0
《我的世界 v1.10疯狂的爆炸&PVE&地图》综述
资源说明:
&这是一个PVE模式地图,boss技能各种召唤,会发射火球,喜欢pve模式的玩家不要错过。
使用方法:
1.下载地图包,然后用7z或者WINRAR解压。
2.把解压的文件拖入minecraft\saves文件夹。
地图截图:
魔兽游戏MOD我的世界 v1.10疯狂的爆炸&PVE&地图免费下载
《我的世界 v1.10疯狂的爆炸&PVE&地图》游戏攻略
《我的世界 v1.10疯狂的爆炸&PVE&地图》游戏资讯
《我的世界 v1.10疯狂的爆炸&PVE&地图 》游戏补丁
《我的世界 v1.10疯狂的爆炸&PVE&地图》相关图集
建议使用迅雷下载本站游戏。《我的世界 v1.10疯狂的爆炸&PVE&地图》下载地址
你可能喜欢的游戏
最新推荐游戏下载
热门游戏MOD游戏
&&&&类型:游戏MOD网_游戏MOD下载_单机游戏mod下载_单机mod下载评分:
别人正在下载...
中文名称:伊甸BT版英文名称:..中文名称:梦想小镇破解免费版(无限金币无限钞票)英文名称:..中文名称:全民武侠BT版英文名称:..中文名称:开拓神秘岛破解免费版英文名称:..中文名称:狂野飙车:氮气加速破解免费版(货币无限)英文名称:..