Java中View游戏开发框架
java中游戏开发引擎View比较适合被动触发的游戏,不能使用于那种对战的游戏
Game01Activity.java 这里是调用的activity
package cn.sun.syspro; import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager; public class Game01Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
//隐藏定格
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow()
.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(new Myview(this));
}
}
Myview.java
package cn.sun.syspro; import android.R.style;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View; public class Myview extends View{
/**
* 重写父类构造函数
* @param context
*/
private int x = 200,y = 200;
public Myview(Context context) {
super(context);
setFocusable(true);
// TODO Auto-generated constructor stub
}
/**
* 重写绘图函数
*/
@Override
protected void onDraw(Canvas canvas){
//创建一个画笔
Paint paint = new Paint();
//设置画笔的颜色
paint.setColor(Color.BLACK);
//绘制文本
canvas.drawRGB(250, 224, 240);
canvas.drawText("Hello Sun",this.x,this.y, paint);
super.onDraw(canvas);
}
/**
* 重写按下事件
*/
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
if(keyCode == event.KEYCODE_DPAD_UP){
this.y-=2;
}else if(keyCode == event.KEYCODE_DPAD_DOWN){
this.y+=2;
}else if(keyCode == event.KEYCODE_DPAD_LEFT){
this.x-=2;
}else if(keyCode == event.KEYCODE_DPAD_RIGHT){
this.x+=2;
}
invalidate();
return super.onKeyDown(keyCode, event);
}
/**
* 重写按键弹起事件
*/
@Override
public boolean onKeyUp(int keyCode,KeyEvent event){
if(keyCode == event.KEYCODE_DPAD_UP){
this.y-=2;
}else if(keyCode == event.KEYCODE_DPAD_DOWN){
this.y+=2;
}else if(keyCode == event.KEYCODE_DPAD_LEFT){
this.x-=2;
}else if(keyCode == event.KEYCODE_DPAD_RIGHT){
this.x+=2;
}
invalidate();
return super.onKeyUp(keyCode, event);
}
/**
* 重写触屏事件函数
*/
@Override
public boolean onTouchEvent(MotionEvent event){
int t_x = (int) event.getX();
int t_y = (int) event.getY();
if(event.getAction() == MotionEvent.ACTION_DOWN){
this.x = t_x;
this.y = t_y;
}else if(event.getAction() == MotionEvent.ACTION_MOVE){
this.x = t_x;
this.y = t_y;
}else if(event.getAction() == MotionEvent.ACTION_UP){
this.x = t_x;
this.y = t_y;
}
invalidate();
return super.onTouchEvent(event);
} }

Java中View游戏开发框架的更多相关文章
- Java中利用随机数的猜拳游戏
Java中利用随机数的猜拳游戏,实现非常简单,重难点在于随机数的产生. 首先GameJude类是用于判断输赢的一个类: package testGame; public class GameJudge ...
- IOS 2D游戏开发框架 SpriteKit
最近发现Xcode自带的2D游戏开发框架SpriteKit可以直接引入到APP中进行混合开发,这就是说可以开发出既带业务应用又带游戏的苹果APP,咋怎么觉得这是一个自己的小发现....呵呵....., ...
- Android中View和ViewGroup介绍
1. 概念Android中的View与我们以前理解的“视图”不同.在Android中,View比视图具有更广的含义,它包含了用户交互和显示,更像Windows操作系统中的window. ViewGro ...
- 怎样在Android开发中FPS游戏实现的两种方式比较
怎样在Android开发中FPS游戏实现的两种方式比较 如何用Android平台开发FPS游戏,其实现过程有哪些方法,这些方法又有哪些不同的地方呢?首先让我们先了解下什么是FPS 英文名:FPS (F ...
- Java中关于内存泄漏出现的原因以及如何避免内存泄漏
转账自:http://blog.csdn.net/wtt945482445/article/details/52483944 Java 内存分配策略 Java 程序运行时的内存分配策略有三种,分别是静 ...
- java中的23中设计模式(转)
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- Android中View绘制流程以及invalidate()等相关方法分析
[原文]http://blog.csdn.net/qinjuning 整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简 ...
- Java中MVC详解以及优缺点总结
概念: MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务数据.逻辑.界面显示分离的 ...
- java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET
java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了! 社区福利快来领取免费参加MDCC大会机会哦 Tag功能介绍—我们 ...
随机推荐
- poj 2778 DNA Sequence AC自动机
DNA Sequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11860 Accepted: 4527 Des ...
- ebook-nodej
http://www.nodebeginner.org/index-zh-cn.html https://about.pinterest.com/careers/engineering/#oFwkXf ...
- 在DJANGO的类视图中实现登陆要求和权限保护
以前接触的是基于函数的保护,网上材料比较多. 但基于类视图的很少. 补上! Decorating class-based views 装饰类视图 对于类视图的扩展并不局限于使用mixin.你也可以使用 ...
- CPU再烂,俺也支持虚拟化呀,再附送64位WINDOWS的IIS上配置支持PHP的注意事项
原来要对IIS进行降权,让他可以支持32位程式 cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/App ...
- 使用javascript获取网址的各个参数
有时也挺无奈的,为了实现一个功能,不得不用到前台获取参数.幸亏,有javascript,不然真的是坑大发了,感谢javascript的创造者.开始show大图: 属性 值href:完整的 URL ...
- ‘char *' differs in levels of indirection from 'int'
这个问题是有与和系统变量重名导致的,如 char* ans = (char*) malloc(10);系统变量是一个int.
- 【HDOJ】4612 Warm up
双连通缩点+求树的直径,图论基础题目. /* 4612 */ #pragma comment(linker, "/STACK:1024000000,1024000000") #in ...
- Google Map API 学习六-设置infoWindow的长宽
- BCTF赛后
今天早上八点,BTCF第一届落幕.虽然没有熬夜coding但还是十分开心. 从收到超哥的邀请,到回头组队,一开始的十几人,最后演化为五人的精简小分队,到昨晚把所有有想法的题目全部搞定,十分的开心和欣慰 ...
- UVA 465 (13.08.02)
Overflow Write a program that reads an expression consisting of twonon-negative integer and an ope ...