自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

廖雪峰的Blog

==> www.liaoxuefeng.com

  • 博客(32)
  • 问答 (1)
  • 收藏
  • 关注

原创 官方网站正式上线!

请访问www.liaoxuefeng.com!

2013-04-27 12:01:59 11966

原创 你决不可错过的JavaScript全栈教程

这是小白的零基础JavaScript全栈教程,具有如下特点:是JavaScript全栈教程!可以在线免费学习!可以在线编写JavaScript代码并直接运行!不要再犹豫了,立刻从现在开始,零基础迈向全栈开发工程师!

2015-07-21 13:21:58 10677 4

原创 史上最浅显易懂的Git教程!

从零起步的Git教程,让你无痛苦上手世界上最流行的分布式版本控制系统Git!既然号称史上最浅显易懂的Git教程,那这个教程有什么让你怦然心动的特点呢?首先,本教程绝对面向初学者,没有接触过版本控制概念的读者也可以轻松入门,不必担心起步难度;其次,本教程实用性超强,边学边练,一点也不觉得枯燥。而且,你所学的Git命令是“充分且必要”的,掌握了这些东西,你就可以通过Git轻松地完成你的工作。

2013-08-21 07:19:35 51059 3

我的官方网站正式上线!欢迎访问!

经过一个月的准备,我的官方网站 http://www.liaoxuefeng.com 正式上线了!欢迎大家访问!请参照首页右侧说明更新RSS订阅地址,谢谢! 新的网站采用ExpressMe CMS系统搭建,目前内测中,无需注册,请使用您的Google帐号(就是GMail帐号)或者Yahoo ID(就是Yahoo邮箱帐号,注意是@yahoo.com而非@yahoo.com.cn)直接登录!登...

2009-07-14 22:26:29 612

原创 祝贺《Spring 2.0核心技术与最佳实践》入选2007十大技术图书!

祝贺《Spring 2.0核心技术与最佳实践》入选2007十大技术图书!

2008-01-27 19:28:00 7596 1

新书上市《Spring 2.0核心技术与最佳实践》

新书终于上市了!《Spring 2.0核心技术与最佳实践》一书由浅入深,详细介绍了Spring 2.0框架的几乎全部内容,并重点突出2.0版本的新特性,是一本注重实践而又深入理论的书,力图为读者展示如何应用Spring 2.0框架创建灵活高效的J2EE应用程序,并提供了一个真正可直接部署的完整的Web应用——Live在线书店http://www.livebookstore.net,读者可以从中...

2007-07-09 11:21:00 185

原创 使用MIDP2.0开发游戏 (7) 设计Scheduler

