diff --git a/Doc/sphinx/referencescript.rst b/Doc/sphinx/referencescript.rst index 6150f4b..006bb49 100644 --- a/Doc/sphinx/referencescript.rst +++ b/Doc/sphinx/referencescript.rst @@ -1,9 +1,15 @@ Scripting Reference =================== -Scripting Reference hoi +Covered in this section are the functions available when using Simba with the +default (Pascal) engine. + +.. note:: + + More chapters need to be written, see :ref:`todo` .. toctree:: scriptref/mouseandkeyboard.rst + scriptref/colourfinding.rst scriptref/files.rst diff --git a/Doc/sphinx/scriptref/colourfinding.rst b/Doc/sphinx/scriptref/colourfinding.rst new file mode 100644 index 0000000..3522e9d --- /dev/null +++ b/Doc/sphinx/scriptref/colourfinding.rst @@ -0,0 +1,56 @@ +Colour Finding +============== + +Finding colours on the screen is quite simple. Simba offers methods like +``FindColor`` to locate colours on the screen. + +.. note:: + + Although the documentation uses the ``English`` spelling of + ``colour``; the code for compatibility sake uses ``color``, without the u. + +Colour Finding Methods +---------------------- + +A list of (not yet all) colour finding methods in Simba. + +FindColor +~~~~~~~~~ + +.. code-block:: pascal + + function FindColor(var x, y: Integer; col, x1, y1, x2, y2: Integer): + Boolean; + + +FindColor returns true if the exact colour given (col) is found in the box defined by x1, y1, x2, y2. +The point is returned in x and y. It searches from the top left to the bottom right and will stop +after matching a point. + +FindColorTolerance +~~~~~~~~~~~~~~~~~~ + +.. code-block:: pascal + + function FindColorTolerance(var x, y: Integer; col, x1, y1, x2, y2, tol: + Integer): Boolean; + +FindColorTolerance returns true if a colour within the given tolerance range +(tol) of the given colour (col) is found in the box defined by x1, y1, x2, y2. +Only the first point is returned in x and y. +Whether or not a colour is within the tolerance range is determined by the :ref:`CTS` mode. +It searches from the top left to the bottom right and will stop after matching a point. + + +FindColorsTolerance +~~~~~~~~~~~~~~~~~~~ + +.. code-block:: pascal + + function FindColorsTolerance(var pts: TPointArray; col, x1, y1, x2, y2, + tol: Integer): Boolean; + +FindColorsTolerance returns true if at least one point was found. A point is found if it is within the +given tolerance range (tol) of the given color (col) and inside the box defined by x1, y1, x2, y2. +Whether or not a color is within the tolerance range is determined by the CTS mode. +It searches from the top left to the bottom right and will find all matching points in the area. diff --git a/Doc/sphinx/todo.rst b/Doc/sphinx/todo.rst index a6f6170..d8f84fe 100644 --- a/Doc/sphinx/todo.rst +++ b/Doc/sphinx/todo.rst @@ -13,7 +13,11 @@ Documentation TODO * write working with files for scriptreference (or any other chapter) It may be useful to check http://wizzup.org/simba/article/4 * Features -> Perhaps (interactive) images? - +* Scripting reference: + - Files + - Bitmaps + - DTM + - Internet * Expand "Troubleshooting" - And its subsection. diff --git a/Projects/MMLLib/libmml.lpr b/Projects/MMLLib/libmml.lpr index e64938c..36fb1e3 100644 --- a/Projects/MMLLib/libmml.lpr +++ b/Projects/MMLLib/libmml.lpr @@ -193,6 +193,8 @@ exports { Finder } findColor, findColors, + findColorTolerance, + findColorsTolerance, { Mem Management } fpc_freemem_, diff --git a/Projects/MMLLib/pymml/mml.py b/Projects/MMLLib/pymml/mml.py index 238f258..7931cd9 100755 --- a/Projects/MMLLib/pymml/mml.py +++ b/Projects/MMLLib/pymml/mml.py @@ -26,34 +26,36 @@ class MMLCore(object): def __del__(self): del self.dll -DLL = MMLCore('../libmml.so') -c = Color(DLL) -ret = c.find((0, 0, 100, 100), 0) -print ret - -ret = c.findAll((0, 0, 100, 100), 0) -print ret - - -m = Mouse(DLL) - - -print m[(Mouse.Pos, Mouse.Left, Mouse.Right)] -m[(Mouse.Pos, Mouse.Right)] = ((300,300), True) -print m.getButtonStates() -sleep(0.5) -m.setPos((200,200)) - -sleep(2) - -# Reset all buttons.. -m[(Mouse.Left, Mouse.Right, Mouse.Middle)] = [False for x in range(3)] -for v in zip((Mouse.Left, Mouse.Right), m[(Mouse.Left, Mouse.Right)]): - print v -print m.getPos() - -if hasattr(ret,'__iter__'): - m.setPos(ret) - -del DLL +if __name__ == '__main__': + DLL = MMLCore('../libmml.so') + + c = Color(DLL) + ret = c.find((0, 0, 100, 100), 0) + print ret + + ret = c.findAll((0, 0, 100, 100), 0) + print ret + + + m = Mouse(DLL) + + + print m[(Mouse.Pos, Mouse.Left, Mouse.Right)] + m[(Mouse.Pos, Mouse.Right)] = ((300,300), True) + print m.getButtonStates() + sleep(0.5) + m.setPos((200,200)) + + sleep(2) + + # Reset all buttons.. + m[(Mouse.Left, Mouse.Right, Mouse.Middle)] = [False for x in range(3)] + for v in zip((Mouse.Left, Mouse.Right), m[(Mouse.Left, Mouse.Right)]): + print v + print m.getPos() + + if hasattr(ret,'__iter__'): + m.setPos(ret) + + del DLL diff --git a/Projects/MMLLib/pymml/pres.py b/Projects/MMLLib/pymml/pres.py new file mode 100755 index 0000000..99b2285 --- /dev/null +++ b/Projects/MMLLib/pymml/pres.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +from mml import MMLCore +from mmlmouse import Mouse +import sys +import time + +DLL = MMLCore('../libmml.so') + +m = Mouse(DLL) + +while True: + print 'Readline again' + cmd = sys.stdin.readline()[:-1].lower() + if cmd is '': + print 'Stopping...' + m[(Mouse.Left, Mouse.Right, Mouse.Middle)] = [False for x in range(3)] + for v in zip((Mouse.Left, Mouse.Right), m[(Mouse.Left, Mouse.Right)]): + print v + break + + print 'Doing:', cmd + + if cmd in ['left', 'l']: + m[Mouse.Left] = True + time.sleep(0.1) + m[Mouse.Left] = False + time.sleep(0.1) + elif cmd in ['right','r']: + m[Mouse.Right] = True + time.sleep(0.1) + m[Mouse.Right] = False + time.sleep(0.1) + + for v in zip((Mouse.Left, Mouse.Right), m[(Mouse.Left, Mouse.Right)]): + print v + + +del DLL diff --git a/Projects/Simba/simbaunit.pas b/Projects/Simba/simbaunit.pas index 2ea77e9..9f6112f 100644 --- a/Projects/Simba/simbaunit.pas +++ b/Projects/Simba/simbaunit.pas @@ -1964,7 +1964,7 @@ end; procedure TSimbaForm.MenuItemHandbookClick(Sender: TObject); begin - OpenURL('http://wizzup.org/static/simba/doc/ps_handbook/'); + OpenURL('http://wizzup.org/static/simbadoc/'); end; procedure TSimbaForm.MenuItemColourHistoryClick(Sender: TObject);