1
0
mirror of https://github.com/moparisthebest/Simba synced 2024-08-13 16:53:59 -04:00

Merge branch 'master' of ssh://villavu.com:54367/simba

This commit is contained in:
Merlijn Wajer 2010-06-29 18:18:57 +02:00
commit 1e401abe97
7 changed files with 141 additions and 33 deletions

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -193,6 +193,8 @@ exports
{ Finder }
findColor,
findColors,
findColorTolerance,
findColorsTolerance,
{ Mem Management }
fpc_freemem_,

View File

@ -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

38
Projects/MMLLib/pymml/pres.py Executable file
View File

@ -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

View File

@ -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);