ya2 · news · projects · code · about

fixed cursor
authorFlavio Calva <f.calva@gmail.com>
Thu, 3 Feb 2022 17:41:20 +0000 (18:41 +0100)
committerFlavio Calva <f.calva@gmail.com>
Thu, 3 Feb 2022 17:41:20 +0000 (18:41 +0100)
lib/engine/gui/cursor.py
pmachines/menu.py
prj.org

index a73c1c355c8bb95799cf2f4fdc7c4ced58778080..2e9724e277682b3014e2208de1d3c04a0bd2304b 100644 (file)
@@ -26,7 +26,7 @@ class MouseCursor(GameObject, MouseCursorFacade):
         self.hotspot_dy = scale[2] * (1 - 2 * hotspot[1])
         #self.eng.attach_obs(self.on_frame)
         #self.eng.attach_obs(self.on_frame_unpausable)
-        taskMgr.add(self.__on_frame, 'on frame cursor')
+        self._tsk = taskMgr.add(self.__on_frame, 'on frame cursor')
 
     @staticmethod
     def __set_std_cursor(show):
@@ -59,3 +59,7 @@ class MouseCursor(GameObject, MouseCursorFacade):
 
     def set_image(self, img):
         self.cursor_img.img.set_texture(loader.load_texture(img), 1)
+
+    def destroy(self):
+        taskMgr.remove(self._tsk)
+        self.cursor_img.destroy()
index 7849830f7b8b5b67d7fd320011d459e757a9210a..a087b53f29279d6d8d506967d34c2693baf26ed3 100644 (file)
@@ -177,6 +177,9 @@ class Menu:
                         member != Scene:
                     scene_classes += [member]
         self.destroy()
+        self._cursor = MouseCursor(
+            'assets/buttons/arrowUpLeft.png', (.04, 1, .04), (.5, .5, .5, 1),
+            (.01, .01))
         self._widgets = []
         cmn = self._common_btn.copy() | {
             'frameSize': (-2.4, 2.4, -2.4, 2.4),
@@ -200,10 +203,16 @@ class Menu:
 
     def on_options(self):
         self.destroy()
+        self._cursor = MouseCursor(
+            'assets/buttons/arrowUpLeft.png', (.04, 1, .04), (.5, .5, .5, 1),
+            (.01, .01))
         self._set_options()
 
     def on_credits(self):
         self.destroy()
+        self._cursor = MouseCursor(
+            'assets/buttons/arrowUpLeft.png', (.04, 1, .04), (.5, .5, .5, 1),
+            (.01, .01))
         self._set_credits()
 
     def _rearrange_width(self):
@@ -266,6 +275,9 @@ class Menu:
     def on_back(self):
         self._opt_file.store()
         self.destroy()
+        self._cursor = MouseCursor(
+            'assets/buttons/arrowUpLeft.png', (.04, 1, .04), (.5, .5, .5, 1),
+            (.01, .01))
         self._set_main()
 
     def destroy(self):
diff --git a/prj.org b/prj.org
index b4ac90e9e5fcc844bae90f45cfa88ec6cb43d997..fdd9cce7bebbdd5d52a446c8e5cec0b6651b6e9d 100644 (file)
--- a/prj.org
+++ b/prj.org
@@ -1,6 +1,5 @@
 * issues
 * todo
-** bug: multiple cursors
 ** automatic creation of scene buttons
 ** frame for the end of the level (back, replay, next level)
 ** create one level per item, then levels with more items