initial support to change BMF color
This commit is contained in:
parent
8df646a59b
commit
9644fa9730
4
build.sh
4
build.sh
@ -3,7 +3,7 @@
|
|||||||
set -e # Exit immediately if any command fails
|
set -e # Exit immediately if any command fails
|
||||||
|
|
||||||
MAIN_CLASS="dothack/DotHack.java"
|
MAIN_CLASS="dothack/DotHack.java"
|
||||||
PROJECT_NAME="dh_musicfix"
|
PROJECT_NAME="dh"
|
||||||
SOURCE_PATH="src"
|
SOURCE_PATH="src"
|
||||||
PATH_LIBRARIES="lib"
|
PATH_LIBRARIES="lib"
|
||||||
PATH_PROGUARD="/home/sillysagiri/Documents/dothack/proguard.jar"
|
PATH_PROGUARD="/home/sillysagiri/Documents/dothack/proguard.jar"
|
||||||
@ -28,4 +28,4 @@ jar cvfm "build/${PROJECT_NAME}_not_preverified.jar" "${SOURCE_PATH}/META-INF/MA
|
|||||||
java -jar $PATH_PROGUARD -microedition -injars "build/${PROJECT_NAME}_not_preverified.jar" -outjars "build/${PROJECT_NAME}.jar" -libraryjars $CLASSPATH -dontshrink -dontoptimize -dontobfuscate -target $CLASS_VERSION
|
java -jar $PATH_PROGUARD -microedition -injars "build/${PROJECT_NAME}_not_preverified.jar" -outjars "build/${PROJECT_NAME}.jar" -libraryjars $CLASSPATH -dontshrink -dontoptimize -dontobfuscate -target $CLASS_VERSION
|
||||||
|
|
||||||
# release build
|
# release build
|
||||||
# java -jar $PATH_PROGUARD -microedition -injars "build/${PROJECT_NAME}_not_preverified.jar" -outjars "build/${PROJECT_NAME}_release.jar" -libraryjars $CLASSPATH -target $CLASS_VERSION -keep "class * extends javax.microedition.midlet.MIDlet" -optimizationpasses 4 -repackageclasses "" -allowaccessmodification
|
java -jar $PATH_PROGUARD -microedition -injars "build/${PROJECT_NAME}_not_preverified.jar" -outjars "build/${PROJECT_NAME}_release.jar" -libraryjars $CLASSPATH -target $CLASS_VERSION -keep "class * extends javax.microedition.midlet.MIDlet" -repackageclasses ""
|
@ -1,10 +1,12 @@
|
|||||||
Manifest-Version: 1.0
|
Manifest-Version: 1.0
|
||||||
MicroEdition-Configuration: CLDC-1.0
|
|
||||||
MIDlet-Description: MeNet21
|
|
||||||
MIDlet-Version: 1.0.0
|
|
||||||
Created-By: 1.3.0_02(Sun Microsystems Inc.)
|
|
||||||
MIDlet-Vendor: MeNet21
|
|
||||||
MicroEdition-Profile: MIDP-1.0
|
|
||||||
MIDlet-1: 닷핵,/logo/menet.png,dothack.DotHack
|
MIDlet-1: 닷핵,/logo/menet.png,dothack.DotHack
|
||||||
|
MIDlet-Vendor: MeNet21
|
||||||
|
MIDlet-Info-URL: http://java.sun.com/j2me
|
||||||
MIDlet-Name: 닷핵
|
MIDlet-Name: 닷핵
|
||||||
MIDlet-Info-URL: http://java.sun.com/j2me/
|
MIDlet-Description: MeNet21
|
||||||
|
MIDlet-Version: 1.2
|
||||||
|
MicroEdition-Configuration: CLDC-1.1
|
||||||
|
MicroEdition-Profile: MIDP-2.0
|
||||||
|
Sagiri-Note: music converted to pcm and removed LG MMAPI dependency
|
||||||
|
Sagiri-URL: https://sillysagiri.moe
|
||||||
|
|
||||||
|
@ -23,15 +23,10 @@ public class DotHack extends MIDlet implements Runnable {
|
|||||||
_display.setCurrent(game);
|
_display.setCurrent(game);
|
||||||
|
|
||||||
thread = new Thread(this);
|
thread = new Thread(this);
|
||||||
thread.setPriority(Thread.MAX_PRIORITY);
|
// thread.setPriority(Thread.MAX_PRIORITY);
|
||||||
thread.start();
|
thread.start();
|
||||||
|
|
||||||
try {
|
|
||||||
sagiri.Set_Scene(new Intro());
|
sagiri.Set_Scene(new Intro());
|
||||||
} catch (IOException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void pauseApp() {}
|
public void pauseApp() {}
|
||||||
@ -40,20 +35,17 @@ public class DotHack extends MIDlet implements Runnable {
|
|||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
while (true) {
|
while (true) {
|
||||||
try
|
|
||||||
{
|
|
||||||
sagiri.time_begin = System.currentTimeMillis();
|
sagiri.time_begin = System.currentTimeMillis();
|
||||||
|
|
||||||
|
try { Thread.sleep(1000/sagiri.fps); }
|
||||||
|
catch (Exception e) {}
|
||||||
|
|
||||||
game.repaint();
|
game.repaint();
|
||||||
game.serviceRepaints();
|
game.serviceRepaints();
|
||||||
Thread.sleep(1000/sagiri.fps);
|
|
||||||
|
sagiri.input.Update();
|
||||||
|
|
||||||
sagiri.time_delta = System.currentTimeMillis() - sagiri.time_begin;
|
sagiri.time_delta = System.currentTimeMillis() - sagiri.time_begin;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
// TODO: catch any unhandled exception here
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -133,7 +133,7 @@ public class DotHackC extends Canvas {
|
|||||||
public DotHackC(DotHack app) {
|
public DotHackC(DotHack app) {
|
||||||
setFullScreenMode(true);
|
setFullScreenMode(true);
|
||||||
midlet = app;
|
midlet = app;
|
||||||
sagiri = app.sagiri;
|
sagiri = Sagiri._instance;
|
||||||
|
|
||||||
bG = Image.createImage(120, 133);
|
bG = Image.createImage(120, 133);
|
||||||
bgG = bG.getGraphics();
|
bgG = bG.getGraphics();
|
||||||
@ -151,27 +151,27 @@ public class DotHackC extends Canvas {
|
|||||||
sagiri.Update(g);
|
sagiri.Update(g);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void keyPressed(int keycode)
|
public final void keyPressed(int keyCode)
|
||||||
{
|
{
|
||||||
sagiri.input.HandleKeyDown(keycode);
|
sagiri.input.HandleKeyDown(keyCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void keyReleased(int keycode)
|
public final void keyReleased(int keyCode)
|
||||||
{
|
{
|
||||||
sagiri.input.HandleKeyUp(keycode);
|
sagiri.input.HandleKeyUp(keyCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void pointerPressed(int x, int y)
|
public final void pointerPressed(int x, int y)
|
||||||
{
|
{
|
||||||
sagiri.input.HandleTouch(Sagiri.TOUCH_BEGIN, x, y);
|
sagiri.input.HandleTouch(Sagiri.TOUCH_BEGIN, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void pointerReleased(int x, int y)
|
public final void pointerReleased(int x, int y)
|
||||||
{
|
{
|
||||||
sagiri.input.HandleTouch(Sagiri.TOUCH_END, x, y);
|
sagiri.input.HandleTouch(Sagiri.TOUCH_END, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void pointerDragged(int x, int y)
|
public final void pointerDragged(int x, int y)
|
||||||
{
|
{
|
||||||
sagiri.input.HandleTouch(Sagiri.TOUCH_DRAG, x, y);
|
sagiri.input.HandleTouch(Sagiri.TOUCH_DRAG, x, y);
|
||||||
}
|
}
|
||||||
@ -238,7 +238,7 @@ public class DotHackC extends Canvas {
|
|||||||
this.useK = 0;
|
this.useK = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void paint2(Graphics g) {
|
/* public void paint2(Graphics g) {
|
||||||
// probably to render bellow device built-in ui
|
// probably to render bellow device built-in ui
|
||||||
// doesnt need this anymore since midp2.0 allow to do fullscreen
|
// doesnt need this anymore since midp2.0 allow to do fullscreen
|
||||||
// if (getHeight() == 143)
|
// if (getHeight() == 143)
|
||||||
@ -2474,7 +2474,7 @@ public class DotHackC extends Canvas {
|
|||||||
}
|
}
|
||||||
} catch (Exception exception) {}
|
} catch (Exception exception) {}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
public void infoWinPaint(int paramInt1, String paramString1, String paramString2, int paramInt2, int paramInt3, int paramInt4, int paramInt5, Image paramImage, Graphics paramGraphics) {
|
public void infoWinPaint(int paramInt1, String paramString1, String paramString2, int paramInt2, int paramInt3, int paramInt4, int paramInt5, Image paramImage, Graphics paramGraphics) {
|
||||||
paramGraphics.drawImage(paramImage, paramInt2, paramInt3, 20);
|
paramGraphics.drawImage(paramImage, paramInt2, paramInt3, 20);
|
||||||
paramGraphics.setColor(255, 0, 0);
|
paramGraphics.setColor(255, 0, 0);
|
||||||
|
@ -22,10 +22,30 @@ public class BMF {
|
|||||||
public short base;
|
public short base;
|
||||||
public short[][] chars;
|
public short[][] chars;
|
||||||
|
|
||||||
public BMF(String path_img, String path_fnt) throws Exception
|
public BMF()
|
||||||
{
|
{
|
||||||
img = Image.createImage(path_img);
|
}
|
||||||
|
|
||||||
|
public static final BMF Create(String path_img, String path_fnt) throws Exception
|
||||||
|
{
|
||||||
|
BMF bmf = new BMF();
|
||||||
|
bmf.img = Image.createImage(path_img);
|
||||||
|
bmf.Parse_fnt(path_fnt);
|
||||||
|
|
||||||
|
return bmf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final BMF Create(Image img, String path_fnt) throws Exception
|
||||||
|
{
|
||||||
|
BMF bmf = new BMF();
|
||||||
|
bmf.img = img;
|
||||||
|
bmf.Parse_fnt(path_fnt);
|
||||||
|
|
||||||
|
return bmf;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Parse_fnt(String path_fnt) throws Exception
|
||||||
|
{
|
||||||
InputStream in = this.getClass().getResourceAsStream(path_fnt);
|
InputStream in = this.getClass().getResourceAsStream(path_fnt);
|
||||||
byte[] header = new byte[4];
|
byte[] header = new byte[4];
|
||||||
|
|
||||||
@ -126,6 +146,25 @@ public class BMF {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* this is cpu intensive process
|
||||||
|
* consider creating new BMF for each color instead
|
||||||
|
*
|
||||||
|
* limitation:
|
||||||
|
* currently can only be used once
|
||||||
|
* since its replacing white pixel with tinted color
|
||||||
|
*/
|
||||||
|
public void SetColor(int rgb)
|
||||||
|
{
|
||||||
|
int[] buffer = new int[img.getWidth()*img.getHeight()];
|
||||||
|
img.getRGB(buffer, 0, img.getWidth(), 0, 0, img.getWidth(), img.getHeight());
|
||||||
|
|
||||||
|
for (int i=0; i<buffer.length; i++)
|
||||||
|
if (buffer[i] == 0xFFFFFFFF) buffer[i] = rgb;
|
||||||
|
|
||||||
|
img = Image.createRGBImage(buffer, img.getWidth(), img.getHeight(), true);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: handle multiline
|
// TODO: handle multiline
|
||||||
public short[] Measure(String str)
|
public short[] Measure(String str)
|
||||||
{
|
{
|
||||||
|
@ -13,7 +13,7 @@ public class Sagiri
|
|||||||
|
|
||||||
public Input input;
|
public Input input;
|
||||||
|
|
||||||
public int fps = 20;
|
public int fps = 10;
|
||||||
|
|
||||||
private Scene _scene_current = null;
|
private Scene _scene_current = null;
|
||||||
public long time_begin = 0;
|
public long time_begin = 0;
|
||||||
@ -38,8 +38,6 @@ public class Sagiri
|
|||||||
|
|
||||||
_scene_current.Update(time_delta, g);
|
_scene_current.Update(time_delta, g);
|
||||||
}
|
}
|
||||||
input.Update();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Scene Get_Scene() { return _scene_current; }
|
public Scene Get_Scene() { return _scene_current; }
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
package sillysagiri.scene;
|
package sillysagiri.scene;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
|
||||||
import javax.microedition.lcdui.Graphics;
|
import javax.microedition.lcdui.Graphics;
|
||||||
import javax.microedition.lcdui.Image;
|
import javax.microedition.lcdui.Image;
|
||||||
import javax.microedition.lcdui.game.Sprite;
|
import javax.microedition.lcdui.game.Sprite;
|
||||||
|
|
||||||
|
import sillysagiri.BMF;
|
||||||
import sillysagiri.Easing;
|
import sillysagiri.Easing;
|
||||||
|
import sillysagiri.Input;
|
||||||
|
import sillysagiri.KeyCode;
|
||||||
import sillysagiri.Scene;
|
import sillysagiri.Scene;
|
||||||
import sillysagiri.Utils;
|
import sillysagiri.Utils;
|
||||||
|
|
||||||
@ -13,30 +17,34 @@ public class Intro extends Scene {
|
|||||||
private long counter = 0;
|
private long counter = 0;
|
||||||
private int state = 0;
|
private int state = 0;
|
||||||
|
|
||||||
|
private BMF bmf_normal;
|
||||||
|
private BMF bmf_black;
|
||||||
|
private BMF bmf_outline;
|
||||||
private Image img_logo = null;
|
private Image img_logo = null;
|
||||||
private Image img_ez = null;
|
|
||||||
private Image img_theworld = null;
|
private Image img_theworld = null;
|
||||||
private Image img_vol1 = null;
|
|
||||||
private Image img_project = null;
|
|
||||||
|
|
||||||
public Intro() throws IOException
|
|
||||||
{
|
|
||||||
super();
|
|
||||||
|
|
||||||
img_logo = Image.createImage("/t_1.png");
|
|
||||||
img_ez = Image.createImage("/pEZ.png");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Preload() {
|
public void Preload() {
|
||||||
|
try
|
||||||
|
{
|
||||||
|
bmf_normal = BMF.Create("/silly/bmf/nds12_0.png", "/silly/bmf/nds12.fnt");
|
||||||
|
bmf_outline = BMF.Create("/silly/bmf/onds12_0.png", "/silly/bmf/onds12.fnt");
|
||||||
|
bmf_black = BMF.Create("/silly/bmf/nds12_0.png", "/silly/bmf/nds12.fnt");
|
||||||
|
bmf_black.SetColor(0xFF000000);
|
||||||
|
img_logo = Image.createImage("/t_1.png");
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
sagiri.Set_Scene(new DeathError(e));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Destroy()
|
public void Destroy()
|
||||||
{
|
{
|
||||||
img_logo = null;
|
img_logo = null;
|
||||||
img_ez = null;
|
|
||||||
img_theworld = null;
|
img_theworld = null;
|
||||||
img_vol1 = null;
|
bmf_normal = null;
|
||||||
img_project = null;
|
bmf_black = null;
|
||||||
|
bmf_outline = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Update(long dt, Graphics g)
|
public void Update(long dt, Graphics g)
|
||||||
@ -84,10 +92,11 @@ public class Intro extends Scene {
|
|||||||
try {
|
try {
|
||||||
img_logo = Image.createImage("/t_0.png");
|
img_logo = Image.createImage("/t_0.png");
|
||||||
img_theworld = Image.createImage("/t_2.png");
|
img_theworld = Image.createImage("/t_2.png");
|
||||||
img_project = Image.createImage("/t_3.png");
|
|
||||||
img_vol1 = Image.createImage("/t_4.png");
|
|
||||||
}
|
}
|
||||||
catch(IOException e) {}
|
catch(IOException e)
|
||||||
|
{
|
||||||
|
sagiri.Set_Scene(new DeathError(e));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -105,21 +114,26 @@ public class Intro extends Scene {
|
|||||||
Utils.GetScreenWidth()/2, Utils.GetScreenHeight()/2,
|
Utils.GetScreenWidth()/2, Utils.GetScreenHeight()/2,
|
||||||
Graphics.HCENTER | Graphics.TOP);
|
Graphics.HCENTER | Graphics.TOP);
|
||||||
|
|
||||||
g.drawImage(img_project, 5, Utils.GetScreenHeight()-5, Graphics.LEFT | Graphics.BOTTOM);
|
// TODO: fix utf-16 symbol
|
||||||
g.drawImage(img_vol1, 5, 5, Graphics.LEFT | Graphics.TOP);
|
bmf_black.DrawEx(g,
|
||||||
|
"c Project .hack",
|
||||||
|
5, Utils.GetScreenHeight()-5,
|
||||||
|
Graphics.LEFT | Graphics.BOTTOM);
|
||||||
|
|
||||||
|
bmf_normal.Draw(g,
|
||||||
|
"VOL 1 - v0.1-silly",
|
||||||
|
5, 5);
|
||||||
|
|
||||||
if (counter >= 600) counter = 0;
|
if (counter >= 600) counter = 0;
|
||||||
if (counter < 400)
|
if (counter < 400)
|
||||||
g.drawImage(
|
bmf_outline.DrawEx(g,
|
||||||
img_ez,
|
"PRESS ANY KEY",
|
||||||
Utils.GetScreenWidth()/2, (int)(Utils.GetScreenHeight()*0.75),
|
Utils.GetScreenWidth()/2, (int)(Utils.GetScreenHeight()*0.7),
|
||||||
Graphics.VCENTER | Graphics.HCENTER);
|
Graphics.VCENTER | Graphics.HCENTER);
|
||||||
|
|
||||||
if (sagiri.input.IsKeyDownAny())
|
if (sagiri.input.IsKeyDownAny())
|
||||||
{
|
|
||||||
sagiri.Set_Scene(new MainMenu());
|
sagiri.Set_Scene(new MainMenu());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: break;
|
default: break;
|
||||||
|
@ -15,15 +15,13 @@ public class MainMenu extends Scene {
|
|||||||
|
|
||||||
private Image img_bg;
|
private Image img_bg;
|
||||||
private Image img_bandai;
|
private Image img_bandai;
|
||||||
private Image img_ez;
|
|
||||||
private BMF bmf;
|
private BMF bmf;
|
||||||
|
|
||||||
public void Preload() {
|
public void Preload() {
|
||||||
try {
|
try {
|
||||||
bmf = new BMF("/silly/bmf/nds12.png", "/silly/bmf/nds12.fnt");
|
bmf = BMF.Create("/silly/bmf/onds12_0.png", "/silly/bmf/onds12.fnt");
|
||||||
Image img_loop = Image.createImage("/m_2.png");
|
Image img_loop = Image.createImage("/m_2.png");
|
||||||
img_bandai = Image.createImage("/c_0.png");
|
img_bandai = Image.createImage("/c_0.png");
|
||||||
img_ez = Image.createImage("/pEZ.png");
|
|
||||||
|
|
||||||
int loopCount = (int)Math.ceil((float)Utils.GetScreenHeight()/img_loop.getHeight());
|
int loopCount = (int)Math.ceil((float)Utils.GetScreenHeight()/img_loop.getHeight());
|
||||||
|
|
||||||
@ -60,13 +58,11 @@ public class MainMenu extends Scene {
|
|||||||
|
|
||||||
if (counter >= 600) counter = 0;
|
if (counter >= 600) counter = 0;
|
||||||
if (counter < 400)
|
if (counter < 400)
|
||||||
g.drawImage(
|
bmf.DrawEx(g,
|
||||||
img_ez,
|
"PRESS ANY KEY",
|
||||||
Utils.GetScreenWidth()/2, (int)(Utils.GetScreenHeight()*0.75),
|
Utils.GetScreenWidth()/2, (int)(Utils.GetScreenHeight()*0.7),
|
||||||
Graphics.VCENTER | Graphics.HCENTER);
|
Graphics.VCENTER | Graphics.HCENTER);
|
||||||
|
|
||||||
bmf.Draw(g, "hello world\nthis is test text!\nthe fox jumped over the lazy dog", 5, 10);
|
|
||||||
|
|
||||||
if (sagiri.input.IsKeyDownAny())
|
if (sagiri.input.IsKeyDownAny())
|
||||||
{
|
{
|
||||||
counter = 0;
|
counter = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user