.graphics抽取
通过前的介绍应该对游戏的总体结构有所了解了。这里再多说点:
就是绘制的时候需要Canvas 和Paint。这样传递函数不方便也是的绘制的方式复杂化。不利于为何和使用引擎。
这个时候我们可以将绘制的具体操作抽象出来。用一个单独的对象来管理。如下:
复制代码import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
public class GameGraphics {
//使用单件
private final static GameGraphics instance = new GameGraphics();
private GameGraphics(){}
private Canvas m_canvas = null;//画布
private Paint m_paint = null;//画笔
private Context m_context = null;//context对象
public static GameGraphics Instance()
{
return instance;
}
public void setContext(Context context)
{
m_context = context;
}
//初始化
public void init(Canvas canvas,Paint paint)
{
m_canvas = canvas;
m_paint = paint;
}
public Bitmap getBitmap(int resid)
{
return ((BitmapDrawable)m_context.getResources().getDrawable(resid)).getBitmap();
}
//绘制字符串。这个时候不不再需要canvas了。因为游戏一般只会有一个canvas就够了
//m_canvas就是当先画布的引用
public void draw(String text,int x,int y,Paint paint)
{
m_canvas.drawText(text,x,y,paint);
}
public void draw(String text,int x,int y)
{
m_canvas.drawText(text,x,y,m_paint);
}
public void draw(Rect rect,int color)
{
int colortmp = m_paint.getColor();
m_paint.setColor(color);
m_canvas.drawRect(rect, m_paint);
m_paint.setColor(colortmp);
}
public void draw(RectF rect,int color)
{
int colortmp = m_paint.getColor();
m_paint.setColor(color);
m_canvas.drawRect(rect, m_paint);
m_paint.setColor(colortmp);
}
public void draw(Bitmap bitmap,int x,int y)
{
m_canvas.drawBitmap(bitmap, x, y, m_paint);
}
public void draw(Bitmap bitmap,Rect src,Rect dst)
{
m_canvas.drawBitmap(bitmap, src, dst, m_paint);
}
public void draw(Bitmap bitmap,Rect src,RectF dst)
{
m_canvas.drawBitmap(bitmap, src, dst, m_paint);
}
}
复制代码
这个时候可以将tile和menubutton的操作代替了。
这个就是有个体会。就是向GameGraphics发送挥着命令就行了。具体游戏逻辑处理需要代码。
这个GameGraphics就可以做绘制部分的引擎初步。是结构的初步。就是把某些系统相关的实用一个类型进行隔离开,。
这样无论我们实用什么引擎只要实现一线GameGraphics的几个绘制函数就可以直接实用了。甚至能很快的换成opgl es的方式。因为游戏只向GameGraphics发送请求,
嘿嘿。就先到这里吧。
希望浅薄的分析对大家有点用。对游戏有个大概的认识。欢迎回帖交流。低于50字的免回。谢谢
原文地址:http://www.cmd100.com/bbs/thread-7027-1-3.html
另外附上邀请码
分享到:
相关推荐
标题中的“intel-graphics-update-tool_2.0.2.zip”指的是Intel图形更新工具的2.0.2版本的压缩包文件。这个工具是专为Linux用户设计的,旨在简化Intel显卡驱动程序的更新过程。它允许用户自动检查并安装最新的驱动...
赠送jar包:xmlgraphics-commons-2.1.jar; 赠送原API文档:xmlgraphics-commons-2.1-javadoc.jar; 赠送源代码:xmlgraphics-commons-2.1-sources.jar; 赠送Maven依赖信息文件:xmlgraphics-commons-2.1.pom; ...
赠送jar包:xmlgraphics-commons-2.1.jar; 赠送原API文档:xmlgraphics-commons-2.1-javadoc.jar; 赠送源代码:xmlgraphics-commons-2.1-sources.jar; 赠送Maven依赖信息文件:xmlgraphics-commons-2.1.pom; ...
intel-linux-graphics-installer_1.1.0-0intel1_i386.deb
xmlgraphics-commons-2.6.jar
【图形编程与Go语言结合:深入理解“graphics-go”库】 在编程领域,图形处理是一项重要的技术,尤其在游戏开发、数据可视化、UI设计等方面。Go语言,由于其高效的性能和简洁的语法,逐渐成为开发者的热门选择。...
标题中的“Intel-UHD-Graphics-630-Driver_Win7x64_21.20.16.4839.rar”表明这是一个针对Intel UHD Graphics 630显卡的驱动程序,适用于Windows 7 64位操作系统。版本号21.20.16.4839显示这是驱动的一个特定更新,...
总的来说,通过学习这个"JAVA游戏编程之二----j2me MIDlet 手机游戏入门开发--贪吃蛇"项目,你可以掌握到J2ME基础,包括MIDlet的生命周期管理、图形绘制、事件处理、动画制作以及简单的游戏逻辑。这个过程不仅可以...
官方离线安装包,亲测可用
canvas绘制基础图形(canvas 气泡框 网格线 三角形 圆角矩形 箭头)1.初始化画布 initCanvas * 2.绘制网格线 drawGridlines * 3.绘制圆点 drawDot * 4.绘制圆环 drawRing
PC设计软件:Mentor Graphics PADS二次开发_PADS二次开发案例分析与实战.docx PC设计软件:Mentor Graphics PADS二次开发_PADS开发中的常见问题与解决方案.docx PC设计软件:Mentor Graphics PADS二次开发_PADS开发...
xmlgraphics-commons-1.5.jar
在Ubuntu系统中,当用户遇到"The system is running in low-graphics mode"的错误提示时,意味着系统无法正确加载图形界面,通常与显卡驱动程序有关。这个问题可能是由于多种原因引起的,比如驱动程序损坏、更新失败...
很抱歉,但根据您给出的信息,"degrees-of-lewdity-graphics-mod-master.zip"似乎与IT行业的专业知识点关联性不强。通常,这样的文件名可能指的是游戏模组或图形修改资源,这更多属于游戏开发或者娱乐领域,而非传统...
在iOS平台上,开发一款游戏时,为用户提供一个良好的游戏体验是非常关键的。"iPhone开发--游戏手柄"这个主题主要关注如何在iPhone游戏中实现类似传统游戏机手柄的功能,让玩家能够通过触摸屏幕来控制游戏人物或物体...
该资源"practical-wpf-charts-graphics-master.rar"包含了这本书的源代码,为读者提供了丰富的实践案例和深入理解WPF图表及图形编程的宝贵材料。 WPF(Windows Presentation Foundation)是.NET Framework的一部分...
本文将深入探讨Graphics32-1-9-0的特性、使用方法以及在实际开发中的应用。 首先,Graphics32是一个开源项目,这意味着开发人员可以自由地查看、修改和分发源代码,这不仅增加了透明度,也鼓励了社区的参与和持续...
总的来说,"pubg-graphics-unlocker"的源码为我们揭示了游戏优化工具的底层工作原理,涉及到的编程技术包括内存操作、进程注入、API钩子等,对于学习游戏开发、逆向工程和系统编程的学生或爱好者来说,这是一个宝贵...
官方离线安装包,亲测可用