64 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # This file is part of ROBOTGAME
 | |
| #
 | |
| # ROBOTGAME is free software: you can redistribute it and/or modify it under the
 | |
| # terms of the GNU General Public License as published by the Free Software
 | |
| # Foundation, either version 3 of the License, or (at your option) any later
 | |
| # version.
 | |
| #
 | |
| # ROBOTGAME is distributed in the hope that it will be useful, but WITHOUT ANY
 | |
| # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 | |
| # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 | |
| #
 | |
| # You should have received a copy of the GNU General Public License along with
 | |
| # ROBOTGAME.  If not, see <http://www.gnu.org/licenses/>.
 | |
| #
 | |
| # ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 | |
| #
 | |
| #                          trigger.py
 | |
| #                     --------------------
 | |
| #       date created : Thu Aug 9 2012
 | |
| #          copyright : (C) 2012 Sakse Dalum
 | |
| #      maintained by : Sakse Dalum <don_s@hongabar.org>
 | |
| 
 | |
| """
 | |
| A generic trigger pad.
 | |
| """
 | |
| 
 | |
| import pygame
 | |
| 
 | |
| import worldobject
 | |
| 
 | |
| class Trigger(worldobject.WorldObject):
 | |
|     def __init__(self, level, x, y, links, img, trigger_objs,
 | |
|                  toggling=False, signal=[0, 1],
 | |
|                  setting=False, blocking=False,
 | |
|                  visible=True):
 | |
|         self.__dict__.update(locals())
 | |
|         worldobject.WorldObject.__init__(self, level, x, y, z=-48,
 | |
|                                          blocking=blocking, visible=visible)
 | |
| 
 | |
|         self.frame = 0
 | |
|         self.anim_speed = 15
 | |
| 
 | |
|     def trigger(self, setting, obj):
 | |
|         if self.setting != setting:
 | |
|             self.setting = setting
 | |
| 
 | |
|             for link in self.links:
 | |
|                 link(self.signal[setting])
 | |
| 
 | |
|     def update(self, e, t, dt):
 | |
|         for obj in self.trigger_objs:
 | |
|             if self.x == obj.x and self.y == obj.y:
 | |
|                 self.trigger(True, obj)
 | |
|                 break
 | |
|             self.trigger(False, None)
 | |
| 
 | |
|         worldobject.WorldObject.update(self, e, t, dt)
 | |
| 
 | |
|     def draw(self, window):
 | |
|         if self.visible:
 | |
|             window.blit(self.img, (self.x - 32 - self.level.camera_x,
 | |
|                                    self.y - self.img.get_size()[1] + 24
 | |
|                                    - self.level.camera_y))
 | 
