Android游戏开发教程:手教你写跳跃类游戏

  1. package jumpball.game;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.util.DisplayMetrics;
  5. import android.view.Window;
  6. import android.view.WindowManager;
  7. public class GameActivity extends Activity {
  8. GameView mView;
  9. public void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. requestWindowFeature(Window.FEATURE_NO_TITLE);// 设置无标题
  12. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  13. WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏模式
  14. //获取系统的屏幕属性
  15. DisplayMetrics dm = new DisplayMetrics();
  16. getWindowManager().getDefaultDisplay().getMetrics(dm);
  17. mView = new GameView(this, dm.widthPixels, dm.heightPixels);
  18. //应用这个布局
  19. setContentView(mView);
  20. }
  21. }
[java] view plaincopyprint?
  1. GameView.java
[java] view plaincopyprint?
  1. package jumpball.game;
  2. import android.content.Context;
  3. import android.graphics.Canvas;
  4. import android.graphics.Color;
  5. import android.graphics.Paint;
  6. import android.view.SurfaceHolder;
  7. import android.view.SurfaceView;
  8. import android.view.SurfaceHolder.Callback;
  9. //本身就是一个Runnable接口
  10. public class GameView extends SurfaceView implements Callback, Runnable {
  11. public int width, height;
  12. private Canvas mCanvas;
  13. //刷新界面线程
  14. private Thread mThread;
  15. //处理者
  16. private SurfaceHolder mSurfaceHolder;
  17. private boolean mIsRunning = false;
  18. private int TIME_IN_FRAME = 50;
  19. GameActivity gameActivity;
  20. public GameView(Context context, int width, int height) {
  21. super(context);
  22. //setFocusable(true);
  23. //activity是 context的一个子类。
  24. gameActivity = (GameActivity) context;
  25. this.width = width;
  26. this.height = height;
  27. mSurfaceHolder = getHolder();
  28. mSurfaceHolder.addCallback(this);
  29. }
  30. public void mDraw() {
  31. //设置画布的颜色
  32. mCanvas.drawColor(Color.WHITE);
  33. drawBG(mCanvas);
  34. }
  35. public void drawBG(Canvas mCanvas) {
  36. Paint mPaint = new Paint();
  37. mPaint.setColor(Color.BLACK);
  38. //设置透明度
  39. mPaint.setAlpha(50);
  40. //设置抗锯齿
  41. mPaint.setAntiAlias(true);
  42. float h = height * 0.01666667f;
  43. for (int i = 0; i < height; i += h) {
  44. mCanvas.drawLine(0, i, width, i, mPaint);
  45. }
  46. }
  47. public void surfaceChanged(SurfaceHolder holder, int format, int width,
  48. int height) {
  49. }
  50. public void surfaceCreated(SurfaceHolder holder) {
  51. mIsRunning = true;
  52. //新建一个刷屏线程
  53. mThread = new Thread(this);
  54. mThread.start();
  55. }
  56. public void surfaceDestroyed(SurfaceHolder holder) {
  57. //销毁这个,
  58. mIsRunning=false;
  59. }
  60. public void run() {
  61. //决定线程是否继续执行
  62. while (mIsRunning) {
  63. long startTime = System.currentTimeMillis();
  64. //调用mDraw进行绘制
  65. synchronized (mSurfaceHolder) {
  66. mCanvas = mSurfaceHolder.lockCanvas();
  67. mDraw();
  68. mSurfaceHolder.unlockCanvasAndPost(mCanvas);
  69. }
  70. long endTime = System.currentTimeMillis();
  71. int diffTime = (int) (endTime - startTime);
  72. while (diffTime < TIME_IN_FRAME) {
  73. diffTime = (int) (System.currentTimeMillis() - startTime);
  74. Thread.yield();
  75. }
  76. }
  77. }
  78. }

  1. 游戏介绍:这次编写的游戏是一款跳跃类游戏,类似与涂鸦跳跃。我们通过小球触碰方块,完成小球的跳跃。我们将在这一列的博客中来实现这款游戏的开发。
  2. 小小游戏,只供娱乐!!!

转载于:https://www.cnblogs.com/dc0315/archive/2013/01/06/2847063.html