Scheduler负责以固定的频率执行每一帧,所需的时钟由Clock提供,Scheduler还可以计算每帧所需时间和CPU占用率,以便可能的话动态调整任务。以下的Scheduler的实现参考自Marshall "Game Programming Gems 3"中的C++代码:package game.engine.core;public class Scheduler {   

2004-09-20 22:39:00 3611 10

原创 使用MIDP2.0开发游戏 (6) 设计Clock

Clock负责提供一个真实时间和一个虚拟时间,真实时间从0开始按ms递增,和硬件时钟是同步的;虚拟时间也从0开始按ms递增,但不一定和真实时间同步。要获得系统时间可以用System.currentTimeMillies(),系统硬件有一个计数器,当计算机启动时,计数器从0开始每1ms加1,System.currentTimeMillies()返回从开机到现在经过的ms。我们不需要知道时分秒,只

2004-09-19 15:56:00 4021 2

原创 使用MIDP2.0开发游戏 (5) 游戏内核

我们准备开始设计游戏内核。通常,游戏和桌面Windows程序不同(扫雷等桌面游戏除外),它不能依赖消息驱动,因为游戏通常只有一个画面,而且需要高速更新。因此,游戏只能靠时钟驱动。大部分游戏都在一个时钟驱动下定时渲染一帧画面。此外,游戏需要接收用户输入,处理游戏事件(比如碰撞检测等),可能还需要AI计算,这些任务都必须巧妙地在两幅画面切换的时间段里处理完毕,因此,一个高效而灵活的调度器就是游戏进

2004-09-18 23:24:00 3556

原创 使用MIDP2.0开发游戏 (4) 改进的地图生成方式

上次我们用Sprite实现了背景,但是这样不便于通过地图数据生成地图。通常,游戏中的地图都被分成NxN的方格,一般仅有几种图案。幸运的是,SUN在MIDP 2.0已经考虑到了游戏开发者需要的这个功能,TiledLayer便是通过贴图实现的层,它的使用同样异常简单!首先准备好我们需要的小块区域,在坦克大战的地图中,一共有下面5种: (注意这是放大的jpg格式,你需要处理成40x8的png

2004-09-03 20:50:00 3981 24

原创 使用MIDP2.0开发游戏 (3) 添加背景和前景

上次我们已经让坦克动起来了,现在我们准备给游戏添加背景和前景。上次讨论了用Sprite实现动画,其实背景和前景也是用Sprite实现的,我们准备一幅背景和一幅前景图片:   注意背景可以不透明,但前景一定要处理成透明的png格式(以上均为jpg截图,请自行用Photoshop等转换)。修改TankGameCanvas如下:public class TankGameCan

2004-08-31 21:09:00 4153 6

原创 使用MIDP2.0开发游戏 (2) 使用Sprite

Sprite,精灵,顾名思义,专用来代表游戏中的动画角色,比如飞机,坦克等等。在MIDP1.0中,我们必须自己写专门的类来实现Sprite,幸运的是,MIDP2.0为Sprite提供了强力支持,可以创建静态,动态,不透明和透明的Sprite,下面我们准备在上次的GameCanvas基础上添加一个Sprite并让它动起来。Sprite的主要构造方法有:Sprite(Image):构造一个单幅

2004-08-27 19:38:00 8156 9

原创 使用MIDP2.0开发游戏 (1) GameCanvas基础

MIDP2.0提供了对游戏的强有力支持,通过javax.microedition.lcdui.game包,原来在MIDP1.0中很多需要自己写的功能现在都被当作标准API实现了,包括GameCanvas,Sprite,Layer等等。我们将使用MIDP2.0编写一个坦克大战的手机游戏,我也是初学J2ME不久,准备边看书边做,争取把这个游戏做出来!J2ME高手请多指点,和我一样学习中的朋友欢迎多

2004-08-26 19:36:00 6461 6

原创 Jexi 1.0 beta

 庆祝中国队夺得雅典奥运会第一枚金牌!发布1.0测试版:Source Code: http://code.google.com/p/jexieditor/Compiled: http://jexieditor.googlecode.com/svn/trunk/Jexi/dist/

2004-08-14 19:55:00 8899 22

原创 Jexi开发 (15) 实现图文混排

今天把最早设计的Picture类实现了,另外添加一个工厂PictureFactory用于创建Picture,放到程序中一测,没有调试立刻显示正常,呵呵,出乎我的意料,看来以后添加其他类型的Glyph也没有大问题:唯一的bug是图片两侧的光标大小和位置不对,今晚先看奥运,明早再解决这个小bug :)

2004-08-14 00:25:00 4449

原创 Jexi开发 (14) 应用Command模式

Command模式用于封装用户操作再合适不过了!定义Command接口:public interface Command {    boolean execute();    void unexecute();    String toString();}toString()方法返回命令描述,可以在工具栏的Undo/Redo中提示用户。单态类CommandManager用于创建、执

2004-08-11 20:44:00 4124 7

原创 Jexi开发 (13) 实现编辑功能

今天把Caret重新设计了一遍,用一个Position表示Caret的位置:public final class Position {??? private int pageIndex;??? private int rowIndex;??? private int columnIndex;??? ...}Caret的位置无法用Paragraph和Index表示,因为第N行末尾和第N+

2004-08-05 22:33:00 3994

原创 Jexi开发 (12) 实现光标输入

今天实现了光标定位,添加了输入功能,可以输入但不能删除^_^,另外实现了排版(以前是每行20个字符排),但是英文断字还没来得及写。源代码可以从此处下载,需要一个swt的jar和本地dll支持,写一个批处理运行:set CLASSPATH=.;java jexi.ui.Application把dll复制到Windows目录或System32目录(不复制也行,但要在命令行指定路径,

2004-08-04 19:29:00 3245

原创 Jexi设计 (11) Sequence Diagram

画了一个Sequence:其中Document包含一个Caret,用来表示光标位置,View从Document获得Caret的位置后,将光标显示在指定位置上。为了简化,Application代表整个应用程序,Singleton模式,可以用Application.instance()获得唯一实例;Frame代表窗口,由Application创建,有且只有一个;View由Frame创建,有

2004-08-03 20:59:00 3950

原创 Jexi设计 (10) 坐标转换

坐标转换(修订)视图保存(offsetX, offsetY),表示文档相对于视图的起始坐标。文档在绘制时需要这个起始坐标(offsetX, offsetY),表示整个文档应该从此处绘制。上图中:viewWidth–docWidth viewHeight–docHeight 如果视图比文档还大:offsetX = ( viewWidth - docWidth

2004-08-03 00:32:00 3859 1

原创 Jexi开发 (9) UI界面预览

趁着周末有点时间,把绘制Document的功能做好了,又改好了以前的几个Bug,现在终于可以显示Document了: 当然Document的内容是我硬编码进去的,下一步就是编辑功能了。:)

2004-08-01 23:31:00 3554

原创 Jexi设计 (8) 使用SWT创建GUI

目前Document类的结构已经比较完善了,由于编辑Document涉及到界面,所以先把GUI写出来。 用Java做界面一直是比较麻烦的事情,早期的AWT太慢,现在很少用了,Swing我没用过,但速度也快不了多少,最后发现SWT是一个不错的本地库,速度够快,而且效果和本地平台一样(因为是调用的平台相关API),不仔细看根本看不出是java做的。 不过,考虑到移植性,我决定把Frame分成平台无关和

2004-07-31 16:28:00 5263 6

原创 Jexi代码 (7) Document类

Document相关类写得差不多了,先发布一个0.1版的代码,zip下载,还有很多要完善。 用Rose画的UML图,比较大 :) 如果你对设计有任何意见或建议,欢迎提出来讨论!

2004-07-28 19:19:00 3200 2

原创 Jexi设计 (6) View设计

以下讨论View的设计。 Document是抽象的文档类,它包含了所有的数据和如何显示的信息,我们已经通过Page,Paragraph,Row等等抽象出来了。 Frame代表窗体对象,负责构造出窗体,菜单栏,工具栏等等,它可以接受用户的命令,然后将命令传递给Document。 View代表视图对象,负责绘制文档数据,它在update()方法中绘制可视区域。 除了绘制文档数据,视图还可能要绘制滚动条

2004-07-27 19:25:00 3947 6

原创 Jexi设计 (6) Document类的UML

前面讨论了用Document类表示MVC结构中的文档,并抽象出接口Glyph用于Composite模式,派生两类Glyph:基本数据结构Char,Picture和Paragraph;显示模型结构Row和Page,UML图如下: 对于任意一个Glyph对象,它可以知道: 自身的子结点 - child(), size(); 添加,删除子结点 - add(), remove(); 自身占据的大小 -

2004-07-24 00:17:00 4548 5

原创 Jexi设计 (5) 页面样式

仿照Microsoft Word,PageStyle的基本属性: float width; // 总宽度float height; // 总高度float leftMargin; // 左边距float rightMargin; // 右边距 float topMargin; // 上边距float bottomMargin; // 下边距 float bindingMargin; // 装订线

2004-07-22 20:48:00 4383

原创 Jexi设计 (4) 文档类设计

文档类Document需要解决的三个问题: 1.?文档数据如何存储: 为了表示文档的层次结构而非显示结构,使用Composite模式,借用GoF的设计,定义接口Glyph,抽象出以下类: Char类:表示一个字符。 Picture类:表示一个图片。 Paragraph类:由若干个Char和Picture组成的段落,用ArrayList : glyphs存储Char和Picture。 Docume

2004-07-18 18:24:00 9519 6

原创 Jexi设计 (3) MVC模型

整个应用程序的模型准备采用文档-视图(document-view)模型,这里借用一下MFC的概念。 定义文档类Document,用于表示文档。 定义视图类View,用于显示文档。 框架类Frame可以用Swing或SWT实现。 因此,Jexi类似于MFC程序的MVC结构。

2004-07-18 18:08:00 4550

原创 Jexi设计 (2) 用户需求

Jexi计划实现一个所见即所得的图文混排的编辑器,支持以下功能: 基本功能:文字录入,复制粘贴,删除,查找替换,打印等基本编辑操作。 扩展功能:图文混排,打印预览,多步Redo/Undo等。 暂不考虑其他如表格,绘图,特殊效果如字符阴影等复杂功能。 开发平台:java 1.4 开发工具:eclipse 3.0 计划时间:2个月

2004-07-16 19:15:00 4520

原创 Jexi设计 (1) Lexi研究

从今天开始准备正式写Jexi编辑器,目标就是《设计模式》中的C++例子Lexi:一个图文混排的所见即所得编辑器: 今天在公司闲的时候把《design patterns》的Lexi设计部分仔细看了一遍,整理了一下GoF的设计: 文档结构:应用Composite模式,如图: 通过接口Glyph,应用Composite模式,将多个对象组织起来: 文档格式:通过一系列Formatting Algo

2004-07-16 18:42:00 9275 7

原创 Jexi计划

最近准备再从头到尾深入看一遍《设计模式》,其中有一个案例研究:C++写的Lexi图文混排的编辑器,我准备用Java写一个类似的Jexi,呵呵,还不知道功力够不够,能不能写得出来,各位blogger有什么建议? 附图:Lexi:

2004-07-15 21:30:00 5178 9

原创 状态模式之星际应用

一个对象有多种状态,在不同的状态下,同一种方法有不同的行为。如果用swich-case语句,将有大量的条件分支和逻辑代码混在一起。状态模式将每个状态封装到一个独立的类中,利用多态性使得不同状态下同一种方法表现不同的行为。 状态模式的UML图如下: 星际中人族的机枪兵Marine有两种状态:普通状态和打了兴奋针后的状态,两种状态下机枪兵的开枪频率是不同的,我们用状态模式来实现机枪兵的fire()

2004-02-15 23:42:00 2765 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除