1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
#if defined(USE_JNI) && defined(MACOSX)
#include <time.h>
#include <iostream>
#include <sstream>
#include <string>
#include "Config.h"
#include "PowderToyJava.h"
#include "Graphics.h"
#if defined(LIN32) || defined(LIN64)
#include "icon.h"
#endif
#include "game/GameController.h"
using namespace std;
GameController * gameController;
ui::Engine * engine;
int elapsedTime = 0, currentTime = 0, lastTime = 0, currentFrame = 0;
float fps = 0, delta = 1.0f;
JNIEXPORT void JNICALL Java_PowderToy_initialise(JNIEnv * env, jobject canvas)
{
//InitWindowMac(env, canvas);
ui::Engine::Ref().g = new Graphics();
engine = &ui::Engine::Ref();
engine->Begin(XRES+BARSIZE, YRES+MENUSIZE);
gameController = new GameController();
engine->ShowWindow(gameController->GetView());
engine->SetFps(fps);
}
JNIEXPORT void JNICALL Java_PowderToy_tick(JNIEnv * env, jobject canvas)
{
engine->Tick();
}
JNIEXPORT void JNICALL Java_PowderToy_draw(JNIEnv * env, jobject canvas)
{
engine->Draw();
engine->g->Finalise();
}
JNIEXPORT void JNICALL Java_PowderToy_finish(JNIEnv * env, jobject canvas)
{
ui::Engine::Ref().CloseWindow();
delete gameController;
delete ui::Engine::Ref().g;
}
JNIEXPORT jint JNICALL Java_PowderToy_getWidth(JNIEnv * env, jobject canvas)
{
return XRES+BARSIZE;
}
JNIEXPORT jint JNICALL Java_PowderToy_getHeight(JNIEnv * env, jobject canvas)
{
return YRES+MENUSIZE;
}
JNIEXPORT void JNICALL Java_PowderToy_mousePressed(JNIEnv * env, jobject canvas, jint mouseX, jint mouseY, jint mouseButton)
{
engine->onMouseClick(mouseX, mouseY, mouseButton);
}
JNIEXPORT void JNICALL Java_PowderToy_mouseReleased(JNIEnv * env, jobject canvas, jint mouseX, jint mouseY, jint mouseButton)
{
engine->onMouseUnclick(mouseX, mouseY, mouseButton);
}
JNIEXPORT void JNICALL Java_PowderToy_mouseMoved(JNIEnv * env, jobject canvas, jint mouseX, jint mouseY)
{
engine->onMouseMove(mouseX, mouseY);
}
#endif
|