亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? simdata.py

?? 開源游戲代碼
?? PY
字號:
# $Id: simdata.py,v 1.12 2002/02/18 13:04:17 marijn Exp $# An air traffic simulation game. This is the simulation server.# Copyright (C) 2000,1,2  Marijn Vriens <marijn@sanity.dhs.org>## This program 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 2 of the License, or# (at your option) any later version.## This program 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 this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USAimport randomimport mathimport timeimport UserDictimport CORBA, SimulationServer, SimulationServer__POAclass SimData(UserDict.UserDict):    _idmax = pow(2, 30)    def __init__(self):        UserDict.UserDict.__init__(self)        self.dataDeleted = {}    def add(self, value):        value.id = self._genId()        self.data[value.id] = value    def delete(self, key):        value = self.data[key]        value.markAsDeleted()        self.dataDeleted[key] = value        del self.data[key]    def genIdlObjsEntryList(self, lastEntryListTime):        r = []        for i in self.data.values():            if i.changedAfter(lastEntryListTime):                r.append(i.genIdlReduced())        return r    def genIdlObjsLeaveList(self, lastLeaveListTime):        r = []        for i in self.dataDeleted.values():            if i.deletedAfter(lastLeaveListTime):                r.append(i.genIdlReduced())        return r    def reapDeleted(self, LastClientGotListsTime):        l = []        for k in self.dataDeleted.keys():            if self.dataDeleted[k].deletedBefore(LastClientGotListsTime):                l.append(k)        for i in l:            del(self.dataDeleted[i])    def _genId(self):        k = random.randint(0, self._idmax)        while(self.data.has_key(k)):            k = random.randint(0, self._idmax)        return k    def __setitem__(self, key, value):        raise "NOT_SUPPORTED"       class Entity:    def __init__(self):        self.id = None        self.pos = _Position        self._timeCreated = time.time()        self._timeChange  = time.time()        self._timeDeleted = -1    def createdAfter(self, t):        if t <= self._timeCreated: return self        else: return None    def markAsChanged(self):        self._timeCange = time.time()    def changedAfter(self, t):        if t <= self._timeChange:            return self        else: return None    def markAsDeleted(self):        self._timeDeleted = time.time()    def deletedAfter(self, t):        if self._timeDeleted == -1: raise "ObjectNotDeleted"        if t <= self._timeDeleted: return self        else: return None    def deletedBefore(self, t):        if self._timeDeleted == -1: raise "ObjectNotDeleted"        if t > self._timeDeleted: return self        else: return None            def update(self):        raise "AbstractMethod", "Should be re-implented in sub-class"    def genIdlFull(self):        raise "AbstractMethod", "Should be re-implented in sub-class"    def genIdlReduced(self):        objTypeNameList = {            Plane: 'plane'        }        r = SimulationServer.SimObjType()        r.objTypeName = objTypeNameList[self.__class__]        r.id = self.id        r.pos = self.pos.genIdlReduced()        return rclass Plane(Entity):    def __init__(self): #, lat, lon, vert):        Entity.__init__(self)        self.pos = _Vector()        self._order = None    def update(self):        if(self._order):            dheading = self._order.heading - self.pos.heading()            if dheading > 180:                dheading = dheading - 360            elif dheading < -180:                dheading = dheading + 360            dspeed   = self._order.speed - self.pos.speed()            dheight  = self._order.height - self.pos.height()                        #print "\theading, speed, height"            #print "Curren: ", self.pos.heading(), self.pos.speed(), self.pos.height()            #print "Orders: ", self._order.heading, self._order.speed, self._order.height            #print "Deltas: ", dheading, dspeed, dheight            if(dheading == 0) and (dspeed == 0) and (dheight == 0):                #print "Order completed"                self._order = None                return            self.pos.changeHeading(dheading)            self.pos.changeSpeed(dspeed)            self.pos.changeHeight(dheight)        self.pos.move(1)    def genIdlFull(self):        r = SimulationServer.PlaneType()        r.id = self.id        r.pos = self.pos.genIdlFull()        return r    def processOrder(self, order):        self._order = order        return order            class _Position:    def __init__(self):        self._latitude = 0.0        self._longitude = 0.0        self._height = 0.0    def latitude(self, latitude=None): # North - South distance.        if(latitude == None): return self._latitude        else:            if(latitude >  90            or latitude < -90):                raise "DataOutOfBounds"            self._latitude = latitude    def longitude(self, longitude=None): # East - West distance.        if(longitude == None): return self._longitude        else:            if(longitude >  180            or longitude < -180):                raise "DataOutOfBounds"            self._longitude = longitude    def height(self, height=None):        if(height == None): return self._height        else: self._height = height    def genIdlReduced(self, r=None):        if r == None:            r = SimulationServer.Point()        r.lat  = self._latitude        r.lon  = self._longitude        r.vert = self._height        return rclass _Vector(_Position):    def __init__(self):        _Position.__init__(self)        self._speed = 0.0        self._heading = 0.0        self._dheading_per_turn = 5        self._dspeed_per_turn   = 1        self._dheight_per_turn  = 5    def speed(self, speed=None): # speed in meters per second        if(speed == None): return self._speed        else: self._speed = speed    def changeSpeed(self, change):        if(abs(change) < self._dspeed_per_turn):            self.speed(self.speed() + change)        else:            newspeed = (_direction(change) * self._dspeed_per_turn) + self.speed()            self.speed(newspeed)    def heading(self, heading=None):        if(heading == None): return self._heading        else:            if(heading >= 360): heading = heading - 360            if(heading <    0): heading = heading + 360            self._heading = heading    def changeHeading(self, change):        if(abs(change) < self._dheading_per_turn):            self.heading(self.heading() + change)        else:            newheading = (_direction(change) * self._dheading_per_turn) + self.heading()            self.heading(newheading)    def changeHeight(self, change):        if(abs(change) < self._dheight_per_turn):            self.height(self.height() + change)        else:            newheight = (_direction(change) * self._dheight_per_turn) + self.height()            self.height(newheight)    def move(self, timeInSecs):        vspeed = self._speed * math.cos(_degrees2pi(self._heading))        hspeed = self._speed * math.sin(_degrees2pi(self._heading))        vdistance = vspeed * timeInSecs        hdistance = hspeed * timeInSecs        # border handling... bs at the moment,        # but... so is all of this function right now.        lat = self.latitude()  + vdistance        lon = self.longitude() + hdistance        if lat >  90:            lat = lat - 180        if lat < -90:            lat = lat + 180        if lon >  180:            lon = lon - 360        if lon < -180:            lon = lon + 360        self.latitude(lat)        self.longitude(lon)    def genIdlFull(self):        r = SimulationServer.Vector()        _Position.genIdlReduced(self, r)        r.heading = self.heading()        r.speed   = self.speed()        return r        def _degrees2pi(deg): return deg * ( math.pi / 180 )def _knotsHour2meterSec(kmh): return kmh * ( 1852 / (60*60) )def _direction(value):    if(value >= 0):        return 1    else:        return -1# $Log: simdata.py,v $# Revision 1.12  2002/02/18 13:04:17  marijn# Changed rate of speed changes## Revision 1.11  2002/02/17 21:41:38  marijn# Improved turning direction## Revision 1.10  2002/02/07 16:28:07  marijn# Fixed order handling## Revision 1.9  2002/02/04 15:50:34  marijn# Added order receiving methods## Revision 1.8  2002/02/01 15:07:36  marijn# updated copyright information## Revision 1.7  2002/01/13 16:05:56  marijn# All updates now go via getUpdate(). Split genIdl into Full and Reduced## Revision 1.6  2002/01/12 23:49:50  marijn# Refactored simdata and added basic coordinate system## Revision 1.5  2001/12/26 01:24:43  marijn# Added Plane class## Revision 1.4  2001/12/25 02:00:08  marijn# various fixes and updates.## Revision 1.3  2001/11/27 20:59:06  marijn# sending of simple sim objcts## Revision 1.2  2001/11/19 00:25:58  marijn# py merged back into HEAD## Revision 1.1.2.1  2001/11/07 20:08:09  marijn# Added SimServer and threading#

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久亚洲伦| 久久综合九色综合欧美就去吻| 中文字幕制服丝袜成人av| 国产精品18久久久久| 欧美激情自拍偷拍| 成人福利视频网站| 亚洲欧美偷拍另类a∨色屁股| 91啪九色porn原创视频在线观看| 一区二区在线免费观看| 色综合色狠狠天天综合色| 亚洲一区二区三区四区的| 欧美日韩国产天堂| 久久精品国产999大香线蕉| 欧美成人a视频| jlzzjlzz欧美大全| 亚洲福利国产精品| 日韩欧美一级特黄在线播放| 国产成人免费视频网站| 亚洲乱码国产乱码精品精小说| 欧美丝袜第三区| 精品亚洲国产成人av制服丝袜| 久久精品亚洲麻豆av一区二区| 波多野结衣在线一区| 亚洲一区视频在线| 精品裸体舞一区二区三区| 成人精品视频一区二区三区尤物| 亚洲男人的天堂在线aⅴ视频| 在线播放亚洲一区| 国产91综合一区在线观看| 亚洲综合视频网| 精品伦理精品一区| 在线观看日韩一区| 国内精品免费在线观看| 亚洲色图欧洲色图| 精品奇米国产一区二区三区| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美精品久久久久久久多人混战| 久久精品国产在热久久| 亚洲青青青在线视频| 日韩美女一区二区三区四区| 97se亚洲国产综合自在线| 免费成人在线观看| 一区二区三区四区精品在线视频| 日韩欧美一区在线| 97久久超碰国产精品| 久久精工是国产品牌吗| 亚洲精品国产高清久久伦理二区| 欧美精品一区在线观看| 色94色欧美sute亚洲13| 国产传媒欧美日韩成人| 日韩经典一区二区| 亚洲一区二区欧美激情| 中文字幕乱码亚洲精品一区 | 色8久久精品久久久久久蜜 | 成人av片在线观看| 久久精品国产成人一区二区三区| 亚洲午夜激情网站| 亚洲男人天堂一区| 国产精品国产三级国产aⅴ无密码| 精品国精品国产尤物美女| 欧美少妇性性性| 91久久精品一区二区三| 成人中文字幕在线| 国产盗摄视频一区二区三区| 久久er99热精品一区二区| 天天影视涩香欲综合网| 亚洲午夜在线观看视频在线| 亚洲卡通欧美制服中文| 最近日韩中文字幕| 国产精品国产精品国产专区不蜜| 国产日韩影视精品| 久久精品一区二区三区不卡牛牛| 精品捆绑美女sm三区| 欧美sm极限捆绑bd| 精品日韩在线观看| 久久综合999| 久久久三级国产网站| 欧美大片拔萝卜| 日韩精品一区二区三区四区视频| 日韩欧美第一区| 2020日本不卡一区二区视频| 久久久久久久国产精品影院| 久久影视一区二区| 欧美激情中文不卡| 亚洲欧洲av另类| 亚洲免费伊人电影| 亚洲激情五月婷婷| 亚洲与欧洲av电影| 日韩中文字幕av电影| 蜜桃久久精品一区二区| 久久66热偷产精品| 国产精品99久久久久久久vr| 成人av在线影院| 色综合天天综合在线视频| 中文字幕亚洲在| 亚洲欧洲av在线| 亚洲成人自拍一区| 日韩av中文字幕一区二区| 日韩高清一区在线| 国产精品系列在线播放| 成人国产精品免费观看动漫 | 午夜久久久久久久久久一区二区| 亚洲成人一区在线| 麻豆成人久久精品二区三区小说| 狠狠色狠狠色综合| 91在线观看地址| 制服丝袜中文字幕亚洲| 国产午夜精品一区二区三区视频| 亚洲欧洲99久久| 青草av.久久免费一区| 国产精品亚洲综合一区在线观看| 97精品电影院| 欧美精品三级日韩久久| 国产欧美日韩不卡| 亚洲va国产va欧美va观看| 黑人巨大精品欧美黑白配亚洲| 91丨九色丨蝌蚪富婆spa| 欧美色国产精品| 国产日韩精品一区| 亚洲影院久久精品| 国模冰冰炮一区二区| 色哟哟国产精品| 精品国产电影一区二区| 亚洲免费观看高清| 国内精品写真在线观看| 欧美体内she精高潮| 国产女主播一区| 亚洲成人自拍偷拍| 99免费精品视频| 日韩精品一区二区在线观看| 亚洲欧美视频在线观看视频| 韩国av一区二区三区在线观看| 欧美专区日韩专区| 久久毛片高清国产| 视频精品一区二区| 91蜜桃免费观看视频| www国产亚洲精品久久麻豆| 亚洲小说春色综合另类电影| 99久久精品国产毛片| 欧美videossexotv100| 午夜精品123| 色先锋资源久久综合| 日本一区二区三区在线观看| 麻豆极品一区二区三区| 欧美日韩一区二区三区视频 | 精品乱人伦一区二区三区| 亚洲综合一二区| 99精品久久久久久| 国产日韩在线不卡| 国产一区二区三区综合| 日韩欧美国产电影| 日韩成人免费看| 7777精品伊人久久久大香线蕉最新版| 综合色中文字幕| 大胆欧美人体老妇| 国产午夜精品久久| 国产精品1区2区3区| 精品三级av在线| 久久99精品国产.久久久久久 | 欧美变态口味重另类| 午夜精品免费在线观看| 在线亚洲一区二区| 一区二区三区四区av| 99热99精品| 亚洲欧美二区三区| 色综合久久久久久久久| 中文字幕综合网| 91黄色小视频| 亚洲一区二区视频在线观看| 在线观看av不卡| 亚洲一卡二卡三卡四卡五卡| 91久久人澡人人添人人爽欧美| 一区二区三区四区五区视频在线观看| 一本色道**综合亚洲精品蜜桃冫| 亚洲三级免费电影| 日本高清不卡aⅴ免费网站| 亚洲一区二区美女| 制服丝袜亚洲播放| 麻豆成人免费电影| 久久久不卡网国产精品一区| 国产乱码精品1区2区3区| 国产亚洲一本大道中文在线| 国v精品久久久网| 亚洲欧美日韩在线| 在线免费观看日本欧美| 天天免费综合色| 日韩精品最新网址| 国产福利精品一区二区| 国产精品二三区| 色哟哟一区二区在线观看| 亚洲妇女屁股眼交7| 日韩精品在线一区| 国产高清成人在线| 自拍视频在线观看一区二区| 欧美日高清视频| 国产精品综合在线视频| 亚洲欧洲日韩av| 9191成人精品久久| 国产精品资源在线看| 亚洲乱码国产乱码精品精可以看|