summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/gl/gl.qs0
-rw-r--r--modules/gl/gl.qs.dll0
-rw-r--r--modules/gl/init.qs3
-rw-r--r--modules/math3d/vector3.qs34
-rw-r--r--modules/std/base64.qs15
-rw-r--r--modules/std/event.qs42
-rw-r--r--modules/std/init.qs2
-rw-r--r--modules/std/singleton.qs23
-rw-r--r--modules/std/stack.qs20
9 files changed, 139 insertions, 0 deletions
diff --git a/modules/gl/gl.qs b/modules/gl/gl.qs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/modules/gl/gl.qs
diff --git a/modules/gl/gl.qs.dll b/modules/gl/gl.qs.dll
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/modules/gl/gl.qs.dll
diff --git a/modules/gl/init.qs b/modules/gl/init.qs
new file mode 100644
index 0000000..8d54a93
--- /dev/null
+++ b/modules/gl/init.qs
@@ -0,0 +1,3 @@
+
+import gl;
+
diff --git a/modules/math3d/vector3.qs b/modules/math3d/vector3.qs
new file mode 100644
index 0000000..2401b0e
--- /dev/null
+++ b/modules/math3d/vector3.qs
@@ -0,0 +1,34 @@
+import math for Math;
+
+class Vector3 {
+ static one = new Vector3(1,1,1);
+ static zero = new Vector3(0,0,0);
+ static front = ne Vector3(0,0,1);
+ static up = new Vector3(0,1,0);
+ static right = new Vector3(1,0,0);
+
+ func init(x, y, z) {
+ self.x = x;
+ self.y = y;
+ self.z = z;
+ }
+
+ func length() {
+ return Math.sqrt(self.x^2 + self.y^2 + self.z^2);
+ }
+
+ static func lerp(v1, v2, t) {
+
+ }
+
+ static func slerp(v1, v2, t) {
+
+ }
+
+}
+
+/*
+var v = new Vector3(1,1,1);
+
+
+*/ \ No newline at end of file
diff --git a/modules/std/base64.qs b/modules/std/base64.qs
new file mode 100644
index 0000000..d14dbbc
--- /dev/null
+++ b/modules/std/base64.qs
@@ -0,0 +1,15 @@
+class Base64 {
+ static func encode(str) {
+
+ }
+
+ static func decode(str) {
+
+ }
+}
+
+/*
+var base64 = Base64.encode("asasdadqweqwe12312");
+
+
+*/ \ No newline at end of file
diff --git a/modules/std/event.qs b/modules/std/event.qs
new file mode 100644
index 0000000..d4f2a10
--- /dev/null
+++ b/modules/std/event.qs
@@ -0,0 +1,42 @@
+import debug for debug;
+
+class event {
+ func init() {
+ self._func = []; // callback functions list
+ }
+
+ func clear() {
+ self._func.clear();
+ }
+
+ func += (fn) {
+ if(typeof(fn) != "function")
+ debug.assert("wrong type");
+ if(!self._func.contains(fn))
+ self._func.push(fn);
+ else
+ debug.logError("已经存在这个方法");
+ }
+
+ func -= (fn) {
+ if(typeof(fn) != "function")
+ debug.assert("wrong type");
+ self._func.remove(fn);
+ }
+
+ func () (...){
+ foreach(var fn in self._func) {
+ fn(...);
+ }
+ }
+}
+
+/*
+var Say = new event();
+Say += func(str) {
+ io.print(str);
+}
+Say("hi");
+Say.clear();
+
+*/ \ No newline at end of file
diff --git a/modules/std/init.qs b/modules/std/init.qs
new file mode 100644
index 0000000..fd4327d
--- /dev/null
+++ b/modules/std/init.qs
@@ -0,0 +1,2 @@
+import "base64.qs" ;
+
diff --git a/modules/std/singleton.qs b/modules/std/singleton.qs
new file mode 100644
index 0000000..afade4b
--- /dev/null
+++ b/modules/std/singleton.qs
@@ -0,0 +1,23 @@
+
+class Singleton {
+ static func get() {
+ if( type._instance == null ) {
+ type._instance = new type();
+ }
+ return type._instance;
+ }
+}
+
+/*
+Usage:
+
+class SoundManager is Singleton {
+ func init() {
+
+ }
+}
+
+var mgr = SoundManager.get();
+
+//type is upvalue\preset value, like self
+*/ \ No newline at end of file
diff --git a/modules/std/stack.qs b/modules/std/stack.qs
new file mode 100644
index 0000000..4151e39
--- /dev/null
+++ b/modules/std/stack.qs
@@ -0,0 +1,20 @@
+class Stack {
+ func init() {
+ self._stack = [];
+ }
+
+ func push(element) {
+ self._stack.push(element);
+ }
+
+ func pop() {
+ self._stack.pop();
+ }
+
+ func size() {
+
+ }
+}
+
+
+