`
380071587
  • 浏览: 445877 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

游戏开发第一节——画一个简单的图形

 
阅读更多

我们先来画一个圆吧,了解一下surfaceView的一般框架。

CircleActivity.java代码

package yy.circle;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

public class CircleActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(new Circle(this));
}

}

Circle.java代码

package yy.circle;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PaintFlagsDrawFilter;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.SurfaceHolder.Callback;

public class Circle extends SurfaceView implements Callback,Runnable {
private SurfaceHolder sfh;
private Paint paint;
private Thread thread;
private boolean flag;
private Canvas canvas;
private int screenW,screenH;
private PaintFlagsDrawFilter pfd=new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);
public Circle(Context context){
super(context);
sfh=this.getHolder();
sfh.addCallback(this);
paint=new Paint();
paint.setColor(Color.WHITE);
System.out.print("1");
setFocusable(true);
}
public void surfaceCreated(SurfaceHolder holder){
screenW=this.getWidth();
screenH=this.getHeight();
flag=true;
thread=new Thread(this);
thread.start();
}
public void myDraw(){
try{
canvas=sfh.lockCanvas();
if(canvas!=null){
canvas.setDrawFilter(pfd);
canvas.drawColor(Color.BLACK);
System.out.print("2");
canvas.drawCircle(50, 50, 50, paint);
System.out.print("3");
}
}catch(Exception e){}
finally{
if(canvas!=null){
sfh.unlockCanvasAndPost(canvas);
}
}
}
public boolean onTouchEvent(MotionEvent event){
return true;
}
public boolean onKeyDown(int keyCode,KeyEvent event){
return super.onKeyDown(keyCode, event);
}
public void logic(){}
public void run(){
while(flag){
long start=System.currentTimeMillis();
myDraw();
logic();
long end=System.currentTimeMillis();
try{
if(end-start<50){
Thread.sleep(50-(end-start));
}
}catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){}
public void surfaceDestroyed(SurfaceHolder holder){
flag=false;
}

}

分享到:
评论

相关推荐

    3D游戏卷2:动画与高级实时渲染技术——1

     本书从实践的角度出发,详细介绍3D游戏开发的高级技术,并具体描述了一个游戏引擎的构建过程。全书着重讨论三个主题:游戏开发的一般过程;实时渲染过程;角色动画。所有主题均围绕一个具体的游戏开发系统Fly3D ...

    3D数学基础 图形与游戏开发

    内容简介:《3D数学基础:图形与游戏开发》专业培训机构指定教学参考书,多家游戏开发企业共同推荐,游戏业界,探索游戏开发背后的核心秘密。《3D数学基础:图形与游戏开发》主要介绍了基本的3D数学概念,这对电脑...

    3D游戏卷2:动画与高级实时渲染技术——2

     本书从实践的角度出发,详细介绍3D游戏开发的高级技术,并具体描述了一个游戏引擎的构建过程。全书着重讨论三个主题:游戏开发的一般过程;实时渲染过程;角色动画。所有主题均围绕一个具体的游戏开发系统Fly3D ...

    嵌入式设计及linux驱动开发指南——基于ARM9处理器.pdf

    第1章 嵌入式系统基础. 1.1 嵌入式系统简介 1.1.1 嵌入式系统定义 1.1.2 嵌入式系统与PC 1.1.3 嵌入式系统的特点 1.2 嵌入式系统的发展 1.2.1 嵌入式系统现状 1.2.2 嵌入式系统发展趋势 1.3 嵌入式操作系统...

    Java.Swing图形界面开发与案例详解.王鹏等——第1章和第2章

    这本书里面第1章和第2章的例子和练习题代码,对于学习者,还是有点帮助吧

    3D数学基础:图形与游戏开发(英文原版)

    《3D数学基础:图形与游戏开发》一书的英文原版电子档,高清,绝对不是扫描版,配有详细的书签,可用来与中文版互查使用,最后配上中文版的目录以供大家参考下载 第1章 简介 1.1 什么是3D数学 1.2 为什么选择本书 ...

    一款超强的图形系统——VC源码

    它不象许多图形软件只能设计简单的组合图形,也不象许多软件必须提供插件才能实现个别复杂的图形,它的基本图形元素虽然只有三种(字、形、线),却能够通过嵌套技术、脚本技术像变魔术般生成无穷无尽的万千图库,...

    《Python编程案例教程》(刘庆)666-9课件-第13章-游戏开发.pptx

    Python编程案例教程 《Python编程案例教程》(刘庆)666-9课件-第13章--游戏开发全文共41页,当前为第1页。 本章导读 在Python中实现游戏开发,首选必然是pygame。pygame是一组功能强大且有趣的模块,可用于管理图形、...

    C#GDI+图形程序设计源码

    第1章 GDI+ ——下一代图形接口 1.1 理解GDI+ 1.2 探索GDI+ 的功能 1.3 从GDI的角度学习GDI+ 1.4 .NET中的GDI+ 名称空间和类 总结 第2章 第一个GDI+ 应用程序 2.1 绘制表面 2.2 坐标系统 2.3 指南——第一...

    图形用户界面.docx

    1) 创建一个简单的JFrame,使用不同的颜色、线条绘制各种形状,使用不同的字体、颜色绘制字符串,使用最简单的监听器ActionListener对JButton的点击事件编程; 2)使用鼠标事件进行绘图; 3)使用边缘布局管理器和...

    C#视频游戏开发系列课程(1)

    推荐指数: 视频游戏开发系列课程(2):基础编程概念及C#简介 (Level 100) 讲 师:俞晖 微软(中国)有限公司开发和平台技术部 Online Program Manager 课程简介:在第一节课...

    android开发揭秘PDF

    2.3 创建第一个Android项目——HeUoAndroid 2.3.1 创建HelloAndroid项目 2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 ...

    CC6开发应用教材基础篇

    第一节 简单造型 20 一、 Box 20 二、 Cube 20 三、 Sphere 20 四、 Cylinder 21 五、 Cone 21 第二节 复杂造型 22 一、 文本造型 22 二、 轮廓挤出节点 25 第三节 通用造型 25 一、 PointSet点集 25 二、 ...

    从入门到精通HTML5——PDF——网盘链接

     1.4 编写第一个HTML文件 8  1.4.1 HTML文件的编写方法 8  1.4.2 手工编写页面 9  1.4.3 使用可视化软件制作页面 10  1.4.4 使用浏览器浏览HTML文件 14  1.4.5 使用HTML开发的明日图书网 14  1.5 小结 15  ...

    一款超强的图形系统——Delphi源码Delphi-source-VG7.23

    它不象许多图形软件只能设计简单的组合图形,也不象许多软件必须提供插件才能实现个别复杂的图形,它的基本图形元素虽然只有三种(字、形、线),却能够通过嵌套技术、脚本技术像变魔术般生成无穷无尽的万千图库,...

    嵌入式设计及linux驱动开发指南——基于ARM.

    第一章:嵌入式系统基础;第二章:基于ARM9处理器的硬件开发平台;第三章:调试嵌入式系统程序;第四章:创建嵌入式系统开发环境;第五章:Bootloader;第六章:linux系统在ARM平台的移植;第七章:linux设备驱动...

Global site tag (gtag.js) - Google Analytics