这个游戏其实就是我们熟悉的贪食蛇,作者这里设计玩家操作的人物大概是吞食地板上的污垢,然后也像贪食蛇一样身体长大一节.
游戏所用到的图片大概是作者草草画出来的,感觉很粗糙,毕竟只是搞开发的,不是美工
上面有游戏的背景图,像一个网格的感觉,然后是菜单,游戏的主角分为头部和尾部图片.
然后进入游戏的时候需要一个开始的画面作为游戏的进入点
下面的类MrNomGame继承了AndroidGame类,显示游戏开始画面
package com.badlogic.androidgames.mrnom;
import com.badlogic.androidgames.framework.Screen;
import com.badlogic.androidgames.framework.impl.AndroidGame;
public class MrNomGame extends AndroidGame {
public Screen getStartScreen() {
return new LoadingScreen(this);
}
}
LoadingScreen作为Screen的一个子类,而Screen为一个抽像类
package com.badlogic.androidgames.framework;
public abstract class Screen {
protected final Game game;
public Screen(Game game) {
this.game = game;
}
public abstract void update(float deltaTime);
public abstract void present(float deltaTime);
public abstract void pause();
public abstract void resume();
public abstract void dispose();
}
package com.badlogic.androidgames.mrnom;
import com.badlogic.androidgames.framework.Game;
import com.badlogic.androidgames.framework.Graphics;
import com.badlogic.androidgames.framework.Screen;
import com.badlogic.androidgames.framework.Graphics.PixmapFormat;
public class LoadingScreen extends Screen {
public LoadingScreen(Game game) {
super(game);
}
public void update(float deltaTime) {
Graphics g = game.getGraphics();
Assets.background = g.newPixmap("background.png", PixmapFormat.RGB565);
Assets.logo = g.newPixmap("logo.png", PixmapFormat.ARGB4444);
Assets.mainMenu = g.newPixmap("mainmenu.png", PixmapFormat.ARGB4444);
Assets.buttons = g.newPixmap("buttons.png", PixmapFormat.ARGB4444);
Assets.help1 = g.newPixmap("help1.png", PixmapFormat.ARGB4444);
Assets.help2 = g.newPixmap("help2.png", PixmapFormat.ARGB4444);
Assets.help3 = g.newPixmap("help3.png", PixmapFormat.ARGB4444);
Assets.numbers = g.newPixmap("numbers.png", PixmapFormat.ARGB4444);
Assets.ready = g.newPixmap("ready.png", PixmapFormat.ARGB4444);
Assets.pause = g.newPixmap("pausemenu.png", PixmapFormat.ARGB4444);
Assets.gameOver = g.newPixmap("gameover.png", PixmapFormat.ARGB4444);
Assets.headUp = g.newPixmap("headup.png", PixmapFormat.ARGB4444);
Assets.headLeft = g.newPixmap("headleft.png", PixmapFormat.ARGB4444);
Assets.headDown = g.newPixmap("headdown.png", PixmapFormat.ARGB4444);
Assets.headRight = g.newPixmap("headright.png", PixmapFormat.ARGB4444);
Assets.tail = g.newPixmap("tail.png", PixmapFormat.ARGB4444);
Assets.stain1 = g.newPixmap("stain1.png", PixmapFormat.ARGB4444);
Assets.stain2 = g.newPixmap("stain2.png", PixmapFormat.ARGB4444);
Assets.stain3 = g.newPixmap("stain3.png", PixmapFormat.ARGB4444);
= game.getAudio().newSound("click.ogg");
Assets.eat = game.getAudio().newSound("eat.ogg");
Assets.bitten = game.getAudio().newSound("bitten.ogg");
Settings.load(game.getFileIO());
game.setScreen(new MainMenuScreen(game));
}
public void present(float deltaTime) {
}
public void pause() {
}
public void resume() {
}
public void dispose() {
}
}
LoadingScreen类实现了Update方法,里面有一个Assets类,看看它是作什么用的
package com.badlogic.androidgames.mrnom;
import com.badlogic.androidgames.framework.Pixmap;
import com.badlogic.androidgames.framework.Sound;
public class Assets {
public static Pixmap background;
public static Pixmap logo;
public static Pixmap mainMenu;
public static Pixmap buttons;
public static Pixmap help1;
public static Pixmap help2;
public static Pixmap help3;
public static Pixmap numbers;
public static Pixmap ready;
public static Pixmap pause;
public static Pixmap gameOver;
public static Pixmap headUp;
public static Pixmap headLeft;
public static Pixmap headDown;
public static Pixmap headRight;
public static Pixmap tail;
public static Pixmap stain1;
public static Pixmap stain2;
public static Pixmap stain3;
public static Sound click;
public static Sound eat;
public static Sound bitten;
}
实际作用就是用静态变量把这些个要用到的图片,音效文件保存下来,放到内存中(从Asset文件夹中加载的资料文件).
之后就可以在代码中方便的使用到这些资源文件,比如
game.getGraphics().drawPixmap(Assets.background, 0, 0)
或音效文件
.play(1);
update方法中还有一个Settings类,下一篇再写吧......