ya2 · news · projects · code · about

abstract test positions in world units
[pmachines.git] / pmachines / scenes / scene_teeter_tooter.py
CommitLineData
4586cbf6
FC
1from pmachines.scene import Scene
2from pmachines.items.box import Box
3from pmachines.items.shelf import Shelf
4from pmachines.items.domino import Domino, UpStrategy, DownStrategy
5from pmachines.items.basketball import Basketball
6from pmachines.items.teetertooter import TeeterTooter
80d579b1
FC
7
8
9class SceneTeeterTooter(Scene):
10
80d579b1
FC
11 @staticmethod
12 def name():
13 return _('Teeter tooter')
14
15 def _set_items(self):
80d579b1
FC
16 self.items += [Box(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=3, count=1, friction=1)]
17 #self.items += [TeeterTooter(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=5, count=2)]
18 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(-2.76, 0, -1.45))]
19 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(-.56, 0, -1.45))]
20 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(2.27, 0, -.28))]
21 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(4.38, 0, -.28))]
22 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(1.67, 0, -1.45))]
23 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(3.78, 0, -1.45))]
24 self.items += [TeeterTooter(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(-2.74, 0, -1.20))]
25 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=1, r=-25.30, friction=1, pos=(-2.78, 0, -.93))]
26 self.items += [Box(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=.2, friction=1, model_scale=.5, pos=(-3.61, 0, -.99), r=-25.30)]
27 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(-.25, 0, -.57), r=52)]
28 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(1.73, 0, -.89))]
29 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 35))
30 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(2.57, 0, -.89))]
31 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 35))
32 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(3.50, 0, -.89))]
33 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 35))
34 #self.items += [Basketball(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=3)]
35 #self.items += [TeeterTooter(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=3)]
36
067a36db
FC
37 def _define_test_items(self):
38 self._pos_mgr.register('drag_start_0', (60, 60))
39 self._set_test_item('drag_stop_0', (-2.65, 1.18))
40 self._set_test_item('drag_stop_1', (-2.65, 3.27))
41 self._set_test_item('drag_start_1', (-2.3, 3.75))
42 self._set_test_item('drag_stop_2', (-2.5, 3.66))
43
80d579b1
FC
44 def _instr_txt(self):
45 txt = _('Scene: ') + self.name() + '\n\n'
46 txt += _('Goal: you must hit every domino piece\n\n')
47 txt += _('keep \5mouse_l\5 pressed to drag an item\n\n'
48 'keep \5mouse_r\5 pressed to rotate an item')
49 return txt
50
51 def _win_condition(self):
52 return all(itm.strategy.win_condition() for itm in self.items) and not self._paused