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功能介绍—我们 ...
随机推荐
- ios7新特性3-Map Kit新特性
Map Kit 框架 (MapKit.framework) 包含了大量的改进以及为基于地图的程序提供了新特性.利用地图显示位置信息的应用现在可以使用Maps这个程序用到的3D地图,包括控制程序控制视线 ...
- NWERC 2012 Problem I Idol
又是个2-sat的模板题: 反正评委的选择必须有一个是正确的,1错误,那么2就必须正确: 这就是一个2-sat问题. 直接上白书的模板啊,不过稍微要注意的一点是对于第一个点必须要选择,不然就违反了题意 ...
- PHP 7 探针的安装与测试
首先,这是一篇软文,没错!就是一篇软文.因为我知道「PHP 是世界上最好的语言」,所以我相信很多人愿意读这篇用户帮忙写的软文,因为这篇软文应该能帮助 PHP 开发的同学一点小忙.我们是一家成立了7年的 ...
- Spring 4 and MyBatis Java Config
TL;DR With the Java Config enhancements in Spring 4, you no longer need xml to configure MyBatis for ...
- 精确到时分秒的jQuery插件例子
demo.html: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q ...
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 警告: [SetPro ...
- poj 2484 A Funny Game(博弈)
A Funny Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4639 Accepted: 2855 Desc ...
- 在Openstack H版部署Nova Cell 时 ,终端输入nova service-list 和 nova host-list 命令将报错
关于Cell的基本介绍,可以参考贤哥的一篇文章: [OpenStack]G版中关于Nova的Cell http://blog.csdn.net/lynn_kong/article/details/8 ...
- ural 1333 化平面为点计算覆盖率
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1333 #include<cstdio> #include<cstrin ...
- 10个经典的 Java main 方法面试题
以下是笔者认为比较经典的关于Java main方法的面试题,与其说是Java面试题,其实也是Java的一些最基础知识问题,分享给大家,如有错误,请指出. 1.不用main方法如何定义一个类? 不行,没 ...