安卓游戏开发一(超级玛丽)
超级玛丽(1)
前言:想做安卓游戏开发,首先你需要先掌握一些安卓的基础知识,然后学会使用surfaceview绘制一些简单的bitmap,学会了这些,你就具备了游戏开发的最基本条件。本文主要适合一些对surfaceview有一定了解的朋友,整个游戏都是使用android的原生代码编写,未使用第三方的任何东西,属于作者我原创,希望读者朋友尊重原创。
先上视频链接:游戏效果视频
github地址(三个完整项目):https://github.com/nihuoLT/myGameRepository.git
里面还有其它俩个游戏,博主将他们开源,只是为了在成都找个工作,有公司的大佬看到,觉得博主适合您公司的职位或则对Android2d游戏开发有兴趣的朋友
都可以联系博主,至于游戏效果是不是我说的这么好,大家,下载看看就知道了
废话不多说,今天我们先把马里奥的移动做出来。首先定义一个接口类GameInterFace.java:
package com.example.newgame_1;import android.graphics.Bitmap;public interface GameInterFace {int getX();int getY();int getWidth();int getHeight();Bitmap getBitmap();
}
然后定义我们的马里奥类Maliao.java让它实现接口,然后写它的构造方法:
public JumpTest(int x,int y,GameView gameView){this.gameView=gameView;//拿到主Surfaceviewthis.source=BitmapFactory.decodeStream(gameView.getResources().openRawResource(R.drawable.allmali));//获取马里奥的图片this.dead=BitmapFactory.decodeStream(gameView.getResources().openRawResource(R.drawable.mario13));//获取马里奥死亡图片this.x=x;this.width=source.getWidth()/6;this.height=source.getHeight();this.cache=Bitmap.createBitmap(width, height, Config.ARGB_8888);//创建缓存图片this.y=y-height;this.speed=20;sprites.add(Bitmap.createBitmap(source,0,0,width-2,height));//切割图片sprites.add(Bitmap.createBitmap(source,width,0,width,height));sprites.add(Bitmap.createBitmap(source,width*2,0,width,height));sprites.add(Bitmap.createBitmap(source,width*3+1,0,width-1,height));sprites.add(Bitmap.createBitmap(source,width*4,0,width,height));sprites.add(Bitmap.createBitmap(source,width*5,0,width,height));}
然后在getBitmap方法里这样写:
public Bitmap getBitmap(){
if(IsMove){//是否移动标志
bitmap=sprites.get(index);//这里实现帧动画if(count==5){//每5秒切换一帧index++;if(index==size){index=first;}count=0;}count++;if(XdirectionFlag){//移动方向标志if(x<=gameView.ScreenWidth-width)x+=5;}else{if(x>0)x-=5;}
}else{if(XdirectionFlag){//没有移动时切换为相应方向的帧
bitmap=sprites.get(0);}else{
bitmap=sprites.get(3);}
}return bitmap;
}
在Activity中左右按钮控制方向:
public boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:
switch (v.getId()) {
case R.id.left:
gameView.jumpTest.IsMove=true;
gameView.jumpTest.XdirectionFlag=false;
gameView.jumpTest.first=2; gameView.jumpTest.index=gameView.jumpTest.first; gameView.jumpTest.size=4; left.setBackgroundResource(R.drawable.zuo_r);
break;case R.id.right: gameView.jumpTest.IsMove=true; gameView.jumpTest.XdirectionFlag=true; gameView.jumpTest.first=0; gameView.jumpTest.index=gameView.jumpTest.first; gameView.jumpTest.size=2; right.setBackgroundResource(R.drawable.you_r);
break; }
break;
case MotionEvent.ACTION_UP:switch (v.getId()) {
case R.id.left:
eft.setBackgroundResource(R.drawable.zuo_b);
gameView.jumpTest.IsMove=false;
break;case R.id.right: right.setBackgroundResource(R.drawable.you_b); gameView.jumpTest.IsMove=false;
break:}
break;}return true;
}
最后在surfaceview里绘制出来:
for(GameInterFace gameInterFace:(List<GameInterFace>)mys.clone()){c.drawBitmap(gameInterFace.getBitmap(), gameInterFace.getX(),gameInterFace.getY(), paint);
}
今天就先讲到这里下面是效果图:
安卓游戏开发一(超级玛丽)相关推荐
- Unity安卓游戏开发:打造7款2D 3D游戏 Unity Android Game Development : Build 7 2D 3D Games
流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确) |大小:15.4 GB |时长:32h 55m Un ...
- 安卓游戏开发推箱子_保持冷静并砍箱子-开发
安卓游戏开发推箱子 Hack The Box (HTB) is an online platform allowing you to test your penetration testing ski ...
- UDI Tegra K1 SOC安卓游戏开发板测评
UDI Tegra K1 SOC安卓游戏开发板测评 据我所知,优地科技的这款开发板是业内首款基于NVIDIA 的Tegra K1主芯片的安卓嵌入式高性能计算开发板,它的强大之处,可能只有亲自体验才能真 ...
- 【安卓游戏开发】植物大战僵尸 cocos2d-android 源码
TUNMPVZ 植物大战僵尸安卓版 cocos2d-Android 植物大战僵尸 学院课程设计<android游戏开发>的期末作业项目. 应该是不会继续更新了,有兴趣的可以继续拓展. 项目 ...
- Java游戏开发《超级玛丽》附课件+源码+资料
<超级玛丽>这款游戏想必大家都玩过,在市面上五花八门的游戏我们眼花缭乱,但是都无法与童年的记忆相比较,经典版的超级玛丽小编觉得是我们00后的童年回忆. 在你的童年记忆里,是否有一个会蹦跳, ...
- 安卓游戏开发用什么引擎_游戏开发学习第一天————用什么软件
今天开始了虚幻学习的第一天! 好的,那我们就开始学习做游戏吧! 始学习做游戏吧 学习做游戏吧 习做游戏吧 做游戏吧 游戏吧 戏吧 吧 等等,要学做游戏啊...... 第一步要做什么,我还完全不知道啊喂 ...
- 安卓游戏开发,导入某个角色或者物体后,整个游戏变得非常卡
前言 这个是我自己遇到的问题,由于本人是个菜鸟,对于Unity了解还不够深,所以也是只能自己一步一步的寻找并解决问题.今天我搭建完游戏的环境和建筑后,打算新增一个游戏角色,但是当我把角色的Prefab ...
- 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇
马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...
- 游戏开发、安卓、IOS知识概括
游戏开发与安卓知识概括 游戏开发 安卓 IOS 游戏开发 简述: 使用unreal引擎(虚幻引擎)开发则使用c++语言编程. 使用unity引擎开发则使用c#语言编程. 因此第一步需要将c++或者c# ...
最新文章
- vscode怎么设置默认浏览器?(不成功)
- php怎么根据接口文档实现功能,CodeIgniter+swagger实现 PHP API接口文档自动生成功能...
- Wannafly挑战赛18C 异或和
- 世界不是gameBoy
- 锋利的jQuery--jQuery与DOM对象的互相转换,DOM的三种操作(读书笔记一)
- 搞了这么久的产品,终于看清了真相
- RecycleView添加HeaderView和FooterView
- [other] 代码量代码复杂度统计-lizard
- [编程题] 被3整除
- hashmap删除指定key_Java集合:HashMap底层实现和原理(源码解析)
- 审计工作存在的难点和问题_审计工作中存在的问题及解决办法
- OrthoFinder 进行直系同源基因分析教程
- P1195 口袋的天空
- python读取eml文件并用正则匹配邮箱
- Oracle SQL 批量修改资料库邮箱后缀名称
- 关于示波器探头的输入容抗问题解决
- 人工智能的落地及未来的发展
- bsearch()快搜函数
- Nature Aging | 复旦大学冯建峰/程炜揭示每晚睡7小时刚刚好,睡过多或过少都有损大脑和心理健康...
- JDK8 ThreadLocal 源码解析与最佳实践
热门文章
- 量子计算机 儿童画,星汉璀璨只见你
- JavaScript实现逆波兰式
- 代码详解设计模式--中介者模式
- 我们距离实现通用人工智能还有多远?
- 计算机上的放大快捷键,电脑放大镜热键 怎么取消电脑放大镜快捷键?
- Day.js —— 一个轻量型的日期时间库 moment 的完美代替品
- 能测试护肤品成分的软件,查化妆品成分的app
- 【win7黑屏终结者】win7电脑登录账户后黑屏(只有鼠标箭头)问题
- 香港大学计算机视觉识别教授排名,北京师范大学香港浸会大学联合国际学院四位教师的课题喜获国家自然科学基金资助...
- 信息论与编码_从信息论谈数字孪生系统的大行其道