Android游戏开发教程:手教你写跳跃类游戏
- package jumpball.game;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.DisplayMetrics;
- import android.view.Window;
- import android.view.WindowManager;
- public class GameActivity extends Activity {
- GameView mView;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);// 设置无标题
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏模式
- //获取系统的屏幕属性
- DisplayMetrics dm = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(dm);
- mView = new GameView(this, dm.widthPixels, dm.heightPixels);
- //应用这个布局
- setContentView(mView);
- }
- }
- GameView.java
- package jumpball.game;
- import android.content.Context;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.view.SurfaceHolder;
- import android.view.SurfaceView;
- import android.view.SurfaceHolder.Callback;
- //本身就是一个Runnable接口
- public class GameView extends SurfaceView implements Callback, Runnable {
- public int width, height;
- private Canvas mCanvas;
- //刷新界面线程
- private Thread mThread;
- //处理者
- private SurfaceHolder mSurfaceHolder;
- private boolean mIsRunning = false;
- private int TIME_IN_FRAME = 50;
- GameActivity gameActivity;
- public GameView(Context context, int width, int height) {
- super(context);
- //setFocusable(true);
- //activity是 context的一个子类。
- gameActivity = (GameActivity) context;
- this.width = width;
- this.height = height;
- mSurfaceHolder = getHolder();
- mSurfaceHolder.addCallback(this);
- }
- public void mDraw() {
- //设置画布的颜色
- mCanvas.drawColor(Color.WHITE);
- drawBG(mCanvas);
- }
- public void drawBG(Canvas mCanvas) {
- Paint mPaint = new Paint();
- mPaint.setColor(Color.BLACK);
- //设置透明度
- mPaint.setAlpha(50);
- //设置抗锯齿
- mPaint.setAntiAlias(true);
- float h = height * 0.01666667f;
- for (int i = 0; i < height; i += h) {
- mCanvas.drawLine(0, i, width, i, mPaint);
- }
- }
- public void surfaceChanged(SurfaceHolder holder, int format, int width,
- int height) {
- }
- public void surfaceCreated(SurfaceHolder holder) {
- mIsRunning = true;
- //新建一个刷屏线程
- mThread = new Thread(this);
- mThread.start();
- }
- public void surfaceDestroyed(SurfaceHolder holder) {
- //销毁这个,
- mIsRunning=false;
- }
- public void run() {
- //决定线程是否继续执行
- while (mIsRunning) {
- long startTime = System.currentTimeMillis();
- //调用mDraw进行绘制
- synchronized (mSurfaceHolder) {
- mCanvas = mSurfaceHolder.lockCanvas();
- mDraw();
- mSurfaceHolder.unlockCanvasAndPost(mCanvas);
- }
- long endTime = System.currentTimeMillis();
- int diffTime = (int) (endTime - startTime);
- while (diffTime < TIME_IN_FRAME) {
- diffTime = (int) (System.currentTimeMillis() - startTime);
- Thread.yield();
- }
- }
- }
- }
- 游戏介绍:这次编写的游戏是一款跳跃类游戏,类似与涂鸦跳跃。我们通过小球触碰方块,完成小球的跳跃。我们将在这一列的博客中来实现这款游戏的开发。
- 小小游戏,只供娱乐!!!
转载于:https://www.cnblogs.com/dc0315/archive/2013/01/06/2847063.html
Android游戏开发教程:手教你写跳跃类游戏相关推荐
- 平衡球游戏开发教程(四)--深入了解WP7游戏底层原理
前面我们都只是集中在物理引擎上,但是对于一个游戏来说,他包含的不只是物理引擎,他还要有游戏面板(普通的,可以滚动的),按钮,标签,图片,背景(层次背景),边界控制,输入处理,字体和纹理管理,帧率测速器 ...
- 博狗教你写棋牌类游戏
一个多人在线的棋牌游戏的网络项目临近尾声,我参与了该项目的整个设计流程,并且完成了90%的核心代码.关于这个项目,有很多地方值得聊一聊. 视频教学 零代码快速开发手机APP程序教学视频 谁都会 本系列 ...
- 2D平台类游戏开发教程(翻译)
这是一篇实现2D平台类游戏的技术指导文章,原文地址:http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-pla ...
- 【游戏开发进阶】教你Unity通过Jenkins实现自动化打包,打包这种事情就交给策划了(保姆级教程 | 命令行打包 | 自动构建)
文章目录 一.前言 二.Jenkins简介 三.Jenkins的下载与安装 1.JDK下载与安装 2.Jenkins下载 3.Jenkins安装 4.Jenkins初始化 四.Jenkins的基本操作 ...
- Android游戏开发教程汇总
Android游戏开发教程汇总 把最近搜集到的Android游戏开发教程列出来,希望对大家有用. 1.Android2.0游戏开发实战宝典源代码,当然可能大家已经把书也买回家啦. 2.Pro.Andr ...
- Android 开发之手把手教你写 ButterKnife 框架(三)
系列文章目录导读: Android开发之手把手教你写ButterKnife框架(一) Android开发之手把手教你写ButterKnife框架(二) Android开发之手把手教你写ButterKn ...
- 最新千锋3G学院Android游戏开发教程之数独游戏
课程目录 千锋3G学院_Android游戏开发教程_数独_01.mp4 千锋3G学院_Android游戏开发教程_数独_02.mp4 千锋3G学院_Android游戏开发教程_数独_03.mp4 千锋 ...
- Unity游戏开发——新发教你做游戏(三):3种资源加载方式
文章目录 一.前言 二.Unity的目录结构规范 1.Resources(不是很推荐把资源放这个目录) 2.RawAssets(存放生资源) 3.GameRes(存放熟资源) 4.StreamingA ...
- 微信小游戏开发教程-游戏实现2
微信小游戏开发教程-游戏实现2 绘制地面 类似于绘制背景,读者自行完成代码.src/runtime/land.js 简易View系统 坐标布局对于复杂的页面来说维护相当困难,因此这里我们引入布局的概念 ...
最新文章
- 浅析网站SEO优化中导航优化的四大技巧!
- 正确理解HTML,XHTML页面的头部doctype定义
- 如何在线把网站html生成xml文件_快速抓取网站信息工具
- astype函数_从Excel到Python:最常用的36个Pandas函数!最完整的Pandas教程!
- Python求一个整数位数的方法
- MYSQL等级考试考的是Linux吗,Linux命令行下快速监控mysql
- 阶段3 3.SpringMVC·_06.异常处理及拦截器_5 SpringMVC拦截器之编写controller
- 转载 关于git的常用命令总结
- Ubuntu16.04 使用小米WiFi 变无线网卡
- 电源管理模块设计 - 线性电源和开关电源的区别
- 论游戏程序员的自我修养(MiloYip)
- one 主格 复数 宾格_(完整版)英语主格宾格及其练习题
- UE4拾色器的实现,使用UE4自带的SColorPicker
- OpenCV学习案例之车牌识别EasyPR
- 【记录】使用在线KMS激活Office系列
- Matlab建模---数据拟合
- java 内存模型数据结构-02
- 【Qt】Qt 官方下载网址
- 雾毒占用系统资源 代理***窃取帐号
- RAID技术超详细介绍(RAID大全)
热门文章
- 在kail下使用driftnet同时使用arpspoof伪装出现无法获取,被攻击主机图片
- vimplus快捷键大全
- 极客日报第 33 期:美团回应“大数据杀熟”;Docker开发者预览版支持M1芯片
- python获取浏览器Cookies作业
- 快上车!攻击全球电视、银行大盗火线追踪、黑客篡改支付金额,雷锋网带你闯进 SyScan 360...
- 自驾车旅游21条经验
- 如何在shell中编写mongodb的命令
- java代码修改服务器自动重启
- Python文摘:Python with Context Managers
- java 实现微信支付宝支付