摘要:java语言是完全面向对象的,它的线程机制和对象序列化特别容易使用,使用java来建立一套多线程服务器要比使用其它语言方便的多,如果你再把它的异常处理机制利用好,那么你就可以建立一个商业级的多线程服务器了。由于采用了消息队列和socket传输方式,所以不会出现丢消息的问题。这套服务器可以作为实时聊天服务器、多人协同的协作服务器等等。消息系统的建立这套服务器的消息系统采用的是对象传输的机制,而不是以......
摘要:1、使用线程例子
package untitled1;import javax.swing.*;import java.awt.event.*;import java.awt.*;import com.borland.jbcl.layout.*;/*** title:* description:* copyright: copyright (c) 2002* company:* @author*......
使用Game API函数制作二维动作游戏上一页 ...首先,gamecanvas类允许你用getgraphics()方法直接访问graphics对象.对于所返回的graphics对象的任何表现(rendering)都可以通过屏幕外缓冲区(offscreen buffer)来实现.你可以用flushgraphics()复制缓冲区到屏幕上,直到屏幕被刷新才会返回.这种方式给你提供比调用repaint()方法更完善的控制.repaint()方法会立即返回值,以至于你的应用程序不能确定系统什么时候会调用paint()来刷新屏幕.
【程序编程相关:传中国网通拟在下月以3.5亿元出售亚洲网】
gamecanvas类也包含一个用来获得设备按键当前状态的方法,即所谓得polling技术.你可以通过调用gamecanvas类的getkeystates()方法,马上确定哪一个按键被按下,从而取代了等待系统调用keypressed()方法. 【推荐阅读:中怡数宽暨广深两地 新品发布会议】
【扩展信息:
光学无线技术FSO 延展光纤网络】 下面是一个使用gamecanvas类的典型的游戏循环体:
public void microtankcanvas
extends gamecanvas implements runnable { public void run() { graphics g = getgraphics(); while (true) { // update the game state. int keystate = getkeystates(); // respond to key presses here. // painting code goes here. flushgraphics(); // delay one time step. } } } 接下来的例子描述了一个基本的游戏循环体.它向你展现了一个旋转的“x”,你可以用方向键在屏幕上移动它.这里的run()方法特别的瘦小,这要多亏了gamecanvas.
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*; public class simplegamecanvas extends gamecanvas implements runnable { private boolean mtrucking; private long mframedelay; private int mx, my; private int mstate; public simplegamecanvas() { ...
下一页 摘要:数据压缩概述文件中数据冗余的最简单的类型是"字符的复制"。让我们先来看下面一个字符串:jjjjjjaaaavvvvaaaaaa
这个字符串可以用更简洁的方式来编码,那就是通过替换每一个重复的字符串为单个的实例字符加上记录重复次数的数字来表示,上面的字符串可以被编码为下面的形式:6j4a4v6a
在这里,"6j"意味着6个字符j,"4a"意味着4个字符a,以此类推。这种字符串压缩方式称为"行程长......