def Magic(self): self.magicpop = Magic(df=self.model._df) try: self.magicpop.Magic() self.magicpop.show() except (KeyError): self.ErrorEvent()
def useMagic(self): ''' When space bar is pressed, magic is thrown towards the mouse pointer Or infront of the character *Choice* ''' pos = self.rect.center self.magi = Magic(pos[0], pos[1], self.dirVec, self) self.magi.add(self.gameState.weaponGroup)
def main(loglevel=logging.INFO): Magic(loglevel=loglevel)._dump() SmkmStoreMgr(loglevel=loglevel)._dump() Smkm(loglevel=loglevel)._dump() SmkmStoreMetadata(loglevel=loglevel)._dump() SmkmStore(loglevel=loglevel)._dump() StStore(loglevel=loglevel)._dump() StDataMgr(loglevel=loglevel)._dump() return
def on_touch_down(self, touch): target_x = touch.x + 25 / 2 #so that the middle of the magic hits the cursor target_y = touch.y + 25 / 2 #same as above #dammmmn son lookit that trig #and you thought high school math was worthless hyp = math.sqrt((target_y - self.player.center_y)**2 + (target_x - self.player.center_x)**2) r = math.asin((target_x - self.player.center_x) / hyp) x = math.sin(r) y = math.cos(r) if target_y - self.player.y < 0: #makes sure it goes in the right direction, screws up for some reason if i do the x axis too y *= -1 self.add_widget( Magic(pos=self.player.pos, size=(25, 25), x_comp=x, y_comp=y))
def get_channels(): subs = request.form subs.to_dict() try: for subs_id in subs["subscriber"].split(","): subs_id = int(subs_id) if subs_id else None except ValueError: logging.error("{}: {}".format(sys.exc_info()[0], sys.exc_info()[1])) logging.error("".join(traceback.format_tb(sys.exc_info()[2]))) return "Incorrect subscriber ID: '{}'! Consider to use another one!".format( subs_id) else: result = Magic().reformat_chains(subs["subscriber"], subs.get("reason", 0)) return render_template( "do_the_thing.html", channels=result) if result else "Nothing was found!"
class Player(Collider.Collider): ''' Player class. images is a list of images for each direction. We may need to alter this to support animation. ''' def __init__(self, gameState): super(Player,self).__init__() # load all images # up, down, left, right self.images = [0] * 4 self.images[UP], self.rect = util.loadImage(PLAYER_IDLE_UP) self.images[DOWN], self.rect = util.loadImage(PLAYER_IDLE_DOWN) self.images[LEFT], self.rect = util.loadImage(PLAYER_IDLE_LEFT) self.images[RIGHT], self.rect = util.loadImage(PLAYER_IDLE_RIGHT) self.direction = UP # assign image and position self.setImage(self.images[self.direction]) self.setPos(START_X, START_Y) # load sword self.swordLeft = pygame.sprite.Sprite() self.swordLeft.image, self.swordLeft.rect = util.loadImage(SWORD_LEFT) self.swordUp = pygame.sprite.Sprite() self.swordUp.image, self.swordUp.rect = util.loadImage(SWORD_UP) self.swordRight = pygame.sprite.Sprite() self.swordRight.image, self.swordRight.rect = util.loadImage(SWORD_RIGHT) self.swordDown = pygame.sprite.Sprite() self.swordDown.image, self.swordDown.rect = util.loadImage(SWORD_DOWN) self.gameState = gameState #health self.health = 10 self.alive = True # Orient player with mouse def orient(self, mousePos): self.dirVec = mousePos - Vector2(self.getPos()) angle = math.atan2(self.dirVec.x, self.dirVec.y) mag = math.fabs(angle) # if we're facing to the right if mag < math.pi / 4: self.setDir(DOWN) # move left elif mag > 3 * math.pi / 4: self.setDir(UP) # either up or down else: if angle < 0: self.setDir(LEFT) else: self.setDir(RIGHT) def setDir(self, newDir): self.direction = newDir self.image = self.images[self.direction] # TODO: FIX THIS def swingSword(self): ''' When left mouse is pressed, sword is pushed out ''' if self.direction == UP: self.swordUp.rect.bottomleft = self.rect.topleft self.swordUp.add(self.gameState.playerGroup) elif self.direction == DOWN: self.swordDown.rect.topleft = self.rect.bottomleft self.swordDown.add(self.gameState.playerGroup) elif self.direction == LEFT: self.swordLeft.rect.topright = self.rect.topleft self.swordLeft.add(self.gameState.playerGroup) elif self.direction == RIGHT: self.swordRight.rect.topleft = self.rect.topright self.swordRight.add(self.gameState.playerGroup) # TODO: Add to this def shootBow(self): ''' When right mouse is pressed, arrow is fire infront of character ''' print "Arrow Fired" # TODO: Add to this def useMagic(self): ''' When space bar is pressed, magic is thrown towards the mouse pointer Or infront of the character *Choice* ''' pos = self.rect.center self.magi = Magic(pos[0], pos[1], self.dirVec, self) self.magi.add(self.gameState.weaponGroup) def update(self, clock, player, enemies, surfaces): from config import keyboard, keymap #am i alive? if (self.health <= 0): self.alive = False vel = Vector2(0, 0); if keyboard.down(keymap.UP): vel.y -= 1 elif keyboard.down(keymap.DOWN): vel.y += 1 if keyboard.down(keymap.LEFT): vel.x -= 1 elif keyboard.down(keymap.RIGHT): vel.x += 1 self.vel = vel.normalized() * PLAYER_SPEED super(Player, self).update(clock, player, enemies, surfaces) if keyboard.downup(keymap.MAGIC): self.useMagic() # Check to see if we have touched edge of the screen if self.rect.left < config.TILEX * 2: self.gameState.nextMap("left", self.getPos()) elif self.rect.right > config.WIDTH - config.TILEX * 2: self.gameState.nextMap("right", self.getPos()) elif self.rect.top < 0: self.gameState.nextMap("up", self.getPos()) elif self.rect.bottom > config.HEIGHT: self.gameState.nextMap("down", self.getPos()) def getHealth(self): return self.health def damaged(self, damage): self.health -= damage def attack(self, target, damage): target.damaged(damage)
from Person import Person from Magic import Magic print("This is the instruction.........") # Magic fire = Magic("Fire", 10, 30, "dark") wind = Magic("Wind", 15, 50, "dark") ice = Magic("Ice", 20, 70, "dark") magic_list = [fire, wind, ice] player = Person("Daniel", 500, 100, 50, magic_list) enemy = Person("Vampire", 1000, 100, 20, magic_list) player.stats() enemy.stats() print("______________________") running = True while running: # PLAYER'S TURN print(player.name) print("Choose your action: ") player.choose_action() try: choice = int(input(">>>: ")) except ValueError: print("Choose a number !") continue action_index = choice - 1
def __init__(self, name, usage=None, rc=Struct(opts=None, args=None), user_ns=None): # Put a reference to self in builtins so that any form of embedded or # imported code can test for being inside IPython. __builtin__.__dict__['__IPYTHON__'] = self # Keep in the builtins a flag for when IPython is active. We set it # with setdefault so that multiple nested IPythons don't clobber one # another. Each will increase its value by one upon being activated, # which also gives us a way to determine the nesting level. __builtin__.__dict__.setdefault('__IPYTHON__active', 0) # Create the namespace where the user will operate: # FIXME. For some strange reason, __builtins__ is showing up at user # level as a dict instead of a module. This is a manual fix, but I # should really track down where the problem is coming from. Alex # Schmolck reported this problem first. if user_ns is None: self.user_ns = { '__name__': '__IPYTHON__main__', name: self, '__builtins__': __builtin__, } else: self.user_ns = user_ns # We need to insert into sys.modules something that looks like a # module but which accesses the IPython namespace, for shelve and # pickle to work interatctively. Normally they rely on getting # everything out of __main__, but for embedding purposes each IPython # instance has its own private namespace, so we can't go shoving # everything into __main__. try: main_name = self.user_ns['__name__'] except KeyError: raise KeyError, 'user_ns dictionary MUST have a "__name__" key' else: sys.modules[main_name] = _FakeModule(self.user_ns) # List of input with multi-line handling. # Fill its zero entry, user counter starts at 1 self.input_hist = InputList(['\n']) # list of visited directories self.dir_hist = [os.getcwd()] # dict of output history self.output_hist = {} # make global variables for user access to these self.user_ns['_ih'] = self.input_hist self.user_ns['_oh'] = self.output_hist self.user_ns['_dh'] = self.dir_hist # user aliases to input and output histories self.user_ns['In'] = self.user_ns['_ih'] self.user_ns['Out'] = self.user_ns['_oh'] # class initializations code.InteractiveConsole.__init__(self, locals=self.user_ns) Logger.__init__(self, log_ns=self.user_ns) Magic.__init__(self) # an ugly hack to get a pointer to the shell, so I can start writing magic # code via this pointer instead of the current mixin salad. Magic.set_shell(self, self) # hooks is a Struct holding pointers to various system hooks, and will # be used for further user-side customizations in the future #self.hooks = Struct(ps1 = sys.ps1,ps2 = sys.ps2,display = sys.displayhook) self.hooks = Struct() self.name = name self.usage_min = """\ An enhanced console for Python. Features are: - Readline support if present - Completion in the local namespace, eg. type TAB twice at the prompt. - Logging of input, see command-line options. - Systemshell escape by the ! , eg !ls - Magic commands, starting with a @ (like @ls, @pwd, @cd, etc.) - Keeps track of locally defined variables @who, @whos - Show object information with a ? eg ?x or x? (use ?? for more info). """ if usage: self.usage = usage else: self.usage = self.usage_min # Storage self.rc = rc # This will hold all configuration information self.inputcache = [] self._boundcache = [] self.pager = 'less' # temporary files used for various purposes. Deleted at exit. self.tempfiles = [] # for pushd/popd management try: self.home_dir = get_home_dir() except HomeDirError: if os.name == 'dos': # final, desperate hack for Win9x self.home_dir = os.path.join('C:', 'Program Files', 'IPython') else: print 'Unsupported operating system:', os.name print 'Exiting...' sys.exit() self.dir_stack = [os.getcwd().replace(self.home_dir, '~')] # escapes for automatic behavior on the command line self.ESC_SHELL = '!' self.ESC_HELP = '?' self.ESC_MAGIC = '@' self.ESC_QUOTE = ',' self.ESC_PAREN = '/' # RegExp for splitting line contents into pre-char//first word-method//rest # update the regexp if the above escapes are changed self.line_split = re.compile( r'(^[\s*!\?@,/]?)([\?\w\.]+\w*\s*)(\(?.*$)') # RegExp to identify potential function names self.fun_name = re.compile(r'[a-zA-Z_]([a-zA-Z0-9_.]*) ?$') # try to catch also methods for stuff in lists/tuples/dicts: # off (experimental). For this to work, the line_split regexp would # need to be modified so it wouldn't break things at '['. That line # is nasty enough that I shouldn't change it until I can test it _well_. #self.fun_name = re.compile (r'[a-zA-Z_]([a-zA-Z0-9_.\[\]]*) ?$') # keep track of where we started running (mainly for crash post-mortem) self.starting_dir = os.getcwd() # Attributes for Logger mixin class, make defaults here self._dolog = 0 self.LOG = '' self.LOGDEF = '.InteractiveShell.log' self.LOGMODE = 'over' self.LOGHEAD = Itpl( """#log# Automatic Logger file. *** THIS MUST BE THE FIRST LINE *** #log# DO NOT CHANGE THIS LINE OR THE TWO BELOW #log# opts = $self.rc.opts #log# args = $self.rc.args #log# It is safe to make manual edits below here. #log#----------------------------------------------------------------------- """) # Various switches which can be set self.CACHELENGTH = 5000 # this is cheap, it's just text self.BANNER = itpl("Python $sys.version on $sys.platform\n" "$sys.copyright\nIPP\nType ? for more help\n") # TraceBack handlers: # Need two, one for syntax errors and one for other exceptions. # plain/color self.SyntaxTB = ultraTB.ListTB(color_scheme='NoColor') # This one is initialized with an offset, meaning we always want to # remove the topmost item in the traceback, which is our own internal # code. Valid modes: plain/color/verbose self.InteractiveTB = ultraTB.AutoFormattedTB(mode='Plain', color_scheme='NoColor', tb_offset=1) # Object inspector ins_colors = OInspect.InspectColors code_colors = PyColorize.ANSICodeColors self.inspector = OInspect.Inspector(ins_colors, code_colors, 'NoColor') # List of shell commands to auto-define if os.name == 'posix': auto_shell = { 'ls': 'ls -F', 'mkdir': 'mkdir', 'rmdir': 'rmdir', 'mv': 'mv', 'rm': 'rm -i', 'rmf': 'rm -f', 'less': 'less', 'cat': 'cat', 'clear': 'clear', 'lc': 'ls -F -o --color' } elif os.name == 'nt': auto_shell = { 'dir': 'dir /on', 'ls': 'dir /on', 'ddir': 'dir /ad /on', 'ld': 'dir /ad /on', 'mkdir': 'mkdir', 'rmdir': 'rmdir', 'ren': 'ren', 'cls': 'cls', 'more': 'type', 'type': 'type' } else: auto_shell = {} for name, cmd in auto_shell.items(): self.magic_alias(name + ' ' + cmd)
from easymode_game import Person from Magic import Magic print("This is the instruction") #magic fire = Magic("Fire",10,30,"red") water = Magic("Water",20,10,"nocolor") magic_list = [fire,water] player=Person("Edward",500,100,50,magic_list) enemy=Person("Vampire",1000,100,20,magic_list) player.get_stats() enemy.get_stats() running=True while running: #PLAYER TURN print(player.name) print("Choose your action") player.choose_action() try: choice=int(input(">>>:")) except ValueError: print("Choose a proper number!") continue action_index=choice - 1
class Ui_MainWindow(QtWidgets.QMainWindow): # raw=0 raw = pd.DataFrame(index=[], columns=[]) # raw is initialized as a blank dataframe Language = '' app = QtWidgets.QApplication(sys.argv) myStyle = MyProxyStyle( 'Fusion') # The proxy style should be based on an existing style, # like 'Windows', 'Motif', 'Plastique', 'Fusion', ... app.setStyle(myStyle) trans = QtCore.QTranslator() talk = '' targetversion = '0' def __init__(self): super(Ui_MainWindow, self).__init__() self.setObjectName('MainWindow') self.resize(800, 600) _translate = QtCore.QCoreApplication.translate self.setWindowTitle(_translate('MainWindow', u'GeoPython')) self.setWindowIcon(QIcon(LocationOfMySelf + '/geopython.png')) self.talk = _translate( 'MainWindow', 'You are using GeoPython ') + version + '\n' + _translate( 'MainWindow', 'released on ') + date self.model = PandasModel(self.raw) self.main_widget = QWidget(self) self.centralwidget = QtWidgets.QWidget() self.centralwidget.setObjectName('centralwidget') self.setCentralWidget(self.centralwidget) self.tableView = CustomQTableView(self.centralwidget) self.tableView.setObjectName('tableView') self.tableView.setSortingEnabled(True) self.pushButtonOpen = QtWidgets.QPushButton(self.centralwidget) self.pushButtonOpen.setObjectName('pushButtonOpen') self.pushButtonSave = QtWidgets.QPushButton(self.centralwidget) self.pushButtonSave.setObjectName('pushButtonSave') self.pushButtonSort = QtWidgets.QPushButton(self.centralwidget) self.pushButtonSort.setObjectName('pushButtonSort') self.pushButtonQuit = QtWidgets.QPushButton(self.centralwidget) self.pushButtonQuit.setObjectName('pushButtonQuit') self.pushButtonUpdate = QtWidgets.QPushButton(self.centralwidget) self.pushButtonUpdate.setObjectName('pushButtonUpdate') w = self.width() h = self.height() if h < 360: h = 360 self.resize(w, h) if w < 640: w = 640 self.resize(w, h) step = (w * 94 / 100) / 5 foot = h * 3 / 48 #if foot<=10: foot=10 self.tableView.setGeometry( QtCore.QRect(w / 100, h / 48, w * 98 / 100, h * 38 / 48)) self.pushButtonOpen.setGeometry( QtCore.QRect(w / 100, h * 40 / 48, step, foot)) self.pushButtonSave.setGeometry( QtCore.QRect(2 * w / 100 + step, h * 40 / 48, step, foot)) self.pushButtonSort.setGeometry( QtCore.QRect(3 * w / 100 + step * 2, h * 40 / 48, step, foot)) self.pushButtonQuit.setGeometry( QtCore.QRect(4 * w / 100 + step * 3, h * 40 / 48, step, foot)) self.pushButtonUpdate.setGeometry( QtCore.QRect(5 * w / 100 + step * 4, h * 40 / 48, step, foot)) self.menubar = QtWidgets.QMenuBar(self) self.menubar.setGeometry(QtCore.QRect(0, 0, 1000, 22)) self.menubar.setNativeMenuBar(True) self.menubar.setObjectName('menubar') self.menuFile = QtWidgets.QMenu(self.menubar) self.menuFile.setObjectName('menuFile') self.menuGeoChem = QtWidgets.QMenu(self.menubar) self.menuGeoChem.setObjectName('menuGeoChem') self.menuStructure = QtWidgets.QMenu(self.menubar) self.menuStructure.setObjectName('menuStructure') self.menuCalc = QtWidgets.QMenu(self.menubar) self.menuCalc.setObjectName('menuCalc') self.menuStat = QtWidgets.QMenu(self.menubar) self.menuStat.setObjectName('menuStat') self.menuMore = QtWidgets.QMenu(self.menubar) self.menuMore.setObjectName('menuMore') self.menuHelp = QtWidgets.QMenu(self.menubar) self.menuHelp.setObjectName('menuHelp') self.menuLanguage = QtWidgets.QMenu(self.menubar) self.menuLanguage.setObjectName('menuLanguage') self.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(self) self.statusbar.setObjectName('statusbar') self.setStatusBar(self.statusbar) self.actionOpen = QtWidgets.QAction( QIcon(LocationOfMySelf + '/open.png'), u'Open', self) self.actionOpen.setObjectName('actionOpen') self.actionOpen.setShortcut('Ctrl+O') self.actionSave = QtWidgets.QAction( QIcon(LocationOfMySelf + '/save.png'), u'Save', self) self.actionSave.setObjectName('actionSave') self.actionSave.setShortcut('Ctrl+S') self.actionCnWeb = QtWidgets.QAction( QIcon(LocationOfMySelf + '/forum.png'), u'Chinese Forum', self) self.actionCnWeb.setObjectName('actionCnWeb') self.actionEnWeb = QtWidgets.QAction( QIcon(LocationOfMySelf + '/forum.png'), u'English Forum', self) self.actionEnWeb.setObjectName('actionEnWeb') self.actionGoGithub = QtWidgets.QAction( QIcon(LocationOfMySelf + '/github.png'), u'GitHub', self) self.actionGoGithub.setObjectName('actionGoGithub') self.actionVersionCheck = QtWidgets.QAction( QIcon(LocationOfMySelf + '/update.png'), u'Version', self) self.actionVersionCheck.setObjectName('actionVersionCheck') self.actionCnS = QtWidgets.QAction( QIcon(LocationOfMySelf + '/cns.png'), u'Simplified Chinese', self) self.actionCnS.setObjectName('actionCnS') self.actionCnT = QtWidgets.QAction( QIcon(LocationOfMySelf + '/cnt.png'), u'Traditional Chinese', self) self.actionCnT.setObjectName('actionCnT') self.actionEn = QtWidgets.QAction(QIcon(LocationOfMySelf + '/en.png'), u'English', self) self.actionEn.setObjectName('actionEn') self.actionLoadLanguage = QtWidgets.QAction( QIcon(LocationOfMySelf + '/lang.png'), u'Load Language', self) self.actionLoadLanguage.setObjectName('actionLoadLanguage') self.actionTAS = QtWidgets.QAction(QIcon(LocationOfMySelf + '/xy.png'), u'TAS', self) self.actionTAS.setObjectName('actionTAS') self.actionTrace = QtWidgets.QAction( QIcon(LocationOfMySelf + '/spider2.png'), u'Trace', self) self.actionTrace.setObjectName('actionTrace') self.actionRee = QtWidgets.QAction( QIcon(LocationOfMySelf + '/spider2.png'), u'Ree', self) self.actionRee.setObjectName('actionRee') self.actionPearce = QtWidgets.QAction( QIcon(LocationOfMySelf + '/spider.png'), u'Pearce', self) self.actionPearce.setObjectName('actionPearce') self.actionHarker = QtWidgets.QAction( QIcon(LocationOfMySelf + '/spider.png'), u'Harker', self) self.actionHarker.setObjectName('actionHarker') self.actionStereo = QtWidgets.QAction( QIcon(LocationOfMySelf + '/structure.png'), u'Stereo', self) self.actionStereo.setObjectName('actionStereo') self.actionRose = QtWidgets.QAction( QIcon(LocationOfMySelf + '/rose.png'), u'Rose', self) self.actionRose.setObjectName('actionRose') self.actionQFL = QtWidgets.QAction( QIcon(LocationOfMySelf + '/triangular.png'), u'QFL', self) self.actionQFL.setObjectName('actionQFL') self.actionQmFLt = QtWidgets.QAction( QIcon(LocationOfMySelf + '/triangular.png'), u'QmFLt', self) self.actionQmFLt.setObjectName('actionQmFLt') self.actionCIPW = QtWidgets.QAction( QIcon(LocationOfMySelf + '/calc.png'), u'CIPW', self) self.actionCIPW.setObjectName('actionCIPW') self.actionZirconCe = QtWidgets.QAction( QIcon(LocationOfMySelf + '/calc.png'), u'ZirconCe', self) self.actionZirconCe.setObjectName('actionZirconCe') self.actionZirconTiTemp = QtWidgets.QAction( QIcon(LocationOfMySelf + '/temperature.png'), u'ZirconTiTemp', self) self.actionZirconTiTemp.setObjectName('actionZirconTiTemp') self.actionRutileZrTemp = QtWidgets.QAction( QIcon(LocationOfMySelf + '/temperature.png'), u'RutileZrTemp', self) self.actionRutileZrTemp.setObjectName('actionRutileZrTemp') self.actionCluster = QtWidgets.QAction( QIcon(LocationOfMySelf + '/cluster.png'), u'Cluster', self) self.actionCluster.setObjectName('actionCluster') self.actionMultiDimention = QtWidgets.QAction( QIcon(LocationOfMySelf + '/multiple.png'), u'MultiDimention', self) self.actionMultiDimention.setObjectName('actionMultiDimention') self.actionQAPF = QtWidgets.QAction( QIcon(LocationOfMySelf + '/qapf.png'), u'QAPF', self) self.actionQAPF.setObjectName('actionQAPF') self.actionMudStone = QtWidgets.QAction( QIcon(LocationOfMySelf + '/triangular.png'), u'MudStone', self) self.actionMudStone.setObjectName('actionMudStone') self.actionXY = QtWidgets.QAction(QIcon(LocationOfMySelf + '/xy.png'), u'X-Y', self) self.actionXY.setObjectName('actionXY') self.actionXYZ = QtWidgets.QAction( QIcon(LocationOfMySelf + '/triangular.png'), u'Triangular', self) self.actionXYZ.setObjectName('actionXYZ') self.actionMagic = QtWidgets.QAction( QIcon(LocationOfMySelf + '/magic.png'), u'Magic', self) self.actionMagic.setObjectName('actionMagic') self.menuFile.addAction(self.actionOpen) self.menuFile.addAction(self.actionSave) self.menuGeoChem.addAction(self.actionTAS) self.menuGeoChem.addAction(self.actionTrace) self.menuGeoChem.addAction(self.actionRee) self.menuGeoChem.addAction(self.actionPearce) self.menuGeoChem.addAction(self.actionHarker) self.menuStructure.addAction(self.actionStereo) self.menuStructure.addAction(self.actionRose) self.menuStructure.addAction(self.actionQFL) self.menuStructure.addAction(self.actionQmFLt) self.menuCalc.addAction(self.actionCIPW) self.menuCalc.addAction(self.actionZirconCe) self.menuCalc.addAction(self.actionZirconTiTemp) self.menuCalc.addAction(self.actionRutileZrTemp) self.menuStat.addAction(self.actionCluster) self.menuStat.addAction(self.actionMultiDimention) self.menuMore.addAction(self.actionMudStone) self.menuMore.addAction(self.actionQAPF) self.menuMore.addAction(self.actionXY) self.menuMore.addAction(self.actionXYZ) self.menuMore.addAction(self.actionMagic) self.menuHelp.addAction(self.actionCnWeb) self.menuHelp.addAction(self.actionEnWeb) self.menuHelp.addAction(self.actionGoGithub) self.menuHelp.addAction(self.actionVersionCheck) self.menuLanguage.addAction(self.actionCnS) self.menuLanguage.addAction(self.actionCnT) self.menuLanguage.addAction(self.actionEn) self.menuLanguage.addAction(self.actionLoadLanguage) self.menubar.addAction(self.menuFile.menuAction()) self.menubar.addSeparator() self.menubar.addAction(self.menuGeoChem.menuAction()) self.menubar.addSeparator() self.menubar.addAction(self.menuStructure.menuAction()) self.menubar.addSeparator() self.menubar.addAction(self.menuCalc.menuAction()) self.menubar.addSeparator() self.menubar.addAction(self.menuStat.menuAction()) self.menubar.addSeparator() self.menubar.addAction(self.menuMore.menuAction()) self.menubar.addSeparator() self.menubar.addAction(self.menuHelp.menuAction()) self.menubar.addSeparator() self.menubar.addAction(self.menuLanguage.menuAction()) self.menubar.addSeparator() self.actionTAS.triggered.connect(self.TAS) self.actionTrace.triggered.connect(self.Trace) self.actionRee.triggered.connect(self.REE) self.actionPearce.triggered.connect(self.Pearce) self.actionHarker.triggered.connect(self.Harker) self.actionQAPF.triggered.connect(self.QAPF) self.actionStereo.triggered.connect(self.Stereo) self.actionRose.triggered.connect(self.Rose) self.actionQFL.triggered.connect(self.QFL) self.actionQmFLt.triggered.connect(self.QmFLt) self.actionCIPW.triggered.connect(self.CIPW) self.actionZirconCe.triggered.connect(self.ZirconCe) self.actionZirconTiTemp.triggered.connect(self.ZirconTiTemp) self.actionRutileZrTemp.triggered.connect(self.RutileZrTemp) self.actionCluster.triggered.connect(self.Cluster) self.actionMultiDimention.triggered.connect(self.MultiDimension) self.actionOpen.triggered.connect(self.getDataFile) self.actionSave.triggered.connect(self.saveDataFile) self.actionCnWeb.triggered.connect(self.goCnBBS) self.actionEnWeb.triggered.connect(self.goEnBBS) self.actionGoGithub.triggered.connect(self.goGitHub) self.actionVersionCheck.triggered.connect(self.checkVersion) self.actionCnS.triggered.connect(self.to_ChineseS) self.actionCnT.triggered.connect(self.to_ChineseT) self.actionEn.triggered.connect(self.to_English) self.actionLoadLanguage.triggered.connect(self.to_LoadLanguage) self.actionXY.triggered.connect(self.XY) self.actionXYZ.triggered.connect(self.XYZ) self.actionMagic.triggered.connect(self.Magic) self.actionMudStone.triggered.connect(self.Mud) self.pushButtonOpen.clicked.connect(self.getDataFile) self.pushButtonSave.clicked.connect(self.saveDataFile) self.pushButtonSort.clicked.connect(self.SetUpDataFile) self.pushButtonQuit.clicked.connect(qApp.quit) self.pushButtonUpdate.clicked.connect(self.checkVersion) self.actionQuit = QtWidgets.QAction('Quit', self) self.actionQuit.setShortcut('Ctrl+Q') self.actionQuit.setObjectName('actionQuit') self.actionQuit.triggered.connect(qApp.quit) self.pushButtonOpen.setText(_translate('MainWindow', u'Open Data')) self.pushButtonSave.setText(_translate('MainWindow', u'Save Data')) self.pushButtonSort.setText(_translate('MainWindow', u'Set Format')) self.pushButtonQuit.setText(_translate('MainWindow', u'Quit App')) self.pushButtonUpdate.setText(_translate('MainWindow', u'Check Update')) self.pushButtonOpen.setIcon(QtGui.QIcon(LocationOfMySelf + '/open.png')) self.pushButtonSave.setIcon(QtGui.QIcon(LocationOfMySelf + '/save.png')) self.pushButtonSort.setIcon(QtGui.QIcon(LocationOfMySelf + '/set.png')) self.pushButtonQuit.setIcon(QtGui.QIcon(LocationOfMySelf + '/quit.png')) self.pushButtonUpdate.setIcon( QtGui.QIcon(LocationOfMySelf + '/update.png')) self.menuFile.setTitle(_translate('MainWindow', u'Data File')) self.menuGeoChem.setTitle(_translate('MainWindow', u'Geochemistry')) self.menuStructure.setTitle(_translate('MainWindow', u'Structure')) self.menuCalc.setTitle(_translate('MainWindow', u'Calculation')) self.menuStat.setTitle(_translate('MainWindow', u'Statistics')) self.menuMore.setTitle(_translate('MainWindow', u'Others')) self.menuHelp.setTitle(_translate('MainWindow', u'Help')) self.menuLanguage.setTitle(_translate('MainWindow', u'Language')) self.actionOpen.setText(_translate('MainWindow', u'Open Data')) self.actionSave.setText(_translate('MainWindow', u'Save Data')) self.actionTAS.setText(_translate('MainWindow', u'TAS')) self.actionTrace.setText(_translate('MainWindow', u'Trace')) self.actionRee.setText(_translate('MainWindow', u'REE')) self.actionPearce.setText(_translate('MainWindow', u'Pearce')) self.actionHarker.setText(_translate('MainWindow', u'Harker')) self.actionQAPF.setText(_translate('MainWindow', u'QAPF')) self.actionStereo.setText(_translate('MainWindow', u'Stereo')) self.actionRose.setText(_translate('MainWindow', u'Rose')) self.actionQFL.setText(_translate('MainWindow', u'QFL')) self.actionQmFLt.setText(_translate('MainWindow', u'QmFLt')) self.actionCIPW.setText(_translate('MainWindow', u'CIPW')) self.actionZirconCe.setText(_translate('MainWindow', u'ZirconCe')) self.actionZirconTiTemp.setText( _translate('MainWindow', u'ZirconTiTemp')) self.actionRutileZrTemp.setText( _translate('MainWindow', u'RutileZrTemp')) self.actionCluster.setText(_translate('MainWindow', u'Cluster')) self.actionMultiDimention.setText( _translate('MainWindow', u'MultiDimention')) self.actionXY.setText(_translate('MainWindow', u'X-Y plot')) self.actionXYZ.setText(_translate('MainWindow', u'X-Y-Z plot')) self.actionMagic.setText(_translate('MainWindow', u'Magic')) self.actionMudStone.setText(_translate('MainWindow', u'Sand-Silt-Mud')) self.actionVersionCheck.setText(_translate('MainWindow', u'Version')) self.actionCnWeb.setText(_translate('MainWindow', u'Chinese Forum')) self.actionEnWeb.setText(_translate('MainWindow', u'English Forum')) self.actionGoGithub.setText(_translate('MainWindow', u'Github')) self.actionCnS.setText(_translate('MainWindow', u'Simplified Chinese')) self.actionCnT.setText(_translate('MainWindow', u'Traditional Chinese')) self.actionEn.setText(_translate('MainWindow', u'English')) self.actionLoadLanguage.setText( _translate('MainWindow', u'Load Language')) self.ReadConfig() self.trans.load(LocationOfMySelf + '/' + self.Language) self.app.installTranslator(self.trans) self.retranslateUi() def retranslateUi(self): _translate = QtCore.QCoreApplication.translate self.talk = _translate( 'MainWindow', 'You are using GeoPython ') + version + '\n' + _translate( 'MainWindow', 'released on ') + date + '\n' self.pushButtonOpen.setText(_translate('MainWindow', u'Open Data')) self.pushButtonSave.setText(_translate('MainWindow', u'Save Data')) self.pushButtonSort.setText(_translate('MainWindow', u'Set Format')) self.pushButtonQuit.setText(_translate('MainWindow', u'Quit App')) self.pushButtonUpdate.setText(_translate('MainWindow', u'Check Update')) self.menuFile.setTitle(_translate('MainWindow', u'Data File')) self.menuGeoChem.setTitle(_translate('MainWindow', u'Geochemistry')) self.menuStructure.setTitle(_translate('MainWindow', u'Structure')) self.menuCalc.setTitle(_translate('MainWindow', u'Calculation')) self.menuStat.setTitle(_translate('MainWindow', u'Statistics')) self.menuMore.setTitle(_translate('MainWindow', u'Others')) self.menuHelp.setTitle(_translate('MainWindow', u'Help')) self.menuLanguage.setTitle(_translate('MainWindow', u'Language')) self.actionOpen.setText(_translate('MainWindow', u'Open Data')) self.actionSave.setText(_translate('MainWindow', u'Save Data')) self.actionTAS.setText(_translate('MainWindow', u'TAS')) self.actionTrace.setText(_translate('MainWindow', u'Trace')) self.actionRee.setText(_translate('MainWindow', u'REE')) self.actionPearce.setText(_translate('MainWindow', u'Pearce')) self.actionHarker.setText(_translate('MainWindow', u'Harker')) self.actionQAPF.setText(_translate('MainWindow', u'QAPF')) self.actionStereo.setText(_translate('MainWindow', u'Stereo')) self.actionRose.setText(_translate('MainWindow', u'Rose')) self.actionQFL.setText(_translate('MainWindow', u'QFL')) self.actionQmFLt.setText(_translate('MainWindow', u'QmFLt')) self.actionCIPW.setText(_translate('MainWindow', u'CIPW')) self.actionZirconCe.setText(_translate('MainWindow', u'ZirconCe')) self.actionZirconTiTemp.setText( _translate('MainWindow', u'ZirconTiTemp')) self.actionRutileZrTemp.setText( _translate('MainWindow', u'RutileZrTemp')) self.actionCluster.setText(_translate('MainWindow', u'Cluster')) self.actionMultiDimention.setText( _translate('MainWindow', u'MultiDimention')) self.actionXY.setText(_translate('MainWindow', u'X-Y plot')) self.actionXYZ.setText(_translate('MainWindow', u'X-Y-Z plot')) self.actionMagic.setText(_translate('MainWindow', u'Magic')) self.actionMudStone.setText(_translate('MainWindow', u'Sand-Silt-Mud')) self.actionVersionCheck.setText( _translate('MainWindow', u'Check Update')) self.actionCnWeb.setText(_translate('MainWindow', u'Chinese Forum')) self.actionEnWeb.setText(_translate('MainWindow', u'English Forum')) self.actionGoGithub.setText(_translate('MainWindow', u'Github')) self.actionCnS.setText(_translate('MainWindow', u'Simplified Chinese')) self.actionCnT.setText(_translate('MainWindow', u'Traditional Chinese')) self.actionEn.setText(_translate('MainWindow', u'English')) self.actionLoadLanguage.setText( _translate('MainWindow', u'Load Language')) def resizeEvent(self, evt=None): w = self.width() h = self.height() ''' if h<=360: h=360 self.resize(w,h) if w<=640: w = 640 self.resize(w, h) ''' step = (w * 94 / 100) / 5 foot = h * 3 / 48 #if foot<=10: foot=10 self.tableView.setGeometry( QtCore.QRect(w / 100, h / 48, w * 98 / 100, h * 38 / 48)) self.pushButtonOpen.setGeometry( QtCore.QRect(w / 100, h * 40 / 48, step, foot)) self.pushButtonSave.setGeometry( QtCore.QRect(2 * w / 100 + step, h * 40 / 48, step, foot)) self.pushButtonSort.setGeometry( QtCore.QRect(3 * w / 100 + step * 2, h * 40 / 48, step, foot)) self.pushButtonUpdate.setGeometry( QtCore.QRect(4 * w / 100 + step * 3, h * 40 / 48, step, foot)) self.pushButtonQuit.setGeometry( QtCore.QRect(5 * w / 100 + step * 4, h * 40 / 48, step, foot)) def getfile(self): _translate = QtCore.QCoreApplication.translate fileName, filetype = QFileDialog.getOpenFileName( self, _translate('MainWindow', u'Choose Data File'), '~/', 'All Files (*);;Text Files (*.txt)') # 设置文件扩展名过滤,注意用双分号间隔 def goGitHub(self): webbrowser.open('https://github.com/chinageology/GeoPython/wiki') def goCnBBS(self): webbrowser.open('http://bbs.geopython.com/-f2.html') def goEnBBS(self): webbrowser.open('http://bbs.geopython.com/English-Forum-f3.html') def checkVersion(self): #reply = QMessageBox.information(self, 'Version', self.talk) _translate = QtCore.QCoreApplication.translate url = 'https://raw.githubusercontent.com/chinageology/GeoPython/master/SourceCode/CustomClass.py' r = 0 try: r = requests.get(url, allow_redirects=True) r.raise_for_status() NewVersion = 'self.target' + r.text.splitlines()[0] except requests.exceptions.ConnectionError as err: print(err) r = 0 buttonReply = QMessageBox.information( self, _translate('MainWindow', u'NetWork Error'), _translate('MainWindow', u'Net work unavailable.')) NewVersion = "targetversion = '0'" except requests.exceptions.HTTPError as err: print(err) r = 0 buttonReply = QMessageBox.information( self, _translate('MainWindow', u'NetWork Error'), _translate('MainWindow', u'Net work unavailable.')) NewVersion = "targetversion = '0'" exec(NewVersion) print('web is', self.targetversion) print(NewVersion) self.talk = _translate( 'MainWindow', 'Version Online is ') + self.targetversion + '\n' + _translate( 'MainWindow', 'You are using GeoPython ') + version + '\n' + _translate( 'MainWindow', 'released on ') + date + '\n' if r != 0: print('now is', version) if (version < self.targetversion): buttonReply = QMessageBox.question( self, _translate('MainWindow', u'Version'), self.talk + _translate( 'MainWindow', 'New version available.\n Download and update?'), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if buttonReply == QMessageBox.Yes: print('Yes clicked.') webbrowser.open( 'https://github.com/chinageology/GeoPython/blob/master/Download.md' ) else: print('No clicked.') else: buttonReply = QMessageBox.information( self, _translate('MainWindow', u'Version'), self.talk + _translate('MainWindow', 'This is the latest version.')) def Update(self): webbrowser.open( 'https://github.com/chinageology/GeoPython/wiki/Download') def ReadConfig(self): if (os.path.isfile('config.ini')): try: with open('config.ini', 'rt') as f: try: data = f.read() except: data = 'Language = \'en\'' pass print(data) try: print("self." + data) exec("self." + data) except: pass print(self.Language) except (): pass def WriteConfig(self, text=LocationOfMySelf + '/en'): try: with open('config.ini', 'wt') as f: f.write(text) except (): pass def to_ChineseS(self): self.trans.load(LocationOfMySelf + '/cns') self.app.installTranslator(self.trans) self.retranslateUi() self.WriteConfig('Language = \'cns\'') def to_ChineseT(self): self.trans.load(LocationOfMySelf + '/cnt') self.app.installTranslator(self.trans) self.retranslateUi() self.WriteConfig('Language = \'cnt\'') def to_English(self): self.trans.load(LocationOfMySelf + '/en') self.app.installTranslator(self.trans) self.retranslateUi() self.WriteConfig('Language = \'en\'') def to_LoadLanguage(self): _translate = QtCore.QCoreApplication.translate fileName, filetype = QFileDialog.getOpenFileName( self, _translate('MainWindow', u'Choose Language File'), '~/', 'Language Files (*.qm)') # 设置文件扩展名过滤,注意用双分号间隔 print(fileName) self.trans.load(fileName) self.app.installTranslator(self.trans) self.retranslateUi() def ErrorEvent(self): reply = QMessageBox.information( self, _translate('MainWindow', 'Warning'), _translate( 'MainWindow', 'Your Data mismatch this Plot.\n Some Items missing?\n Or maybe there are blanks in items names?\n Or there are nonnumerical value?' )) def SetUpDataFile(self): flag = 0 ItemsAvalibale = self.model._df.columns.values.tolist() ItemsToTest = [ 'Label', 'Marker', 'Color', 'Size', 'Alpha', 'Style', 'Width' ] LabelList = [] MarkerList = [] ColorList = [] SizeList = [] AlphaList = [] StyleList = [] WidthList = [] for i in range(len(self.model._df)): LabelList.append('Group1') MarkerList.append('o') ColorList.append('red') SizeList.append(10) AlphaList.append(0.6) StyleList.append('-') WidthList.append(1) data = { 'Label': LabelList, 'Marker': MarkerList, 'Color': ColorList, 'Size': SizeList, 'Alpha': AlphaList, 'Style': StyleList, 'Width': WidthList } for i in ItemsToTest: if i not in ItemsAvalibale: # print(i) flag = flag + 1 tmpdftoadd = pd.DataFrame({i: data[i]}) self.model._df = pd.concat([tmpdftoadd, self.model._df], axis=1) self.model = PandasModel(self.model._df) self.tableView.setModel(self.model) if flag == 0: reply = QMessageBox.information( self, _translate('MainWindow', 'Ready'), _translate('MainWindow', 'Everything fine and no need to set up.')) else: reply = QMessageBox.information( self, _translate('MainWindow', 'Ready'), _translate( 'MainWindow', 'Items added, Modify in the Table to set up details.')) def getDataFile(self): _translate = QtCore.QCoreApplication.translate DataFileInput, filetype = QFileDialog.getOpenFileName( self, _translate('MainWindow', u'Choose Data File'), '~/', 'Excel Files (*.xlsx);;Excel 2003 Files (*.xls);;CSV Files (*.csv)' ) # 设置文件扩展名过滤,注意用双分号间隔 # #print(DataFileInput,filetype) if ('csv' in DataFileInput): self.raw = pd.read_csv(DataFileInput) elif ('xls' in DataFileInput): self.raw = pd.read_excel(DataFileInput) # #print(self.raw) self.model = PandasModel(self.raw) self.tableView.setModel(self.model) def saveDataFile(self): # if self.model._changed == True: # print('changed') # print(self.model._df) DataFileOutput, ok2 = QFileDialog.getSaveFileName( self, _translate('MainWindow', u'Save Data File'), 'C:/', 'Excel Files (*.xlsx);;CSV Files (*.csv)') # 数据文件保存输出 if (DataFileOutput != ''): if ('csv' in DataFileOutput): self.model._df.to_csv(DataFileOutput, sep=',', encoding='utf-8') elif ('xls' in DataFileOutput): self.model._df.to_excel(DataFileOutput, encoding='utf-8') def CIPW(self): self.cipwpop = CIPW(df=self.model._df) try: self.cipwpop.CIPW() self.cipwpop.show() except (KeyError): self.ErrorEvent() def ZirconTiTemp(self): self.ztpop = ZirconTiTemp(df=self.model._df) try: self.ztpop.ZirconTiTemp() self.ztpop.show() except (KeyError): self.ErrorEvent() def RutileZrTemp(self): self.rzpop = RutileZrTemp(df=self.model._df) try: self.rzpop.RutileZrTemp() self.rzpop.show() except (KeyError): self.ErrorEvent() def Cluster(self): self.clusterpop = Cluster(df=self.model._df) self.clusterpop.Cluster() self.clusterpop.show() try: self.clusterpop.Cluster() self.clusterpop.show() except (KeyError): pass # self.ErrorEvent() def TAS(self): self.pop = TAS(df=self.model._df) try: self.pop.TAS() self.pop.show() except (KeyError): self.ErrorEvent() def REE(self): self.reepop = REE(df=self.model._df) try: self.reepop.REE() self.reepop.show() except (KeyError): self.ErrorEvent() def Trace(self): self.tracepop = Trace(df=self.model._df) try: self.tracepop.Trace() self.tracepop.show() except (KeyError): self.ErrorEvent() def Pearce(self): self.pearcepop = Pearce(df=self.model._df) try: self.pearcepop.Pearce() self.pearcepop.show() except (KeyError): self.ErrorEvent() def Harker(self): self.harkerpop = Harker(df=self.model._df) try: self.harkerpop.Harker() self.harkerpop.show() except (KeyError): self.ErrorEvent() def Stereo(self): self.stereopop = Stereo(df=self.model._df) try: self.stereopop.Stereo() self.stereopop.show() except (KeyError): self.ErrorEvent() def Rose(self): self.rosepop = Rose(df=self.model._df) try: self.rosepop.Rose() self.rosepop.show() except (KeyError): self.ErrorEvent() def QFL(self): self.qflpop = QFL(df=self.model._df) try: self.qflpop.Tri() self.qflpop.show() except (KeyError): self.ErrorEvent() def QmFLt(self): self.qmfltpop = QmFLt(df=self.model._df) try: self.qmfltpop.Tri() self.qmfltpop.show() except (KeyError): self.ErrorEvent() def QAPF(self): self.qapfpop = QAPF(df=self.model._df) try: self.qapfpop.QAPF() self.qapfpop.show() except (KeyError): self.ErrorEvent() def Mud(self): self.mudpop = MudStone(df=self.model._df) try: self.mudpop.Tri() self.mudpop.show() except (KeyError): self.ErrorEvent() def ZirconCe(self): # print('Opening a new popup window...') self.zirconpop = ZirconCe(df=self.model._df) try: self.zirconpop.MultiBallard() self.zirconpop.show() except (KeyError, ValueError): self.ErrorEvent() def XY(self): self.xypop = XY(df=self.model._df) try: self.xypop.Magic() self.xypop.show() except (KeyError): self.ErrorEvent() def XYZ(self): self.xyzpop = XYZ(df=self.model._df) try: self.xyzpop.Magic() self.xyzpop.show() except (KeyError): self.ErrorEvent() def Magic(self): self.magicpop = Magic(df=self.model._df) try: self.magicpop.Magic() self.magicpop.show() except (KeyError): self.ErrorEvent() def MultiDimension(self): self.mdpop = MultiDimension(df=self.model._df) try: self.mdpop.Magic() self.mdpop.show() except (KeyError): self.ErrorEvent() def Tri(self): pass def Auto(self): pass
class Player(Actor.Actor): ''' Player class. images is a list of images for each direction. We may need to alter this to support animation. ''' def __init__(self,gameState): super(Player,self).__init__() # load all images # up, down, left, right self.images = [0] * 4 self.images[0], self.rect = util.loadImage(PLAYER_IDLE_UP, -1) self.images[1], self.rect = util.loadImage(PLAYER_IDLE_DOWN, -1) self.images[2], self.rect = util.loadImage(PLAYER_IDLE_LEFT, -1) self.images[3], self.rect = util.loadImage(PLAYER_IDLE_RIGHT, -1) # 0 = up, 1 = down, 2 = left, 3 = right self.direction = 0 # assign image and position self.setImage(self.images[self.direction]) self.setPos(START_X, START_Y) # load sword self.swordLeft = pygame.sprite.Sprite() self.swordLeft.image,self.swordLeft.rect = util.loadImage("swordSwingLeft.png") self.swordUp = pygame.sprite.Sprite() self.swordUp.image,self.swordUp.rect = util.loadImage("swordSwingUp.png") self.swordRight = pygame.sprite.Sprite() self.swordRight.image,self.swordRight.rect = util.loadImage("swordSwingRight.png") self.swordDown = pygame.sprite.Sprite() self.swordDown.image,self.swordDown.rect = util.loadImage("swordSwingDown.png") self.gameState = gameState # Orient player with mouse def orient(self, mousePos): loc = mousePos - Vector2(self.getPos()) angle = math.atan2(loc[1],loc[0]) mag = math.fabs(angle) # if we're facing to the right if mag < math.pi / 4: self.setDir(3) # move left elif mag > 3*math.pi / 4: self.setDir(2) # either up or down else: if angle < 0: self.setDir(0) else: self.setDir(1) def setDir(self, newDir): self.direction = newDir self.image = self.images[self.direction] def collideWall(self, wall): # collision on the top of charcter if self.rect.top < wall.rect.bottom and self.rect.bottom > wall.rect.top and self.vel[1]<0: self.vel -= Vector2(0,0) self.rect.top = wall.rect.bottom # collision on the bottom of character if self.rect.bottom > wall.rect.top and self.rect.top < wall.rect.bottom and self.vel[1]>0: self.vel -= Vector2(0,0) self.rect.bottom = wall.rect.top # collision on the right side of character if self.rect.right > wall.rect.left and self.rect.left < wall.rect.right and self.vel[0]>0: self.vel -= Vector2(0,0) self.rect.right = wall.rect.left # collision on the left side of character if self.rect.left < wall.rect.right and self.rect.right > wall.rect.left and self.vel[0]<0: self.vel -= Vector2(0,0) self.rect.left = wall.rect.right def move(self, m): ''' Press a key and add to our velocity vector ''' if m == -1: self.vel = Vector2(0,0) elif m == 0: self.vel += Vector2(0,-1) * PLAYER_SPEED elif m == 1: self.vel += Vector2(0,1) * PLAYER_SPEED elif m == 2: self.vel += Vector2(-1,0) * PLAYER_SPEED elif m == 3: self.vel += Vector2(1,0) * PLAYER_SPEED def unMove(self, m): ''' Once a key is released, remove that from velocity vector. ''' if m == 0: self.vel -= Vector2(0,-1) * PLAYER_SPEED elif m == 1: self.vel -= Vector2(0,1) * PLAYER_SPEED elif m == 2: self.vel -= Vector2(-1,0) * PLAYER_SPEED elif m == 3: self.vel -= Vector2(1,0) * PLAYER_SPEED # TODO: FIX THIS def swingSword(self): ''' When left mouse is pressed, sword is pushed out ''' if self.direction == 0: self.swordUp.rect.bottomleft = self.rect.topleft self.swordUp.add(self.gameState.playerGroup) elif self.direction == 1: self.swordDown.rect.topleft = self.rect.bottomleft self.swordDown.add(self.gameState.playerGroup) elif self.direction == 2: self.swordLeft.rect.topright = self.rect.topleft self.swordLeft.add(self.gameState.playerGroup) elif self.direction == 3: self.swordRight.rect.topleft = self.rect.topright self.swordRight.add(self.gameState.playerGroup) # TODO: Add to this def shootBow(self): ''' When right mouse is pressed, arrow is fire infront of character ''' print "Arrow Fired" # TODO: Add to this def useMagic(self): ''' When space bar is pressed, magic is thrown towards the mouse pointer Or infront of the character *Choice* ''' pos = self.rect.center self.magi = Magic(pos[0],pos[1]) self.magi.add(self.gameState.playerGroup) def update(self): super(Player,self).update() # Check to see if we have touched edge of the screen if self.rect.left < TILEX * 2: self.gameState.nextMap("left", self.getPos()) elif self.rect.right > WIDTH - (TILEX*2): self.gameState.nextMap("right", self.getPos()) elif self.rect.top < 0: self.gameState.nextMap("up", self.getPos()) elif self.rect.bottom > HEIGHT: self.gameState.nextMap("down", self.getPos())