Android游戏开发教程:手教你写跳跃类游戏相关推荐

  1. 平衡球游戏开发教程(四)--深入了解WP7游戏底层原理

    前面我们都只是集中在物理引擎上,但是对于一个游戏来说,他包含的不只是物理引擎,他还要有游戏面板(普通的,可以滚动的),按钮,标签,图片,背景(层次背景),边界控制,输入处理,字体和纹理管理,帧率测速器 ...

  2. 博狗教你写棋牌类游戏

    一个多人在线的棋牌游戏的网络项目临近尾声,我参与了该项目的整个设计流程,并且完成了90%的核心代码.关于这个项目,有很多地方值得聊一聊. 视频教学 零代码快速开发手机APP程序教学视频 谁都会 本系列 ...

  3. 2D平台类游戏开发教程(翻译)

    这是一篇实现2D平台类游戏的技术指导文章,原文地址:http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-pla ...

  4. 【游戏开发进阶】教你Unity通过Jenkins实现自动化打包,打包这种事情就交给策划了(保姆级教程 | 命令行打包 | 自动构建)

    文章目录 一.前言 二.Jenkins简介 三.Jenkins的下载与安装 1.JDK下载与安装 2.Jenkins下载 3.Jenkins安装 4.Jenkins初始化 四.Jenkins的基本操作 ...

  5. Android游戏开发教程汇总

    Android游戏开发教程汇总 把最近搜集到的Android游戏开发教程列出来,希望对大家有用. 1.Android2.0游戏开发实战宝典源代码,当然可能大家已经把书也买回家啦. 2.Pro.Andr ...

  6. Android 开发之手把手教你写 ButterKnife 框架(三)

    系列文章目录导读: Android开发之手把手教你写ButterKnife框架(一) Android开发之手把手教你写ButterKnife框架(二) Android开发之手把手教你写ButterKn ...

  7. 最新千锋3G学院Android游戏开发教程之数独游戏

    课程目录 千锋3G学院_Android游戏开发教程_数独_01.mp4 千锋3G学院_Android游戏开发教程_数独_02.mp4 千锋3G学院_Android游戏开发教程_数独_03.mp4 千锋 ...

  8. Unity游戏开发——新发教你做游戏(三):3种资源加载方式

    文章目录 一.前言 二.Unity的目录结构规范 1.Resources(不是很推荐把资源放这个目录) 2.RawAssets(存放生资源) 3.GameRes(存放熟资源) 4.StreamingA ...

  9. 微信小游戏开发教程-游戏实现2

    微信小游戏开发教程-游戏实现2 绘制地面 类似于绘制背景,读者自行完成代码.src/runtime/land.js 简易View系统 坐标布局对于复杂的页面来说维护相当困难,因此这里我们引入布局的概念 ...

最新文章

  1. 浅析网站SEO优化中导航优化的四大技巧!
  2. 正确理解HTML,XHTML页面的头部doctype定义
  3. 如何在线把网站html生成xml文件_快速抓取网站信息工具
  4. astype函数_从Excel到Python:最常用的36个Pandas函数!最完整的Pandas教程!
  5. Python求一个整数位数的方法
  6. MYSQL等级考试考的是Linux吗,Linux命令行下快速监控mysql
  7. 阶段3 3.SpringMVC·_06.异常处理及拦截器_5 SpringMVC拦截器之编写controller
  8. 转载 关于git的常用命令总结
  9. Ubuntu16.04 使用小米WiFi 变无线网卡
  10. 电源管理模块设计 - 线性电源和开关电源的区别
  11. 论游戏程序员的自我修养(MiloYip)
  12. one 主格 复数 宾格_(完整版)英语主格宾格及其练习题
  13. UE4拾色器的实现,使用UE4自带的SColorPicker
  14. OpenCV学习案例之车牌识别EasyPR
  15. 【记录】使用在线KMS激活Office系列
  16. Matlab建模---数据拟合
  17. java 内存模型数据结构-02
  18. 【Qt】Qt 官方下载网址
  19. 雾毒占用系统资源 代理***窃取帐号
  20. RAID技术超详细介绍(RAID大全)

热门文章

  1. 在kail下使用driftnet同时使用arpspoof伪装出现无法获取,被攻击主机图片
  2. vimplus快捷键大全
  3. 极客日报第 33 期:美团回应“大数据杀熟”;Docker开发者预览版支持M1芯片
  4. python获取浏览器Cookies作业
  5. 快上车!攻击全球电视、银行大盗火线追踪、黑客篡改支付金额,雷锋网带你闯进 SyScan 360...
  6. 自驾车旅游21条经验
  7. 如何在shell中编写mongodb的命令
  8. java代码修改服务器自动重启
  9. Python文摘:Python with Context Managers
  10. java 实现微信支付宝支付