Android千好万好,唯独模拟器不是太好,在不更换旧有硬件的前提下,使用Android模拟器通常会遭遇效率问题,况且在logcat下面调试,也始终不如开发桌面游戏时那么直观。有没有什么办法,能够解决这一问题呢?
其实很容易做到。
Android首先是一个精简的Linux平台,其次才是一个手机系统,Java在PC上可以做到的事情,Android不但可以做到,而且能以近乎一致的手段做到。事实上,如果有人故意通过封装抹杀Android与PC上Java应用差异性的话,任何Java游戏,都可以在很少更改代码(或者完全不更改代码)的情况下移植到Android之上。
比如,笔者下面提供的这个拼图游戏示例,就可以在几乎不改变程序结构(部分相关类需要替换,不过可以利用正则自动完成)的前提下,运行在Android上。
PC版源码(框架为LGame-Simple-0.2.0):
package org.loon.game.simple.test;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.event.KeyEvent;import java.awt.event.MouseEvent;import org.loon.framework.game.simple.GameScene;import org.loon.framework.game.simple.core.Deploy;import org.loon.framework.game.simple.core.Screen;import org.loon.framework.game.simple.utils.GraphicsUtils;/** * * Copyright 2008 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language * governing permissions and limitations under the License. * * @project loonframework * @author chenpeng * @email:ceponline@yahoo.com.cn * @version 0.1 */public class ScreenTest1 extends Screen { private Image imageBack, tmp_imageBack, imageForward; private Graphics tmp_graphics; private int blocks[]; private boolean isEvent; private int count, rs, cs, row, col, width, height; public ScreenTest1(String file1, String file2, int row, int col) { this.col = col; this.row = row; this.imageBack = GraphicsUtils.loadImage(file1); this.width = imageBack.getWidth(null); this.height = imageBack.getHeight(null); this.rs = width / row; this.cs = height / col; this.tm