BombSquad Python API 编写MOD需要的函数翻译

BombSquad Python API

最后更新于2016-09-06为BombSquad版本1.4.99构建14255

本页面介绍了’bs’模块中的Python类和函数,这些模块与修改BombSquad最相关。如果你遇到的东西你觉得应该包括在这里,或者可以更好的解释,请让我知道。快乐呀!


按类别分类:

游戏流程类:

一般用途类:

博客类:

媒体类:

消息类:

其他:

用户界面类:


按类别分类:

游戏流程功能:

媒体功能:

用户界面功能:

一般效用函数:


bs.Activity

<顶级类>

类别:游戏流程类

单位由bs.Session争夺。活动的例子包括游戏,分数屏幕,过场动画等。一个bs.Session在任何时间都有一个’当前’活动,尽管它们的存在可以在转换期间重叠。

属性:

球员设置球队

玩家

活动中的bs.Players列表。这样就可以在onBegin()被调用之前进行填充,并随着玩家加入或离开游戏而自动更新。

设置

活动进行时传入的设置。

球队

bs.Teams在活动中的名单。这样就可以在onBegin()被调用之前进行填充,并随着玩家加入或离开游戏而自动更新。(至少在所有模式中,每个玩家都能获得自己的球队;在球队模式下,总共有2支球队,不论球员数量如何)。

方法:

<构造>continueOrEndGame() 结束() 的getSession() 的handleMessage() hasBegun() hasEnded() hasTransitionedIn() isFinalized() isTransitioningOut() isWaitingForContinue() onBegin() onContinue( )onFinalize()onPlayerJoin()onPlayerLeave()onTeamJoin()onTeamLeave()onTransitionIn()onTransitionOut()

<构造>

bs.Activity(self,settings = {})

在当前的bs.Session中创建一个活动。直到bs.Session.setActivity()被调用才会实际运行。’设置’应该是活动特定的键/值对的指令。

活动应尽可能多地在其构造函数中加载他们的媒体/ etc,但是在它们被转换之前实际上不应该使用它们。

continueOrEndGame()

continueOrEndGame(个体经营)

如果允许继续,则提示玩家购买一个继续,并根据结果调用endGame或continueGame

结束()

end(self,results = None,delay = 0,force = False)

开始活动关闭并将结果传递给bs.Session。“delay”是活动实际结束之前的时间延迟(以毫秒为单位)。对end()的进一步调用将被忽略,直到此时,除非’force’为True,否则新结果将替换旧的。

的getSession()

的getSession(个体经营)

返回此活动所属的bs.Session。如果会话不再存在,则返回None。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象

已开始()

hasBegun(个体经营)

返回是否为此活动调用了onBegin()。

结束了()

hasEnded(个体经营)

返回是否已为此活动调用了end()。

hasTransitionedIn()

hasTransitionedIn(个体经营)

返回是否为此活动调用了onTransitionIn()。

isFinalized()

isFinalized(个体经营)

活动在关闭时设置为最终确定。在这一点上,不应该有任何新的节点,计时器等,而且这个活动应该被认为是一个“僵尸”。

isTransitioningOut()

isTransitioningOut(个体经营)

返回是否为此活动调用了onTransitionOut()。

isWaitingForContinue()

isWaitingForContinue(个体经营)

(没有文档)

onBegin()

onBegin(个体经营)

在以前的bs.Activity已经完成转换之后被调用。在这一点上,活动的初始球员和球队都被填满,它应该开始其实际的游戏逻辑。

onContinue()

onContinue(个体经营)

如果一个游戏支持并提供一个继续并且玩家接受的话,这就是所谓的。在这种情况下,玩家应该获得额外的生命或任何相关的东西来保持游戏的进行。

onFinalize()

onFinalize(个体经营)

当您的活动正在最后确定时调用。如果你的活动已经明确地创造了任何可能保留对活动的强力参考并防止其死亡的内容,那么你应该将其撕下来。从这一点开始,你的活动唯一的目标就是打零参考,死亡,所以下一个活动可以开始。

onPlayerJoin()

onPlayerJoin(self,player)

被称为所有新的bs.Players(包括它们的初始集合)。

onPlayerLeave()

onPlayerLeave(self,player)

当玩家离开活动时打电话。

onTeamJoin()

onTeamJoin(自我,团队)

当新的bs.Team进入活动时(包括它们的初始集合)调用。

onTeamLeave()

onTeamLeave(自我,团队)

bs.Team离开活动时呼叫

onTransitionIn()

onTransitionIn(个体经营)

当你的活动第一次变得可见时被召唤; 它应该褪色背景,开始播放音乐等。但是,直到bs.Activity.onBegin()被调用为止,它们尚未访问bs.Playersbs.Teams ; 他们仍然拥有之前的活动直到这一点。

onTransitionOut()

onTransitionOut(个体经营)

当您的活动开始转换并且正在进行新的活动时调用。请注意,即使没有调用finish(),也可能会发生这种情况。


bs.Actor

<顶级类>

类别:游戏流程类

演员是通常管理一个或多个bs.Nodes,游戏媒体等的高级组织实体,以及相关联的逻辑来扭转他们。

如果bs.Nodes代表细胞,想到bs.Actors作为器官。一些例子演员包括bs.Bombbs.Flagbs.Spaz

演员的一个关键特征是,当最后一个python引用消失时,他们通常会“死”(杀死或转移他们的节点),所以你可以使用如下的逻辑:

#在我们的活动中创建一个标志 
self.flag = bs.Flag(position =(0,10,0))
#以后,摧毁这个标志.. 
#(没有提供任何东西持有引用) 
self.flag = None

这与更低级别的bs.Nodes的行为形成对比,这些行为总是被明确创建和销毁,而不管有多少python引用它们存在。

bs.Actor的另一个关键特征是它的handleMessage()方法,它将一个任意对象作为参数。这提供了一种在bs.Actorbs.Activitybs.Session和提供handleMessage()方法的任何其他对象之间进行通信的安全方式。演员最普遍处理的消息类型是bs.DieMessage

#另一种方法来从上面的例子中
删除
标志:#我们可以安全地使用'handleMessage'方法在任何炸弹类型上调用它。#(虽然它不保证总是有一个有意义的效果) 
self.flag.handleMessage(bs.DieMessage())

方法:

<构造>autoRetain() 存在时() getActivity() 的handleMessage() 的IsAlive() isFinalized() onFinalize()

<构造>

bs.Actor(个体经营)

在当前bs.Activity中实例化一个演员。

autoRetain()

autoRetain(个体经营)

通过使用它在其中创建的bs.Activity存储对它的引用来自动保留此bs.Actor。一旦actor不再存在(参见bs.Actor.exists())或活动完成时,引用将被释放。这可以是一个方便的替代方法,以便明确地存储引用,以保持bs.Actor不会死机。为方便起见,此方法返回调用的bs.Actor,启用链接语句,如:myFlag = bs.Flag().autoRetain()

存在()

存在(个体经营)

如果演员仍然可见或以某种方式呈现,则返回True。注意,只要他们的尸体存在,一个垂死的人物仍然应该返回True; 这是关于存在,不是“活着”。

如果这返回False,则假定演员可以完全删除而不影响游戏; 当“修剪”演员列表时,通常会使用此呼叫。

如果actor具有’node’attr,则此方法的默认实现将返回’node.exists()’。否则为真。

getActivity()

getActivity(self,exceptionOnNone = True)

返回这个Actor相关联的bs.Activity。如果活动不再存在,则返回None。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象

活着()

的IsAlive(个体经营)

返回Actor是否“活着”。这意味着由演员决定。演员不能死亡; 只是他们报告他们是否活着。

isFinalized()

isFinalized(个体经营)

返回演员是否已经定稿。(见bs.Actor.onFinalize())

onFinalize()

onFinalize(个体经营)

bs.Activity关闭时,对每个剩余的bs.Actor调用onFinalize。演员可以利用这个机会来清除具有保持bs.Activity潜在的回调或其他参考。

一旦演员完成(参见bs.Actor.isFinalized()),它将不再执行任何游戏对象操纵(创建,修改或删除节点,媒体,计时器等)尝试这样做可能会出现错误。


bs.Blast

继承自:bs.Actor

类别:游戏流程类

爆炸,由bs.Bomb生成。

方法继承:

autoRetain()exists()getActivity()isAlive()isFinalized()onFinalize()

方法定义或覆盖:

<constructor>handleMessage()

<构造>

bs.Blast(self,position =(0,1,0),velocity =(0,0,0),blastRadius = 2.0,blastType =’normal’,sourcePlayer = None,hitType =’explosion’,hitSubType =’normal “)

用给定的值实例化。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象


bs.Bomb

继承自:bs.Actor

类别:游戏流程类

炸弹及其变种,如地雷和坦克。

方法继承:

autoRetain()exists()getActivity()isAlive()isFinalized()

方法定义或覆盖:

<构造>addExplodeCallback() 臂() 爆炸() getFactory() getSourcePlayer() 的handleMessage() onFinalize()

<构造>

bs.Bomb(self,position =(0,1,0),velocity =(0,0,0),bombType =’normal’,blastRadius = 2.0,sourcePlayer = None,owner = None)

创建一个新的炸弹。

bombType可以是“冰”,“影响”,“地雷”,“正常”,“粘性”或“nt”。请注意,对于撞击或地雷炸弹,您必须先将其称为arm()才能关闭。

addExplodeCallback()

addExplodeCallback(self,call)

当炸弹爆炸时添加要运行的呼叫。炸弹和新的爆炸对象作为参数传递。

臂()

臂(个体经营)

武装地雷和撞击炸弹,使其在爆炸中受到影响。

爆炸()

爆炸(个体经营)

如果还没有这样做,就炸弹。

getFactory()

<class method>

getFactory(CLS)

返回一个共享的bs.BombFactory对象,如果需要创建它。

getSourcePlayer()

getSourcePlayer(个体经营)

返回代表这个炸弹的来源的bs.Player

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象

onFinalize()

onFinalize(个体经营)

bs.Activity关闭时, 对每个剩余的bs.Actor调用onFinalize。演员可以利用这个机会来清除具有保持bs.Activity潜在的回调或其他参考。

一旦演员完成(参见bs.Actor.isFinalized()),它将不再执行任何游戏对象操纵(创建,修改或删除节点,媒体,计时器等)尝试这样做可能会出现错误。


bs.BomberBot

继承自:bs.SpazBotbs.Spazbs.Actor

类别:博客类

一个机器人会抛出常规的炸弹,偶尔打。

属性继承:

节点

方法:

<从bs.SpazBot > 继承的所有方法


bs.BomberBotLame

继承自:bs.BomberBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个较不激进的黄色版本的bs.BomberBot

属性继承:

节点

方法:

<从bs.BomberBot > 继承的所有方法


bs.BomberBotPro

继承自:bs.BomberBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个更激进的红色版本的bs.BomberBot

属性继承:

节点

方法:

<从bs.BomberBot > 继承的所有方法


bs.BomberBotProShielded

继承自:bs.BomberBotProbs.BomberBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个更积极的红色版本的bs.BomberBot 谁从盾牌开始。

属性继承:

节点

方法:

<从bs.BomberBotPro继承的所有方法>


bs.BomberBotProStatic

继承自:bs.BomberBotProbs.BomberBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个更积极的红色版本的bs.BomberBot 谁一般在一个地方。

属性继承:

节点

方法:

<从bs.BomberBotPro继承的所有方法>


bs.BomberBotProStaticShielded

继承自:bs.BomberBotProShieldedbs.BomberBotProbs.BomberBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个更积极的红色版本的bs.BomberBot 谁开始与盾牌,谁一般停留在一个地方。

属性继承:

节点

方法:

<从bs.BomberBotProShielded继承的所有方法>


bs.BomberBotStatic

继承自:bs.BomberBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

bs.BomberBot的版本 一般停留在一个地方。

属性继承:

节点

方法:

<从bs.BomberBot > 继承的所有方法


bs.BomberBotStaticLame

继承自:bs.BomberBotLamebs.BomberBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个不太积极的黄色版本的bs.BomberBot 谁一般停留在一个地方。

属性继承:

节点

方法:

<从bs.BomberBotLame继承的所有方法>


bs.BombFactory

<顶级类>

类别:游戏流程类

包裹bs.Bombs使用的媒体和其他资源 一个单一的实例在所有炸弹之间共享,可以通过bs.Bomb.getFactory()检索。

属性:

activateSoundblastMaterialbombMaterialbombModeldebrisFallSounddinkSoundsexplodeSoundsfreezeSoundfuseSoundhissSoundiceTeximpactBlastMaterialimpactBombModelimpactLitTeximpactTexlandMineBlastMateriallandMineLitTexlandMineNoExplodeMateriallandMineTexlandMinModelnormalSoundMaterialregularTexrollSoundstickyBombModelstickyImpactSoundstickyMaterialstickyTextntModeltntTexwarnSoundwoodDebrisFallSound

activateSound

一个bs.Sound用于活化冲击炸弹。

blastMaterial

a bs.应用于炸弹爆炸几何的材料,其触发碰撞事件。

bombMaterial

一个bs.Material适用于所有的炸弹。

bombModel

bs.Model标准或冰炸弹。

debrisFallSound

bs.Sound爆炸后随机掉落的碎片。

dinkSounds

当炸弹撞到地面时,bs.Sounds的一个元组。

explodeSounds

元组bs.Sounds了爆炸。

freezeSound

一个冰块的冰块冻结了一些东西。

fuseSound

一个bs.Sound燃烧的导火索。

hissSound

bs.Sound的发出嘶嘶的响声冰炸弹做。

iceTex

冰块的bs.Texture

impactBlastMaterial

一种材料应用于激活的撞击炸弹,导致它们在撞击时爆发。

impactBombModel

bs.Model的冲击炸弹。

impactLitTex

撞击炸弹的bs.Texture灯光点亮。

impactTex

冲击炸弹的bs.Texture

landMineBlastMaterial

一个bs.Material适用于激活地雷,导致他们exlode的影响。

landMineLitTex

bs.Texture与光点亮了地雷

landMineNoExplodeMaterial

一种保持地雷不爆炸的物质。当地雷被设计成允许地雷在不爆炸的情况下触地。

landMineTex

bs.Texture的地雷。

landMinModel

bs.Model一个地雷的。

normalSoundMaterial

一个bs.Material产生的影响上,等标准弹的声音

regularTex

常规炸弹的bs.Texture

rollSound

bs.Sound为滚弹。

stickyBombModel

bs.Model粘性炸弹的。

stickyImpactSound

由一个粘稠的炸弹击中某物而造成的挤压的bs.Sound

stickyMaterial

一个bs.Material使“图示”的声音,使碰撞更柔和。

stickyTex

bs .粘贴炸弹的纹理

tntModel

bs.Model TNT的盒子。

tntTex

bs.Texture为TNT盒。

warnSound

一个bs.Sound为一个冲击炸弹即将爆炸由于超时。

woodDebrisFallSound

一个bs.Sound用于随机的木屑在爆炸后落下。

方法:

<constructor>getRandomExplodeSound()

<构造>

bs.BombFactory(个体经营)

实例化炸弹炸弹。你不应该这样做 调用bs.Bomb.getFactory()获取一个共享实例。

getRandomExplodeSound()

getRandomExplodeSound(个体经营)

从工厂返回随机爆炸bs.Sound


bs.BotSet

<顶级类>

类别:博客类

一个或多个bs.SpazBots的容器/控制器。

方法:

<构造>addBot() 庆祝() 清除() finalCelebrate() getLivingBots() haveLivingBots() spawnBot() startMoving() stopMoving()

<构造>

bs.BotSet(个体经营)

创建一个机器人组。

addBot()

addBot(self,bot)

bs.SpazBot实例添加到集合。

庆祝()

庆祝(自我,持续)

告诉所有活着的机器人,随着他们邪恶的机器人活动继续前进,一辈子都要庆祝。

明确()

明确(个体经营)

立即清除集合中的任何机器人。

finalCelebrate()

finalCelebrate(个体经营)

告诉所有机器人,停止他们在做什么,只是跳来跳去庆祝。当机器人赢得比赛时使用。

getLivingBots()

getLivingBots(个体经营)

返回集合中的生物机器人。

haveLivingBots()

haveLivingBots(个体经营)

返回该集合中的任何机器人是否存活还是在产卵过程中。

spawnBot()

spawnBot(self,botType,pos,spawnTime = 3000,onSpawnCall = None)

(没有文档)

startMoving()

startMoving(个体经营)

(没有文档)

stopMoving()

stopMoving(个体经营)

告诉所有机器人停止移动,并停止更新他们的AI。有用的玩家赢了,你希望敌人的机器人站起来,看起来很迷惑。


bs.BunnyBot

继承自:bs.SpazBotbs.Spazbs.Actor

类别:博客类

快速攻击近战机器人

属性继承:

节点

方法:

<从bs.SpazBot > 继承的所有方法


bs.Call

<顶级类>

类别:一般实用类

将可调用和参数包装到单个可调用对象中。可调用是强引用的,所以它不会死,直到这个对象。请注意,绑定方法(例如:myObj.doSomething)包含对“self”对象的引用,因此您将保留该对象。如果你想传递回调而不保存事物,请使用bs.WeakCall

方法:

<构造>

bs.Call(self,* args,** keywds)

实例化呼叫 传递一个可调用作为第一个参数,后跟任意数量的参数或关键字。

#example :包含一个方法调用1位置和1个关键字arg myCallable = bs.Call(myObj.doStuff,argVal,namedArg = anotherVal)
#现在我们有一个
可调用来运行整个混乱#这与调用myObj.doStuff(argVal,namedArg = anotherVal) 
myCallable()相同,

bs.ChickBot

继承自:bs.SpazBotbs.Spazbs.Actor

类别:博客类

一个缓慢移动的机器人与撞击炸弹。

属性继承:

节点

方法:

<从bs.SpazBot > 继承的所有方法


bs.ChickBotPro

继承自:bs.ChickBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个更激进的红色版本的bs.ChickBot

属性继承:

节点

方法:

<从bs.ChickBot > 继承的所有方法


bs.ChickBotProShielded

继承自:bs.ChickBotProbs.ChickBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个更积极的红色版本的bs.ChickBot 谁从盾牌开始。

属性继承:

节点

方法:

<从bs.ChickBotPro继承的所有方法>


bs.ChickBotStatic

继承自:bs.ChickBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一般是在一个地方停留的bs.ChickBot

属性继承:

节点

方法:

<从bs.ChickBot > 继承的所有方法


bs.CollideModel

<顶级类>

类别:媒体类

对冲突模型的引用。使用bs.getCollideModel()来实例化一个。


bs.Context

<顶级类>

类别:一般实用类

炸弹上下文 诸如bs.newNode(), bs.getTexture()等的许多操作在当前上下文中隐含运行。每个bs.Activity都有自己的Context和该活动中的对象(节点,媒体等)只能与该上下文中的其他对象进行交互。

一般来说,您不必担心上下文,因为定时器和其他回调将会自动保存和恢复上下文,但可能在很少的情况下需要处理它们,例如在加载时媒体在UI中使用(所有界面相关功能都有一个特殊的“UI”上下文)

实例化bs.Context实例时,传递一个参数,它必须是以下字符串/对象之一:

‘空’:提供一个空的上下文; 它可以方便地在这里运行代码,以确保它不加载媒体,创建节点等。

‘current’:将上下文对象设置为当前上下文。

‘UI’:设置为UI上下文。UI功能以及要在所述功能中使用的媒体的加载必须发生在UI上下文中。

一个bs.Activity对象:给出提供的活动的上下文。大多数所有代码在游戏中运行都发生在活动的上下文中。

一个bs.Session对象:给出提供的会话的上下文。通常用户不需要在这里运行任何东西。

用法:

上下文通常与python’with’语句一起使用,它将上下文设置为当前的条目,并将其重置为退出时的上一个值。

#例如:加载几个纹理到UI上下文(在窗口小部件的使用等) 
与bs.Context(“UI”):
   myTex1 = bs.getTexture('fooTex1')
   myTex2 = bs.getTexture('fooTex1')

bs.ContextCall

<顶级类>

类别:一般实用类

ContextCall将可调用对象与当前上下文的引用一起包装(请参阅bs.Context); 它在运行时处理恢复上下文,如果上下文开始关闭(finalizing),则自动将其自动清除为无操作。

一般来说,作为用户,您不需要直接使用它; 所有标准的BombSquad回调,如定时器,材料,UI功能等都使用这个“引擎盖”,所以你不用担心。唯一可能需要的时间是如果您正在实现自己的回调,例如执行某些操作的工作线程,然后在完成后调用一些回调函数。通过在其中之一中包装回调,您可以确保不会无意中保持当前活动活动或在已完成(已完成)的上下文中运行代码。

您也可以使用bs.WeakCall进行类似的功能,但是ContextCall有一个额外的好处,它不会与最终的上下文一起运行,而bs.WeakCall 只是看目标对象是否仍然存在。

#示例A:像这样的代码可能无意中阻止我们的活动(self)从
#结束直到操作完成,因为我们传递
#(self.doSomething)的绑定方法包含一个强引用自己)。
startSomeReallyLongAction(callbackWhenDone = self.doSomething)
#示例B:在这种情况下,我们的活动(self)仍然可以正常死亡; 
#这个回调会在活动开始关闭时清除,
#成为一个无害的操作,并释放对我们的活动的引用。
startSomeReallyLongAction(callbackWhenDone = bs.ContextCall(self.doSomething))

bs.CoopGameActivity

继承自:bs.GameActivitybs.Activity

类别:游戏流程类

协同模式游戏的基础类。

属性继承:

球员设置球队

方法继承:

<构造>cameraFlash() continueOrEndGame() createConfigUI() 结束() 最后阶段() filterGameName() getConfigDescriptionLocalized() getConfigDisplayString() getDescription() getDescriptionDisplayString() getDisplayString() getInstanceDescription( )getInstanceDisplayString()getInstanceNameLocalized()getInstanceScoreBoardDescription()getInstanceScoreBoardDisplayString()getInstanceScoreBoardNameLocalized()的GetMap() 的getName() getResolvedScoreInfo() getScoreInfo() 的getSession() 的getSettings() getSupportedMaps() getTeamDisplayString() 的handleMessage() hasBegun() hasEnded() hasTransitionedIn() isFinalized( )isTransitioningOut() isWaitingForContinue() onContinue() onFinalize() onPlayerJoin() onPlayerLeave() onTeamJoin() onTeamLeave() onTransitionIn()onTransitionOut()projectFlagStand()respawnPlayer()setupStandardPowerupDrops()setupStandardTimeLimit()showInfo()showScoreBoardInfo()showZoomMessage()spawnPlayer()spawnPlayerIfExists()showZoomMessage()spawnPlayer()spawnPlayerIfExists()showZoomMessage()spawnPlayer()spawnPlayerIfExists()

方法定义或覆盖:

celebr ()fadeToRed()onBegin()setupLowLifeWarningSound()spawnPlayerSpaz()supportsSessionType()

庆祝()

庆祝(自我,持续)

告诉所有现有的玩家控制角色来庆祝; 可以在合作游戏中有用,当好人得分或完成一波。

fadeToRed()

fadeToRed(个体经营)

将屏幕淡化为红色; 有用的时候,好人已经失去了。

onBegin()

onBegin(个体经营)

在以前的bs.Activity已经完成转换之后被调用。在这一点上,活动的初始球员和球队都被填满,它应该开始其实际的游戏逻辑。

setupLowLifeWarningSound()

setupLowLifeWarningSound(个体经营)

设置任何玩家接近死亡时发出哔哔声的活动。

spawnPlayerSpaz()

spawnPlayerSpaz(self,player,position,angle = None)

产生并连线标准玩家spaz

supportsSessionType()

<class method>

supportsSessionType(cls,sessionType)

返回是否可以在提供的bs.Session子类型中播放此游戏类型。


bs.CoopSession

继承自:bs.Session

类别:游戏流程类

一个运行协同模式游戏的bs.Session。这些通常包括1-4名针对计算机的玩家,并包括诸如高分榜的功能。

属性继承:

球员球队

方法继承:

end()getActivity()handleMessage()onPlayerRequest()onTeamJoin()onTeamLeave()setActivity()

方法定义或覆盖:

<构造>getCustomMenuEntries() onActivityEnd() onPlayerLeave() 重新启动()

<构造>

bs.CoopSession(个体经营)

实例化协作模式会话。

getCustomMenuEntries()

getCustomMenuEntries(个体经营)

子类可以覆盖此,以提供自定义菜单条目。返回的值应该是一个列表,每个都包含一个“标签”和“调用”条目,其中’label’是条目的文本(翻译),’call’是可以被触发的条件。

onActivityEnd()

onActivityEnd(self,activity,results)

合作会话的方法覆盖; 在合作游戏和得分屏幕之间跳跃。

onPlayerLeave()

onPlayerLeave(self,player)

当以前接受的bs.Player离开会话时调用。

重新开始()

重启(个体经营)

重新启动当前的游戏活动。


bs.DieMessage

<顶级类>

类别:消息类

告诉对象死亡 大多数医生对此做出回应。

属性:

如何立即

怎么样

死亡的特殊原因 ‘秋天’,’影响’,’左游戏’等等。这可以用于评分或其他目的。

即时

如果设置为True,演员应立即消失。这是为了从游戏moreso“删除”东西,而不是“杀死”它。如果是虚假的,演员应该死掉一个’正常’的死亡,并可以花费时间与挥之不去的尸体,音效等。

方法:

<构造>

bs.DieMessage(self,immediate = False,how =’generic’)

用给定的值实例化。


bs.DropMessage

<顶级类>

类别:消息类

告诉对象,它已经放弃了它所持有的东西。


bs.DroppedMessage

<顶级类>

类别:消息类

告诉对象已经被删除了。

属性:

节点

bs.Node做丢弃。

方法:

<构造>

bs.DroppedMessage(self,node)

使用给定的bs.Node实例化。


bs.Flag

继承自:bs.Actor

类别:游戏流程类

一只旗; 用于诸如“国旗”或“山王”等游戏。玩家可以固定或携带。

方法继承:

autoRetain()exists()getActivity()isAlive()isFinalized()onFinalize()

方法定义或覆盖:

<构造>getFactory() 的handleMessage() setScoreText()

<构造>

bs.Flag(self,position =(0,1,0),color =(1,1,1),materials = [],touchable = True,droppedTimeout = None)

实例化一个标志。

如果“可触摸”为假,则该标志只会触及地形; 有用的东西像山之王,玩家不应该移动旗帜。

‘材料是一个额外的bs.Materials适用于国旗的清单。

如果提供了“dropsTimeout”(以秒为单位),则标记将在从其初始位置移动后保持不变,将会死亡。

getFactory()

<class method>

getFactory(CLS)

返回一个共享的bs.FlagFactory对象,如有必要,创建它。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象

setScoreText()

setScoreText(self,text)

通过标志显示消息的实用功能; 方便分数。


bs.FlagDeathMessage

<顶级类>

类别:消息类

一个bs.Flag已经死亡。

属性:

bs.Flag已经死了。

方法:

<构造>

bs.FlagDeathMessage(self,flag)

用给定的值实例化。


bs.FlagDroppedMessage

<顶级类>

类别:消息类

一个bs.Flag已经掉线了。

属性:

标志节点

bs.Flag是下降了。

节点

正在拿着它的bs.Node

方法:

<构造>

bs.FlagDroppedMessage(self,flag,node)

用给定的值实例化。


bs.FlagFactory

<顶级类>

类别:游戏流程类

包裹bs.Flags使用的媒体和其他资源。单个实例在所有标志之间共享,可以通过bs.Flag.getFactory()检索。

属性:

flagMaterialflagTextureimpactSoundnoHitMaterialskidSound

flagMaterial

bs.Material适用于所有bs.Flags

flagTexture

标志的bs.Texture

impactSound

bs.Sound使用时bs.Flag击中地面。

noHitMaterial

bs.Material防止与大多数物体接触; 应用于“不可触摸”标志。

skidSound

bs.Sound使用时bs.Flag沿着地面打滑。

方法:

<构造>

bs.FlagFactory(个体经营)

实例化FlagFactory。你不应该这样做 调用bs.Flag.getFactory()获取一个共享实例。


bs.FlagPickedUpMessage

<顶级类>

类别:消息类

一个bs.Flag已经被拾起。

属性:

标志节点

已经拿起的bs.Flag

节点

bs.Node做回升。

方法:

<构造>

bs.FlagPickedUpMessage(self,flag,node)

用给定的值实例化。


bs.FreeForAllSession

继承自:bs.TeamBaseSessionbs.Session

类别:游戏流程类

bs.Session类型为免费模式游戏。

属性继承:

球员球队

方法继承:

onGameResults ()end()getActivity()getCustomMenuEntries()getGameNumber()getMaxPlayers()getNextGameDescription()handleMessage()onActivityEnd()onPlayerLeave()onPlayerRequest()onTeamJoin()onTeamLeave )setActivity()

方法定义或覆盖:

<构造>

bs.FreeForAllSession(个体经营)

设置播放列表并启动bs.Activity接受加入者。


bs.FreezeMessage

<顶级类>

类别:消息类

告诉对象被冻结(如冰bbsBomb的效果)。


bs.GameActivity

继承自:bs.Activity

类别:游戏流程类

所有游戏活动的普通基础; 无论是免费的,合作的还是团队的品种。

属性继承:

球员设置球队

方法继承:

continueOrEndGame() 结束() 的getSession() hasBegun() hasEnded() hasTransitionedIn() isFinalized() isTransitioningOut() isWaitingForContinue() onFinalize() onTeamJoin() onTeamLeave() onTransitionOut( )

方法定义或覆盖:

<构造>cameraFlash() createConfigUI() 最后阶段() filterGameName() getConfigDescriptionLocalized() getConfigDisplayString() getDescription() getDescriptionDisplayString() getDisplayString() getInstanceDescription() getInstanceDisplayString() getInstanceNameLocalized( )getInstanceScoreBoardDescription()getInstanceScoreBoardDisplayString()getInstanceScoreBoardNameLocalized()getMap()getName()getResolvedScoreInfo()getScoreInfo()getSettings()getSupportedMaps()getTeamDisplayString()handleMessage()onBegin()onContinue()onPlayerJoin()onPlayerLeave()onTransitionIn()projectFlagStand()respawnPlayer )setupStandardPowerupDrops() setupStandardTimeLimit() showInfo() showScoreBoardInfo() showZoomMessage() spawnPlayer() spawnPlayerIfExists() spawnPlayerSpaz()supportsSessionType()

<构造>

bs.GameActivity(self,settings = {})

实例化活动并开始预加载所请求的地图。

cameraFlash()

cameraFlash(自身,持续时间= 999)

创建一个闪光的相机闪光效果,如团队赢得比赛时所看到的。

createConfigUI()

<class method>

createConfigUI(cls,sessionType,config,completionCall)

启动一个UI,以便在给定的bs.Session类型下配置此游戏类型的设置。

‘config’应该是一个现有的config dict(指定’edit’模式)或者None(指定’add’模式)。

‘completionCall’将被调用成功的填写配置,或者取消失败。

通常子类不需要覆盖此; 如果他们覆盖bs.GameActivity.getSettings()和bs.GameActivity.getSupportedMaps(),他们可以只依赖这里调用这些函数的默认实现。

结束游戏()

最后阶段(个体经营)

告诉游戏将其自动打包并立即调用bs.Activity.end()。这个方法应该被子类覆盖。

游戏应该总是准备结束和交付结果,即使没有“赢家”; 这样,像标准时间限制(bs.GameActivity.setupStandardTimeLimit())将与游戏一起工作。

filterGameName()

<class method>

filterGameName(CLS)

给定游戏名称,游戏类型

getConfigDescriptionLocalized()

<class method>

getConfigDescriptionLocalized(cls,config)

给定一个游戏配置命令,返回一个简短的描述。这是在查看游戏列表或显示系列中的下一个游戏时使用的。

getConfigDisplayString()

<class method>

getConfigDisplayString(cls,config)

给定一个游戏配置命令,返回一个简短的描述。这是在查看游戏列表或显示系列中的下一个游戏时使用的。

getDescription()

<class method>

getDescription(cls,sessionType)

子类应该覆盖此值,以在给定的bs.Session类型的上下文中返回此活动类型的描述(英文)。

getDescriptionDisplayString()

<class method>

getDescriptionDisplayString(cls,sessionType)

返回一个翻译版本的getDescription()。子类应该覆盖getDescription(); 不是这个。

getDisplayString()

<class method>

getDisplayString(cls,settings = None)

返回此游戏/设置组合的描述性名称。子类应该覆盖getName(); 不是这个。

getInstanceDescription()

getInstanceDescription(个体经营)

以英文返回此特定游戏实例的说明。这在游戏开始时在游戏名称下方的屏幕中央显示。它应该以一个大写字母开始,并以一段时间结束,并且可以比getInstanceScoreBoardDescription()返回的版本更详细一点。

请注意,通过查看特定返回值作为关键字来应用翻译,因此返回的变体数应受限制; 理想的只有一两个。要在描述中包含任意值,您可以返回以下形式的值序列,而不是仅返回一个字符串:

#这会给我们一些像“3分进球”的东西。英文
#,并可以正确地翻译成“Anota 3 goles”。在西班牙语中。
#如果我们刚刚返回字符串“Score 3 Goals”,那么
#必须是每个特定号码的翻译条目。EW。
返回['得分$ {ARG1}个目标',自我设定['得分']]

这样,第一个字符串可以被一致地转换,任何arg值然后被替换成结果。$ {ARG1}将被替换为第一个值$ {ARG2}等等。

getInstanceDisplayString()

getInstanceDisplayString(个体经营)

返回此特定游戏实例的名称。

getInstanceNameLocalized()

getInstanceNameLocalized(个体经营)

已弃用 – 使用getInstanceDisplayString()

getInstanceScoreBoardDescription()

getInstanceScoreBoardDescription(个体经营)

以英文返回此特定游戏实例的简短说明。该描述在屏幕角落的游戏记分牌之上使用,因此应尽可能简洁。它应该是小写的,不应该包含句点或其他标点符号。

请注意,通过查看特定返回值作为关键字来应用翻译,因此返回的变体数应受限制; 理想的只有一两个。要在描述中包含任意值,您可以返回以下形式的值序列,而不是仅返回一个字符串:

#这将给我们提供一些类似“3分进球”的英文版,
并且可以用西班牙语翻译成“anota 3 goles”。
#如果我们在这里刚刚返回字符串“3分”,那么
#必须是每个特定号码的翻译条目。EW。
返回['得分$ {ARG1} goal',self.settings ['Score to Win']]

这样,第一个字符串可以被一致地转换,任何arg值然后被替换成结果。$ {ARG1}将被替换为第一个值$ {ARG2}等等。

getInstanceScoreBoardDisplayString()

getInstanceScoreBoardDisplayString(个体经营)

以英文返回此特定游戏实例的名称。该名称在屏幕角落的游戏记分牌之上使用,因此应尽可能简洁。

getInstanceScoreBoardNameLocalized()

getInstanceScoreBoardNameLocalized(个体经营)

已弃用 – 使用getInstanceScoreBoardDisplayString

的GetMap()

的GetMap(个体经营)

返回用于此活动的bs.Map

的getName()

<class method>

的getName(CLS)

以英文返回此游戏类型的名称。

getResolvedScoreInfo()

<class method>

getResolvedScoreInfo(CLS)

称之为返回游戏的分数信息,其中所有缺少的值都填入默认值。这不应该被覆盖; 重写getScoreInfo()。

getScoreInfo()

<class method>

getScoreInfo(CLS)

游戏应该覆盖这个,以提供有关他们的得分设置的信息。他们应该返回一个包含以下任何一个的dict(缺省值是默认值):

‘scoreName’:给用户显示分数的标签; “得分”,“生存时间”等。“分数”是默认值。

‘lowerIsBetter’:一个布尔值,表示较低的分数是优先级还是较高级别(默认值)。

‘noneIsWinner’:指定“无”的得分值是否被认为比其他得分还是更差。默认为False。

‘scoreType’:可以是’秒’,’毫秒’或’点’。

‘scoreVersion’:改变一个游戏使用的高分列表而不重命名游戏,改变这个。默认为空字符串。

的getSettings()

<class method>

getSettings(cls,sessionType)

调用默认的bs.GameActivity.createConfigUI()实现; 应该返回一个配置选项的dict,以便给出给定的bs.Session类型的用户。

设置的格式是由名称和选项的dict组成的2个成员元组的列表。

可用设置选项:

‘default’:这将确定默认值以及类型(int,float或bool)

‘minValue’:int / float设置的最小值。

‘maxValue’:int / float设置的最大值。

‘choices’:用户可以切换的2个成员名称/值元组的列表。

‘increment’:int / float设置的值增量。

#示例捕获标志游戏的getSettings()实现:
@classmethod
def getSettings(cls,sessionType):
    return [(“Score to Win”,{'default':3,
                             'minValue(最小值)':1}),
            (“Flag Touch Return Time”,“{'default':0,
                                       'minValue(最小值)':0,
                                       '增量':1}),
            (“Flag Idle Return Time”,{'default':30,
                                      'minValue(最小值)':5,
                                      '增量':5}),
            (“时间限制”,{'默认':0,
                           '选择':[( '无',0),
                                      ('1分钟',60),
                                      ('2分钟',120)
                                      ('5分钟',300)
                                      ('10分钟',600),
                                      ('20分钟,1200)]}),
            (“Respawn Times”,{'default':1.0,
                              '选择':[( '' 短,0.25),
                                         ( '短',0.5),
                                         ( '正常',1.0),
                                         ( '长',2.0),
                                         ( '更长',4.0)]}),
            (“史诗模式”,{'默认':False})]

getSupportedMaps()

<class method>

getSupportedMaps(cls,sessionType)

调用默认的bs.GameActivity.createConfigUI()实现; 应该返回给定的bs.Session类型的这个游戏类型有效的地图名称列表。

getTeamDisplayString()

<class method>

getTeamDisplayString(cls,name)

给出一个团队名称,返回它的本地化版本。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象

onBegin()

onBegin(个体经营)

在以前的bs.Activity已经完成转换之后被调用。在这一点上,活动的初始球员和球队都被填满,它应该开始其实际的游戏逻辑。

onContinue()

onContinue(个体经营)

如果一个游戏支持并提供一个继续并且玩家接受的话,这就是所谓的。在这种情况下,玩家应该获得额外的生命或任何相关的东西来保持游戏的进行。

onPlayerJoin()

onPlayerJoin(self,player)

被称为所有新的bs.Players(包括它们的初始集合)。

onPlayerLeave()

onPlayerLeave(self,player)

当玩家离开活动时打电话。

onTransitionIn()

onTransitionIn(self,music = None)

方法覆盖; 可选地可以传递一个“音乐”字符串,这是在游戏过程中播放的建议类型的音乐。请注意,在某些情况下,音乐可能会被地图或其他因素所覆盖,这就是为什么您应该将其传递到这里,而不是简单地播放它。

projectFlagStand()

projectFlagStand(self,pos)

在给定的位置在地面上投射旗杆。适用于诸如捕获标志的游戏,以显示可移动标志的起源。

respawnPlayer()

respawnPlayer(self,player,respawnTime = None)

给定一个bs.Player,设置一个标准的重启定时器,以及标准计数器显示等。在重新生成期间结束时,如果Player仍然存在,将会调用spawnPlayer()。可以可选地提供显式的“respawnTime”(以毫秒为单位)。

setupStandardPowerupDrops()

setupStandardPowerupDrops(self,enableTNT = True)

为当前地图创建标准的上电量。

setupStandardTimeLimit()

setupStandardTimeLimit(self,duration)

给定提供的持续时间(以秒为单位)创建标准游戏时间限制。这将显示在屏幕的顶部。如果时间限制到期,endGame()将被调用。

showInfo()

showInfo(个体经营)

显示游戏说明

showScoreBoardInfo()

showScoreBoardInfo(个体经营)

创建左上角的游戏信息显示,显示游戏的名称和简短描述。

showZoomMessage()

showZoomMessage(self,message,color =(0.9,0.4,0.0),scale = 0.8,duration = 2000,trail = False)

显示用于宣布游戏名称和获奖者的标准缩放文字。

spawnPlayer()

spawnPlayer(self,player)

生成*一些*为所提供的bs.Player。默认实现只是调用spawnPlayerSpaz()。

spawnPlayerIfExists()

spawnPlayerIfExists(self,player)

如果 提供的bs.Player仍然存在,则调用self.spawnPlayer()*的实用程序方法* 方便用于计时器和什么。

没有必要重写这个; 只需覆盖spawnPlayer()。

spawnPlayerSpaz()

spawnPlayerSpaz(self,player,position =(0,0,0),angle = None)

创建并连接一个bs.PlayerSpaz以提供bs.Player

supportsSessionType()

<class method>

supportsSessionType(cls,sessionType)

返回是否可以在提供的bs.Session子类型中播放此游戏类型。


bs.HitMessage

<顶级类>

类别:消息类

告诉一个对象它已经被击中了某种方式。这是用冲击,爆炸等方式传达给目标的。

方法:

<构造>

bs.HitMessage(self,srcNode = None,pos = Vector(0,0,0),velocity = Vector(0,0,0),magnitude = 1.0,velocityMagnitude = 0.0,radius = 1.0,sourcePlayer = None,kickBack = 1.0,flatDamage = None,hitType =’generic’,forceDirection = None,hitSubType =’default’)

实例化有关发生的命中类型的各种信息位的消息。


bs.ImpactDamageMes??sage

<顶级类>

类别:消息类

告诉对象,它已经被猛烈地震撼了,可能会被损坏。

属性:

强度

影响的强度。

方法:

<构造>

bs.ImpactDamageMes??sage(self,intensity)

实例化具有给定强度值的消息。


bs.InputDevice

<顶级类>

类别:游戏流程类

表示输入设备,如手柄,触摸屏或键盘。对于大多数改装目的,不应该与此类进行交互; 所有玩家的互动应该通过 bs.Player类进行。这个类主要用于显示或配置分配的键,按钮等。

方法:

()getAxisName()getButtonName()getID()getInstanceNumber()getName()getPlayer()getUniqueIdentifier()isConnectedToRemotePlayer()isRemoteClient()removeRemotePlayerFromGame

存在()

exists() – > bool

返回设备是否仍然存在。大多数功能将在不安装设备上失败。

getAxisName()

getAxisName() – > string

给定轴ID,返回此设备上轴的名称。

getButtonName()

getButtonName() – > string

给定一个按钮ID,返回此设备上的键/按钮的名称。

的getID()

getID() – > int

返回此输入设备的唯一数字ID。

getInstanceNumber()

getInstanceNumber() – > int

返回相同类型的设备之间的此设备的编号。

的getName()

getName() – > string

返回设备的名称。

getPlayer()

getPlayer() – > bs.Player

返回与此输入设备关联的bs.Player,如果没有则返回None。

getUniqueIdentifier()

getIdentifier() – > string

返回可用于唯一标识特定输入设备的字符串,即使在相同类型的设备中。(用于保存prefs等)

isConnectedToRemotePlayer()

isConnectedToRemotePlayer() – > bool

返回此输入设备是否连接到远程主机设备上的播放器。

isRemoteClient()

isRemoteClient() – > bool

返回此输入设备是否代表远程连接的客户端。

removeRemotePlayerFromGame()

removeRemotePlayerFromGame() – >无

如果此设备连接到远程播放器,请将其从游戏中删除。


bs.Level

<顶级类>

(没有文档)

方法:

<构造>getCampaign() getComplete() getDisplayString() getGameType() getHighScores() getIndex() 的getName() getPreviewTex() getPreviewTexName() getRating() getScoreVersionString() 的getSettings( )setComplete()setHighScores()submitRating()

<构造>

bs.Level(self,name,gameType,settings,previewTexName,displayName = None)

(没有文档)

getCampaign()

getCampaign(个体经营)

(没有文档)

getComplete()

getComplete(个体经营)

(没有文档)

getDisplayString()

getDisplayString(个体经营)

(没有文档)

getGameType()

getGameType(个体经营)

(没有文档)

getHighScores()

getHighScores(个体经营)

(没有文档)

getIndex()

getIndex(个体经营)

(没有文档)

的getName()

的getName(个体经营)

(没有文档)

getPreviewTex()

getPreviewTex(个体经营)

(没有文档)

getPreviewTexName()

getPreviewTexName(个体经营)

(没有文档)

getRating()

getRating(个体经营)

(没有文档)

getScoreVersionString()

getScoreVersionString(个体经营)

(没有文档)

的getSettings()

的getSettings(个体经营)

(没有文档)

setComplete()方法

setComplete(self,val)

(没有文档)

setHighScores()

setHighScores(self,highScores)

(没有文档)

submitRating()

submitRating(self,rating)

(没有文档)


bs.Lstr

<顶级类>

类别:一般实用类

用于以语言无关的方式指定字符串。应尽可能使用这些代码来代替硬编码的字符串,以便游戏中或UI元素以其当前活动的语言正确显示在所有客户端上。

要查看可用的资源密钥,请查看游戏中的任何bsLanguage * .py文件或bombsquadgame.com/translate中的翻译页面。

#示例1:从资源路径指定一个字符串 
myTextNode.text = bs.Lstr(resource ='audioSettingsWindow.titleText')
#示例2:通过类别和英文值指定翻译的字符串; 
#如果翻译的值可用,将被使用; 否则英文的价值就是。
#查看可用的翻译类别,查看“翻译”资源部分。
myTextNode.text = bs.Lstr(translate =('gameDescriptions','Defeat all enemies'))
#示例3:指定原始值和一些替换。替换可以使用
#与资源和翻译模式。
myTextNode.text = bs.Lstr(value ='$ {A} / $ {B}',subs = [('$ {A}',str(score)),('$ {B}', ))])
#示例4:Lstrs可以嵌套。这个例子将在resPathA 
#上显示资源,而在resPathB中替换$ {NAME}资源的值 
。myTextNode.text = bs.Lstr(resource ='resPathA',subs = [('$ {NAME}',bs。 Lstr(resource ='resPathB'))])

方法:

<constructor>evaluate()isFlatValue()

<构造>

bs.Lstr(self,* args,** keywds)

实例化Lstr; 传递“资源”,“翻译”或“值”的值。(参见Lstr帮助的例子)。’subs’可以是由值和替换组成的2个成员序列的序列。“回退”可以是一个资源密钥,如果主要的不存在用于当前语言而不是回到英文值(仅“资源”模式),则将使用它。

评估()

评估(个体经营)

评估Lstr并返回当前语言中的一个扁平字符串。你应该尽可能避免这样做,而不是传递和存储Lstr值。

isFlatValue()

isFlatValue(个体经营)

如果Lstr是没有翻译,资源或替换的简单字符串值,则返回true。在这种情况下,用简单的扁平字符串替换它或对其进行字符串操作是合理的。


bs.Map

继承自:bs.Actor

类别:游戏流程类

包括游戏地图的地形节点,元数据和其他功能的集合。

方法继承:

autoRetain()exists()getActivity()isAlive()isFinalized()onFinalize()

方法定义或覆盖:

<构造>getDefBoundBox() getDefPoint() getDefPoints() getFFAStartPosition() getFlagPosition() getMusicType() 的getName() getPreviewTextureName() getStartPosition() 的handleMessage() onPreload() 预载( )

<构造>

bs.Map(self,vrOverlayCenterOffset = None)

实例化地图。

getDefBoundBox()

getDefBoundBox(self,name)

返回6个成员的边界元组,如果没有定义则返回None。

getDefPoint()

getDefPoint(self,name)

返回单个定义的点或缺省值的默认值。

getDefPoints()

getDefPoints(self,name)

返回一个点列表 – 定义了很多顺序(flag1,flag2,flag3)等。

getFFAStartPosition()

getFFAStartPosition(self,players)

返回一个FFA产卵区域中的随机起始位置。如果提供了bs.Players的列表; 返回点将尽可能远离这些玩家。

getFlagPosition()

getFlagPosition(self,teamIndex)

在给定的团队索引的地图上返回一个标志位置。通过无获取默认标志点。(用于诸如山之王等)

getMusicType()

<class method>

getMusicType(CLS)

返回应该在此地图上播放的特定音乐类型的字符串; 或如果要使用默认音乐,则为无。

的getName()

<class method>

的getName(CLS)

以英文返回此地图的唯一名称。

getPreviewTextureName()

<class method>

getPreviewTextureName(CLS)

返回此地图的预览纹理的名称。

getStartPosition()

getStartPosition(self,teamIndex)

返回给定团队索引的地图中的随机起始位置。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象

onPreload()

<class method>

onPreload(CLS)

当地图被预加载时调用; 它应该加载它所需的任何媒体对自己的类属性。

预紧力()

<class method>

预加载(cls,onDemand = False)

预加载地图媒体。如果需要准备运行,这将运行该类的onPreload函数。可以为即将到来的地图启动预加载,以加快其创建速度。这是一个类方法,因为它不是在地图实例上运行,而是在实例之前整体上类


bs.Material

<顶级类>

类别:游戏流程类

当碰撞发生时,材料可能会影响物理特性,产生声音或触发回调功能。

材料应用于“部件”,它们是作为bs.Node的一部分创建的一个或多个刚体的。节点可以有任意数量的零件,每个零件都有自己的材料。通常,材料在节点上被指定为数组属性。例如,“spaz”节点具有诸如“material”,“rollerMaterials”和“punchMaterials”等各种属性,这些属性对应于其创建的各个部分。

使用bs.Material()来实例化一个空白材质,然后使用它的addActions()方法定义材料的作用。

方法:

addActions()getName()

addActions()

addActions(动作,条件=无) – >无

向材料中添加一个或多个操作,可选择带有条件。

条件:

条件作为元组提供,可以组合形成布尔逻辑。单个条件可能看起来像(’conditionName’,condArg),或者一个更复杂的嵌套的样子可能看起来像((’someCondition’,condArg)’或’,(’anotherCondition’,cond2Arg))。

‘和’,’或’和’xor’可用于链接在一起的2个条件,如上所述。

可用条件:

(“他们的材料”,材料) – 我们打的部分是否有一个给定的bs.Material

(’theyDontHaveMaterial’,材料) – 我们打的部分没有给定的bs.Material

(’evalColliding’) – 物质评估在这一点上是否“碰撞”?(请参阅modifyPartCollision操作)

(’evalNotColliding’) – 物质评估在这一点上是“碰撞”的错误?(请参阅modifyPartCollision操作)

(’weAreYoungerThan’,年龄) – 我们的年龄比“年龄”还小(毫秒)?

(’weAreOlderThan’,年龄) – 是我们的年龄比“年龄”(以毫秒为单位)的一部分?

(“theyAreYoungerThan”,年龄) – 是我们比“年龄”(几毫秒)还要小的部分?

(“theyAreOlderThan”,年龄) – 是我们正在比“年龄”(以毫秒为单位)年龄的一部分吗?

(’themAreSameNodeAsUs’) – 我们正在击中的部分属于与我们相同的bs.Node

(’theyAreDifferentNodeThanUs’) – 我们打的部分是否属于与我们不同的bs.Node

操作:

以类似的方式,动作被指定为元组。可以通过提供元组的元组来指定多个动作。

可用操作:

(’call’,when,callable) – 调用提供的callable; ‘何时’可以’atConnect’或’atDisconnect’。“atConnect”是指两个部件首次接触时触发; “断开”是指一旦停止接触就开火。

(’message’,who,when,messageObj) – 发送消息对象; ‘谁’可以是’我们的节点’或’他们的节点’,’何时’可以’atConnect’或’atDisconnect’,而messageObj是要发送的消息对象。这与调用节点的handleMessage()方法具有相同的效果。

(’modifyPartCollision’,attr,value) – 改变了我们的部分和部分之间将发生的物理碰撞的一些特征。只要这两个部分保持重叠,这一变化将继续有效。这意味着如果您有一部分材料与100毫秒以下的部分发生“碰撞”,并且触及另外50毫秒的部分,则它将继续与该部分不冲突,直到它们分离,即使100ms阈值通过了 attr / value的选项是:“物理”(布尔值;是否会发生*物理*响应),“摩擦”(浮点值;物理响应的摩擦力),“碰撞”(布尔值;是否*任何*碰撞都会发生,包括非物理的东西,如回调),’useNodeCollide’(布尔值;

(’modifyNodeCollision’,attr,value) – 类似于modifyPartCollision,但在节点级别运行。只要我们部分的节点和它们的节点的任何东西重叠,这里设置的碰撞属性将保持有效。这个功能的一个关键用途是防止新节点出现重叠时与彼此碰撞; 如果使用modifyPartCollision,只有重叠的单个部分才能避免接触,但是其他部分仍然可以联系,使两个节点纠缠在一起。使用modifyNodeCollision确保节点必须完全分离,才能开始冲突。目前唯一可用的attr是’collide’(一个布尔值)。

(“声音”,声音,音量) – 播放bs.Sound当发生碰撞时,在给定的音量,无论碰撞速度等。

(’impactSound’,sound,targetImpulse,volume) – 根据影响速度发生碰撞时发出声音。提供一个bs.Sound,一个目标冲动和一个卷。

(’skidSound’,sound,targetImpulse,volume) – 当碰撞时,在碰撞时发出声音。提供一个bs.Sound,一个目标冲动和一个卷。

(’rollSound’,sound,targetImpulse,volume) – 当部件相对于彼此“滚动”时,在碰撞期间发出声音。提供一个bs.Sound,一个目标冲动和一个卷。

#示例1:创建一个材料,让我们忽略
我们在
我们存在
的第一个100 ms中碰到的任何节点的#个冲突; 如果我们产生在另一个对象之上,那么可以防止我们向外爆发#m 
= bs.Material()
m.addActions(条件=(( 'weAreYoungerThan',100),
                         '或',( 'theyAreYoungerThan',100)),
             行动=( 'modifyNodeCollision', '碰撞',假))
#示例2:发送一个DieMessage到任何我们触摸,但导致
#无物理响应。这应该导致任何bs.Actor下降死亡: 
m = bs.Material()
m.addActions(行动=(( 'modifyPartCollision', '物理',假),
                      ('message','theirNode','atConnect',bs.DieMessage())))
#示例3:当我们接触地面时播放一些声音: 
m = bs.Material()
m.addActions(conditions =('themHaveMaterial',bs.getSharedObject('footingMaterial')),
             actions =(('impactSound',bs.getSound('metalHit'),2,5),
                      ('skidSound',bs.getSound('metalSkid'),2,5)))

的getName()

返回材料名称。名称仅用于调试。


bs.MelBot

继承自:bs.SpazBotbs.Spazbs.Actor

类别:博客类

一个疯狂的机器人运行和投掷粘弹。

属性继承:

节点

方法:

<从bs.SpazBot > 继承的所有方法


bs.MelBotStatic

继承自:bs.MelBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个疯狂的机器人扔粘弹,但一般停留在一个地方。

属性继承:

节点

方法:

<从bs.MelBot > 继承的所有方法


bs.Model

<顶级类>

类别:媒体类

对模型的引用。模型用于绘图。使用bs.getModel()来实例化一个。


bs.NinjaBot

继承自:bs.SpazBotbs.Spazbs.Actor

类别:博客类

快速攻击近战机器人

属性继承:

节点

方法:

<从bs.SpazBot > 继承的所有方法


bs.NinjaBotPro

继承自:bs.NinjaBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个更激进的红bs.NinjaBot

属性继承:

节点

方法:

<从bs.NinjaBot > 继承的所有方法


bs.NinjaBotProShielded

继承自:bs.NinjaBotProbs.NinjaBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个更积极的红色bs.NinjaBot 谁从盾牌开始。

属性继承:

节点

方法:

<从bs.NinjaBotPro > 继承的所有方法


bs.Node

<顶级类>

类别:游戏流程类

节点是BombSquad游戏的基本低级构建块。其核心是一个游戏,只不过是随着时间的推移,属性被设置或相互关联的节点的场景图。

bs.Node实例应该被认为是弱参照游戏节点; *不*节点本身。

这意味着一个节点的生命周期完全独立于它存在多少个bs.Node python引用。要显式地添加一个新节点到游戏,请使用bs.newNode(),并显式地删除一个,使用bs.Node.delete()。 bs.Node.exists()可用于确定bs.Node是否 仍然指向游戏中的活动节点。您可以使用bs.Node(None)来实例化一个NULL节点引用(有时用作attr值/ etc)。

方法:

addDeathAction()connectAttr()delete()exists()getDelegate()getName()getNodeType()handleMessage()

addDeathAction()

addDeathAction(action) – > None

在此节点死亡时添加要调用的可调用对象。请注意,这些操作仅在节点死亡之后运行,而不是之前运行。

connectAttr()

connectAttr(srcAttr,dstNode,dstAttr) – >无

将该节点的属性之一连接到另一个节点上的属性。这将立即将目标属性的值设置为源属性的值,并且只要两个节点存在,将继续执行此操作一次。可以通过将目标属性设置为任何值或将另一个节点属性连接到该连接来切断连接。

#example :创建一个定位器并附加一个指示灯 
light = bs.newNode('light')
loc = bs.newNode('locator',attrs = {'position':( 0,10,0)})
loc.connectAttr( '位置',光, '位置')

删除()

delete(ignoreMissing = True) – >无

删除节点。忽略已删除的节点,除非ignoreMissing为False,在这种情况下抛出异常。

存在()

返回节点是否仍然存在。大多数功能都将在一个非紧急节点上失败,所以检查这一点是不错的。

getDelegate()

返回节点的当前委托,它是指定为处理节点消息的python对象。

的getName()

返回分配给节点的名称; 主要用于调试

getNodeType()

将此对象引用的节点类型返回为字符串。(注意这是不同于总是bs.Node的Python类型)

的handleMessage()

handleMessage(…) – >无

一般信息处理; 可以传递任何消息对象

所有标准消息对象都转发到bs.Node的委托以进行处理(通常是使用该节点的bs.Actor)。

bs.Nodes是唯一的,但是它们可以通过第二种形式的消息; “节点的消息”。这些包含一个字符串类型名称作为第一个参数以及特定于该类型名称的参数作为附加参数。节点消息与低级节点层直接通信,并在所有游戏客户端上同时传送,作为设置节点属性的替代方法。


bs.NodeActor

继承自:bs.Actor

类别:游戏流程类

一个简单的bs.Actor,它绕着一个单一的bs.Node,并在被告知死亡时杀死该节点。这样就可以利用标准的actor行为,例如在不再被引用的情况下死机,所以你可以通过清除一个python列表等来做一些事情,比如杀掉一堆节点。

属性:

节点

包裹的节点。

方法继承:

autoRetain()exists()getActivity()isAlive()isFinalized()onFinalize()

方法定义或覆盖:

<constructor>handleMessage()

<构造>

bs.NodeActor(self,node)

使用给定的bs.Node实例化。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象


bs.OnScreenCountdown

继承自:bs.Actor

类别:游戏流程类

方便的屏幕定时器; 对于基于时间的游戏计数为零,非常有用。

方法继承:

autoRetain()exists()getActivity()handleMessage()isAlive()isFinalized()

方法定义或覆盖:

<构造>onFinalize() 开始()

<构造>

bs.OnScreenCountdown(self,duration,endCall = None)

持续时间在几秒钟内提供

onFinalize()

onFinalize(个体经营)

bs.Activity关闭时, 对每个剩余的bs.Actor调用onFinalize。演员可以利用这个机会来清除具有保持bs.Activity潜在的回调或其他参考。

一旦演员完成(参见bs.Actor.isFinalized()),它将不再执行任何游戏对象操纵(创建,修改或删除节点,媒体,计时器等)尝试这样做可能会出现错误。

开始()

启动(个体经营)

启动计时器。


bs.OnScreenTimer

继承自:bs.Actor

类别:游戏流程类

方便的屏幕定时器 适用于时间增长的基于时间的游戏。

方法继承:

autoRetain()exists()getActivity()isAlive()isFinalized()onFinalize()

方法定义或覆盖:

<构造>getStartTime() 的handleMessage() hasStarted() 开始() 停止()

<构造>

bs.OnScreenTimer(个体经营)

在当前bs.Activity中实例化一个演员。

getStartTime()

getStartTime(个体经营)

返回start()被调用时的游戏时间

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象

已开始()

hasStarted(个体经营)

(没有文档)

开始()

启动(个体经营)

启动计时器。

停止()

stop(self,endTime = None)

结束定时器 如果’endTime’不为None,则在计算最终显示时间时使用; 否则使用当前时间


bs.OutOfBoundsMessage

<顶级类>

类别:消息类

告诉一个对象,它是超出范围。


bs.PickedUpMessage

<顶级类>

类别:消息类

告诉对象,它被某些东西所拾取。

属性:

节点

bs.Node做回升。

方法:

<构造>

bs.PickedUpMessage(self,node)

使用给定的bs.Node实例化。


bs.PickUpMessage

<顶级类>

类别:消息类

告诉对象,它已经选择了一些东西。

属性:

节点

bs.Node,这是获得回升。

方法:

<构造>

bs.PickUpMessage(self,node)

使用给定的bs.Node实例化。


bs.PirateBot

继承自:bs.SpazBotbs.Spazbs.Actor

类别:博客类

一个机器人在5秒内跑步并爆炸。

属性继承:

节点

方法:

<从bs.SpazBot > 继承的所有方法


bs.PirateBotNoTimeLimit

继承自:bs.PirateBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个机器人运行但不会自己爆炸。

属性继承:

节点

方法:

<从bs.PirateBot > 继承的所有方法


bs.PirateBotShielded

继承自:bs.PirateBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

a bs.PirateBot谁从盾牌开始。

属性继承:

节点

方法:

<从bs.PirateBot > 继承的所有方法


下载BS.Player

<顶级类>

类别:游戏流程类

参考游戏中的玩家。这些在内部创建和管理,并提供给您的会话/活动实例。您可以使用bs.Player(None)来实例化一个空的Player参考(有时用作attr值/ etc)。请注意,像bs.Nodes一样,bs.Player对象是引擎下的“弱”引用; 玩家可以离开游戏。任何一点。因此,您应该明智地使用 bs.Player.exists()方法,以确保如果保留对一个播放器的引用,则播放器仍然存在。

属性:

演员角色颜色gameDatahighlightsessionData

演员

当前bs.Actor与此播放器相关联。

字符

此播放器在其配置文件中选择的角色。(串)

颜色

这个播放器的基本颜色。在团队比赛中,这将符合bs.Team的颜色。

GAMEDATA

用于当前bs.Activity用于存储与此播放器相关的数据的命令。每个新的bs.Activity将被清除。

突出

这个播放器的次要颜色。这用于轻微的亮点和口音,允许玩家与队友分开,他们可能共享相同的队(主)颜色。

sessionData

用于存储与此播放器相关的数据的当前bs.Session使用的dict 。这在会议期间持续存在。

方法:

assignInputCall() 存在时() 调用getIcon() 的getID() getInputDevice() 的getName() getTeam() 的IsAlive() removeFromGame() resetInput() setActor() 的setName()

assignInputCall()

assignInputCall(type(s),call) – > None

设置要为一种或多种类型的输入运行的python callable。有效的类型值有:’jumpPress’,’jumpRelease’,’punchPress’,’punchRelease’,’bombPress’,’bombRelease’,’pickUpPress’,’pickUpRelease’,’upDown’,’leftRight’,’upPress’ upRelease’,’downPress’,’downRelease’,’leftPress’,’leftRelease’,’rightPress’,’rightRelease’,’run’,’flyPress’,’flyRelease’,’startPress’

存在()

exists() – > bool

返回播放器是否仍然存在。大多数功能将在不起作用的玩家失败。

调用getIcon()

getIcon() – > dict

返回字符的图标(包含在dict中的图像,颜色等)

的getID()

getID() – > int

返回此播放器的唯一数字ID。

getInputDevice()

getInputDevice() – > bs.InputDevice

返回播放器的输入设备。在远程玩家的情况下,它可能返回None。

的getName()

getName(long = False,icon = True) – > string

返回玩家的名字。如果图标为True,长版本的名称可能包含一个图标。

getTeam()

getTeam() – > bs.Team

返回球员的队伍。

活着()

isAlive() – > bool

如果播放器分配了bs.Actor并且其isAlive()方法返回True,则返回True。否则返回False。

removeFromGame()

removeFromGame() – > None

从游戏中移除玩家。

resetInput()

resetInput() – >无

清除玩家分配的输入动作。

setActor()

setActor(actor) – >无

设置玩家的相关bs.Actor

的setName()

setName(name) – > None

将播放器的名称设置为提供的字符串。如果名称与其他玩家不是唯一的,则会自动添加一个数字。


bs.PlayerScoredMessage

<顶级类>

类别:消息类

通知玩家得分的bs.Activity

属性:

得分了

得分值。

方法:

<构造>

bs.PlayerScoredMessage(self,score)

用给定的值实例化


bs.PlayerSpaz

继承自:bs.Spazbs.Actor

类别:游戏流程类

一个bs.Spaz子类旨在通过控制BS.Player专业

当PlayerSpaz死亡时,它会将bs.PlayerSpazDeathMessage 传递给当前的bs.Activity。(除非死亡是玩家离开游戏的结果,否则不会发送消息)

当PlayerSpaz受伤时,它会将bs.PlayerSpazHurtMessage 传递给当前的bs.Activity

属性继承:

节点

方法继承:

addDroppedBombCallback() autoRetain() 诅咒() curseExplode() dropBomb() equipBoxingGloves() equipShields() 存在时() getActivity() getDeathPoints() getFactory() 的IsAlive() isFinalized( )onBombPress() onBombRelease() onFinalize() onFlyPress() onFlyRelease() onJumpPress() onJumpRelease() onMove() onMoveLeftRight() onMoveUpDown()onPickUpPress()onPickUpRelease()onPunchPress()onPunchRelease()onPunched()onRun()setBombCount()setLandMineCount()setScoreText()shatter

方法定义或覆盖:

<构造>connectControlsToPlayer() disconnectControlsFromPlayer() getPlayer() 的handleMessage()

<构造>

bs.PlayerSpaz(self,color =(1,1,1),highlight =(0.5,0.5,0.5),character =’Spaz’,player = None,powerupsExpire = True)

为提供的bs.Player创建一个spaz。注意:这不连接任何控件; 你必须调用connectControlsToPlayer()这样做。

connectControlsToPlayer()

connectControlsToPlayer(self,enableJump = True,enablePunch = True,enablePickUp = True,enableBomb = True,enableRun = True,enableFly = True)

将此spaz连接到提供的bs.Player。字符的完全控制是默认给定的,但可以通过将False传递给特定参数来选择性地进行限制。

disconnectControlsFromPlayer()

disconnectControlsFromPlayer(个体经营)

完全切断任何以前连接的 bs.Player从这个spaz的控制。

getPlayer()

getPlayer(个体经营)

返回与该spaz相关联的bs.Player。请注意,虽然有效的玩家对象将始终被返回,但不能保证玩家仍然在游戏中。在执行任何操作之前调用bs.Player.exists()返回值。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象


bs.PlayerSpazDeathMessage

<顶级类>

类别:消息类

一个bs.PlayerSpaz已经死亡。

属性:

如何杀死杀手粉丝

怎么样

特定类型的死亡。

杀害

如果是真的,那么spaz被杀死了 如果是假的,他们离开了比赛或者圆满结束。

killerPlayer

下载BS.Player这并杀害,或无。

怪人

bs.PlayerSpaz已经死了。

方法:

<构造>

bs.PlayerSpazDeathMessage(self,spaz,wasKilled,killerPlayer,how)

实例化具有给定值的消息。


bs.PlayerSpazHurtMessage

<顶级类>

类别:消息类

一个bs.PlayerSpaz受伤了。

属性:

怪人

受伤的bs.PlayerSpaz

方法:

<构造>

bs.PlayerSpazHurtMessage(self,spaz)

用给定的bs.Spaz值进行实例化。


bs.PopupText

继承自:bs.Actor

类别:游戏流程类

一点点的文字弹出一个位置,以表示特殊的东西。

方法继承:

autoRetain()exists()getActivity()isAlive()isFinalized()onFinalize()

方法定义或覆盖:

<constructor>handleMessage()

<构造>

bs.PopupText(self,text,position =(0,0,0),color =(1,1,1,1),randomOffset = 0.5,offset =(0,0,0),scale = 1.0)

用给定的值实例化。

randomOffset是从被提供的位置的随机偏移量。这可以帮助多重成就重叠太多。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象


bs.Powerup

继承自:bs.Actor

类别:游戏流程类

一个开机箱。这将提供一个bs.PowerupMessage到任何接触它其中有bs.PowerupFactory.powerupAcceptMaterial应用。

属性:

节点powerupType

节点

表示此框的’ prop’bs.Node

powerupType

字符串上电类型。这可以是“三重炸弹”,“冲击”,“冰块”,“冲击炸弹”,“地雷”,“粘弹”,“盾”,“健康”或“诅咒”。

方法继承:

autoRetain()exists()getActivity()isAlive()isFinalized()onFinalize()

方法定义或覆盖:

<构造>getFactory() 的handleMessage()

<构造>

bs.Powerup(self,position =(0,1,0),powerupType =’tripleBombs’,expire = True)

在请求的位置创建所请求类型的启动框。

请参阅有效类型字符串的bs.Powerup.powerupType

getFactory()

<class method>

getFactory(CLS)

返回一个共享的bs.PowerupFactory对象,如有必要,创建它。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象


bs.PowerupAcceptMessage

<顶级类>

类别:消息类

通知bs.Powerup它被接受。这通常是为了响应bs.PowerupMessage 而发送的,以通知盒子(或者谁授予它)它可以消失。


bs.PowerupFactory

<顶级类>

类别:游戏流程类

包装bs.Powerups使用的媒体和其他资源。一个单一的实例在所有的powerups之间共享,可以通过bs.Powerup.getFactory()检索。

属性:

healthPowerupSoundmodelmodelSimplepowerdownSoundpowerupAcceptMaterialpowerupMaterialpowerupSoundtexBoxtexCursetexHealthtexIceBombstexImpactBombstexLandMinestexPunchtexShieldtexStickyBombs

healthPowerupSound

当接受健康强力时,bs.Sound播放。

模型

bs.Model的上电箱。

modelSimple

一个更简单的bs . 加密盒的模型,用于阴影等

powerdownSound

bs.Sound可以在电源耗尽时使用。

powerupAcceptMaterial

Powerups将发送一个bs.PowerupMessage到他们所触摸的任何具有这种bs.Material的应用。

powerupMaterial

bs.应用于加电箱的材料。

powerupSound

bs.Sound接通电源时播放。

texBox

三重炸弹加强bs.Texture

texCurse

诅咒加强bs.Texture

texHealth

健康强力bs.Texture

texIceBombs

冰块强力bs.Texture

texImpactBombs

撞击炸弹加油bs.Texture

texLandMines

土地开采bs.Texture

texPunch

打孔电源bs.Texture

texShield

盾牌加强bs.Texture

texStickyBombs

粘性炸弹强力bs.Texture

方法:

<constructor>getRandomPowerupType()

<构造>

bs.PowerupFactory(个体经营)

实例化PowerupFactory。你不应该这样做 调用bs.Powerup.getFactory()获取一个共享实例。

getRandomPowerupType()

getRandomPowerupType(self,forceType = None,excludeTypes = [])

返回随机上电类型(字符串)。有关可用的类型值,请参阅bs.Powerup.powerupType

这有一定的非随机方面; 例如,一个“诅咒”的启动,总是伴随着“健康”的强力(让事情变得有趣)。通过’forceType’强制给定的返回类型,同时仍然正确地与系统的非随机方面进行交互(即:强制“诅咒”上电将导致下次启动成为健康状态)。


bs.PowerupMessage

<顶级类>

类别:消息类

告诉你一些东西可以开机。通常通过触摸bs.Powerup框接收此消息。

属性:

powerupTypesourceNode

powerupType

要授权的类型(字符串)。有关可用的类型值,请参阅bs.Powerup.powerupType

sourceNode

节点的加电游戏来自,或空bs.Node ref否则。如果接通电源,则应将bs.PowerupAcceptMessage发送回sourceNode以通知它。这通常会导致启动框发出声音并消失或不起作用。

方法:

<构造>

bs.PowerupMessage(self,powerupType,sourceNode = < bs.Node object>)

用给定的值实例化。有关可用的类型值,请参阅bs.Powerup.powerupType


bs.RespawnIcon

<顶级类>

类别:游戏流程类

在屏幕旁边显示倒计时图标; 用于表示bs.Player正在等待重新生成。

方法:

<构造>

bs.RespawnIcon(self,player,respawnTime)

使用给定的bs.Player和respawnTime(以毫秒为单位)实例化


bs.ScoreBoard

<顶级类>

类别:游戏流程类

游戏中玩家或团队成绩的显示。

方法:

<constructor>setTeamValue()

<构造>

bs.ScoreBoard(self,label = None,scoreSplit = 0.7)

实例化记分板。标签可以是“点”,如果提供,将显示在板上。

setTeamValue()

setTeamValue(self,team,score,maxScore = None,countdown = False,flash = True,showValue = True)

更新给定团队的记分板显示。


bs.Session

<顶级类>

类别:游戏流程类

会话是游戏中最高级别的控制结构。会话类型为bs.FreeForAllSessionbs.TeamsSessionbs.CoopSession

会议负责各种比赛之间的争吵和过渡 活动,如迷你游戏和分数屏幕,以及维持他们之间的状态(玩家,团队,分数等)。

属性:

球员球队

玩家

所有bs.Players在会话中。大多数事情应该使用bs.Activity中的播放器列表; 不是这个。

球队

所有bs.Teams在会议。大多数事情应该使用bs.Activity中的团队列表; 不是这个。

方法:

<构造>结束() getActivity() getCustomMenuEntries() 的handleMessage() onActivityEnd() onPlayerLeave() onPlayerRequest() onTeamJoin() onTeamLeave() setActivity()

<构造>

bs.Session(self,teamNames = [‘Good Guys’],teamColors = [(0.6,0.2,1.0)],useTeamColors = True,minPlayers = 1,maxPlayers = 8,allowMidActivityJoins = True)

使用提供的关于团队和最大玩家的信息来实例化一个会话。

结束()

结束(个体经营)

启动会话结束并返回主菜单。请注意,这是异步发生的,允许会话及其活动正常关闭。

getActivity()

getActivity(个体经营)

返回此会话的当前前台活动。

getCustomMenuEntries()

getCustomMenuEntries(个体经营)

子类可以覆盖此,以提供自定义菜单条目。返回的值应该是一个列表,每个都包含一个“标签”和“调用”条目,其中’label’是条目的文本(翻译),’call’是可以被触发的条件。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象

onActivityEnd()

onActivityEnd(self,activity,results)

当当前bs.Activity结束时调用。会话应该查看结果并开始另一个活动。

onPlayerLeave()

onPlayerLeave(self,player)

当以前接受的bs.Player离开会话时调用。

onPlayerRequest()

onPlayerRequest(self,player)

当一个新的bs.Player想加入时调用; 应该返回True或False来接受/拒绝。

onTeamJoin()

onTeamJoin(自我,团队)

当新的bs.Team加入会话时调用。

onTeamLeave()

onTeamLeave(自我,团队)

bs.Team离开会话时打电话

setActivity()

setActivity(self,activity)

为会话分配新的当前bs.Activity。请注意,这不会将当前上下文更改为新的Activity。代码必须在新活动的方法(onTransitionIn等)中运行才能得到它。(所以你不能做session.setActivity(foo),然后bs.newNode()添加一个节点到foo)


bs.ShouldShatterMessage

<顶级类>

类别:消息类

告诉对象,它应该破碎。


bs.Sound

<顶级类>

类别:媒体类

引用声音。使用bs.getSound()来实例化一个。


bs.Spaz

继承自:bs.Actor

类别:游戏流程类

各种Spazzes的基础课程。Spaz是游戏中标准的小型人形怪物。它可以由玩家或AI控制,并且可以有各种不同的外观。名字“Spaz”不要与游戏中的“Spaz”角色混淆,这只是这个类的实例的外观之一。

属性:

节点

spaz’bs.Node

方法继承:

autoRetain()getActivity()isFinalized()

方法定义或覆盖:

<构造>addDroppedBombCallback() 诅咒() curseExplode() dropBomb() equipBoxingGloves() equipShields() 存在时() getDeathPoints() getFactory() 的handleMessage() 的IsAlive() onBombPress( )onBombRelease() onFinalize() onFlyPress() onFlyRelease() onJumpPress() onJumpRelease() onMove() onMoveLeftRight() onMoveUpDown() onPickUpPress()onPickUpRelease()onPunched()onPunchPress()onPunchRelease()onRun()setBombCount()setLandMineCount()setScoreText()shatter()

<构造>

bs.Spaz(self,color =(1,1,1),highlight =(0.5,0.5,0.5),character =’Spaz’,sourcePlayer = None,startInvincible = True,canAcceptPowerups = True,powerupsExpire = False)

创建一个新的spaz与所请求的颜色,字符等

addDroppedBombCallback()

addDroppedBombCallback(self,call)

当这个Spaz掉落一个炸弹时,添加一个要运行的电话。这个spaz和新投弹的炸弹都是通过的。

诅咒()

诅咒(个体经营)

给这个可怜的spaz一个诅咒; 他会在5秒内爆炸。

curseExplode()

curseExplode(self,sourcePlayer = None)

当诅咒计时器用尽时,会爆发可怜的spaz。

dropBomb()

dropBomb(个体经营)

告诉spaz放下一个炸弹,并返回所产生的炸弹对象。如果spaz没有炸弹或者不能放下炸弹,则返回None。

equipBoxingGloves()

equipBoxingGloves(个体经营)

给这个spaz一些拳击手套。

equipShields()

equipShields(个体经营)

给这个spaz一个很好的能量盾。

存在()

存在(个体经营)

如果演员仍然可见或以某种方式呈现,则返回True。注意,只要他们的尸体存在,一个垂死的人物仍然应该返回True; 这是关于存在,不是“活着”。

如果这返回False,则假定演员可以完全删除而不影响游戏; 当“修剪”演员列表时,通常会使用此呼叫。

如果actor具有’node’attr,则此方法的默认实现将返回’node.exists()’。否则为真。

getDeathPoints()

getDeathPoints(self,how)

获得杀死这个spaz的积分

getFactory()

<class method>

getFactory(CLS)

返回共享的bs.SpazFactory对象,如有必要,创建它。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象

活着()

的IsAlive(个体经营)

方法覆盖; 返回是否“spaz还在踢”。

onBombPress()

onBombPress(个体经营)

被称为“新闻炸弹”在这个spaz; 用于播放器或AI连接。

onBombRelease()

onBombRelease(个体经营)

被称为“释放炸弹”在这个spaz; 用于播放器或AI连接。

onFinalize()

onFinalize(个体经营)

bs.Activity关闭时, 对每个剩余的bs.Actor调用onFinalize。演员可以利用这个机会来清除具有保持bs.Activity潜在的回调或其他参考。

一旦演员完成(参见bs.Actor.isFinalized()),它将不再执行任何游戏对象操纵(创建,修改或删除节点,媒体,计时器等)尝试这样做可能会出现错误。

onFlyPress()

onFlyPress(个体经营)

被称为“新闻飞行”在这个spaz; 用于播放器或AI连接。

onFlyRelease()

onFlyRelease(个体经营)

被称为“释放飞”在这个spaz; 用于播放器或AI连接。

onJumpPress()

onJumpPress(个体经营)

被称为在这个spaz上“按跳” 由玩家或AI连接使用。

onJumpRelease()

onJumpRelease(个体经营)

被称为“释放跳跃”在这个spaz; 由玩家或AI连接使用。

onMove()

onMove(self,x,y)

被称为为这个spaz设置操纵杆数量; 用于播放器或AI连接。

onMoveLeftRight()

onMoveLeftRight(self,value)

被称为在这个spaz上设置左/右操纵杆数量; 用于播放器或AI连接。值将在-32768到32767之间警告:已弃用; 使用onMove代替。

onMoveUpDown()

onMoveUpDown(self,value)

被要求在这个spaz上设置上/下操纵杆数量; 用于播放器或AI连接。值将在-32768到32767之间警告:已弃用; 使用onMove代替。

onPickUpPress()

onPickUpPress(个体经营)

被称为“新闻采访”在这个spaz; 由玩家或AI连接使用。

onPickUpRelease()

onPickUpRelease(个体经营)

被称为“释放接力”在这个spaz; 由玩家或AI连接使用。

onPunched()

onPunched(自我,伤害)

当这个spaz被打了时叫。

onPunchPress()

onPunchPress(个体经营)

被称为“冲压”在这个spaz; 用于播放器或AI连接。

onPunchRelease()

onPunchRelease(个体经营)

被称为“释放拳头”在这个spaz; 用于播放器或AI连接。

onRun()

onRun(self,value)

被称为“新闻运行”在这个spaz; 用于播放器或AI连接。

setBombCount()

setBombCount(self,count)

(没有文档)

setLandMineCount()

setLandMineCount(self,count)

设定这个spaz所携带的地雷数量。

setScoreText()

setScoreText(self,t,color =(1,1,0.4),flash = False)

实用功能可以在我们附近的spaz上显示一个消息; 方便得分更新和事情。

粉碎()

破碎(自我,极端=假)

把可怜的spaz打碎成一点点。


bs.SpazBot

继承自:bs.Spazbs.Actor

类别:博客类

一个真正愚蠢的AI版本的bs.Spaz。将它们添加到bs.BotSet以使用它们。

注意:目前,AI没有真正的导航障碍的能力,所以只能在广泛的地图上使用。

当SpazBot被杀死时,它会向 当前活动传递一个bs.SpazBotDeathMessage

当SpazBot被打破时,它会将bs.SpazBotPunchedMessage提供 给当前的活动。

属性继承:

节点

方法继承:

addDroppedBombCallback() autoRetain() 诅咒() curseExplode() dropBomb() equipBoxingGloves() equipShields() 存在时() getActivity() getDeathPoints() getFactory() 的IsAlive() isFinalized( )onBombPress() onBombRelease() onFlyPress() onFlyRelease() onJumpPress() onJumpRelease() onMove() onMoveLeftRight() onMoveUpDown() onPickUpPress()onPickUpRelease()onPunchPress()onPunchRelease()onRun()setBombCount()setLandMineCount()setScoreText()shatter()

方法定义或覆盖:

<构造>的handleMessage() onFinalize() onPunched()

<构造>

bs.SpazBot(个体经营)

实例化spaz-bot。

的handleMessage()

handleMessage(self,m)

一般信息处理; 可以传递任何消息对象

onFinalize()

onFinalize(个体经营)

bs.Activity关闭时, 对每个剩余的bs.Actor调用onFinalize。演员可以利用这个机会来清除具有保持bs.Activity潜在的回调或其他参考。

一旦演员完成(参见bs.Actor.isFinalized()),它将不再执行任何游戏对象操纵(创建,修改或删除节点,媒体,计时器等)尝试这样做可能会出现错误。

onPunched()

onPunched(自我,伤害)

方法覆盖; 发送一个bs.SpazBotPunchedMessage到当前活动。


bs.SpazBotDeathMessage

<顶级类>

类别:消息类

一个bs.SpazBot已经死了。

属性:

badGuy怎么killerPlayer

坏人

bs.SpazBot是被打死。

怎么样

特定类型的死亡。

killerPlayer

下载BS.Player杀死它(或无)。

方法:

<构造>

bs.SpazBotDeathMessage(self,badGuy,killerPlayer,how)

用给定的值实例化。


bs.SpazBotPunchedMessage

<顶级类>

类别:消息类

一个bs.SpazBot被打了。

属性:

badGuy损坏

坏人

bs.SpazBot是得到了打孔。

损伤

bs.SpazBot造成多少伤害。

方法:

<构造>

bs.SpazBotPunchedMessage(self,badGuy,damage)

实例化具有给定值的消息。


bs.SpazFactory

<顶级类>

类别:游戏流程类

包装bs.Spaz实例使用的媒体和其他资源。通常,这些之一是每个bs.Activity创建的,并在所有spaz实例之间共享。使用bs.Spaz.getFactory()返回当前活动的共享工厂。

属性:

blockSoundcurseMaterialimpactSoundsHardimpactSoundsHarderimpactSoundsMediumpickupMaterialpunchMaterialpunchSoundpunchSoundsStrongpunchSoundStrongerrollerMaterialshatterSoundsinglePlayerDeathSoundspazMaterialsplatterSoundswishSound

blockSound

一个bs.Sound攻击时是无敌的封锁。

curseMaterial

a bs.Material应用于被诅咒的bs.Spaz,触发爆炸。

impactSoundsHard

一个bs.Sounds的元组,当一个bs.Spaz打得很难的东西。

impactSoundsHarder

bs.Spaz的一个元组,当一个bs.Spaz真的很难击中一些东西。

impactSoundsMedium

一个bs.Sounds的元组,当一个bs.Spaz有点难点。

pickupMaterial

bs.Material施加到的“抓取器”体bs.Spaz

punchMaterial

一种适用于bs.Spaz的“拳头”的材料

punchSound

一个标准打孔bs.Sound

punchSoundsStrong

更强的探测冲的元组bs.Sounds

punchSoundStronger

一个真的很强大的声音打破bs.Sound

rollerMaterial

bs.Material施加到一个不可见的滚球体bs.Spaz用来运动。

shatterSound

一个bs.Sound当一个冻结的bs.Spaz粉碎。

singlePlayerDeathSound

在“opan”spaz死亡,如合作游戏中发挥的声音。

spazMaterial

一种适用于bs.Spaz的所有部分的材料

splatterSound

一个bs.Sound当一个bs.Spaz通过诅咒爆发

swishSound

一拳打swish bs.Sound

方法:

<构造>

bs.SpazFactory(个体经营)

实例化工厂对象。


bs.StandMessage

<顶级类>

类别:消息类

告诉一个物体将自己定位在给定的位置上直立。当将玩家传送到家庭基地等时使用

属性:

角度位置

角度

面对角度(以度为单位)

位置

在哪里站立

方法:

<构造>

bs.StandMessage(self,position =(0,0,0),angle = 0)

用给定的位置和角度实例化。


bs.Team

<顶级类>

类别:游戏流程类

一个或多个bs.Players的团队。注意,玩家*总是*有一个团队; 在某些情况下,如免费的所有bs.Sessions,团队由只有一个bs.Player组成。

属性:

colorgameDatanameplayerssessionData

颜色

球队的颜色。

GAMEDATA

用于当前bs.Activity 用于存储与该团队相关的数据的dict 。每个新的bs.Activity将被清除。

名称

球队的名字。

玩家

bs.Players在团队中的名单。

sessionData

用于存储与该团队相关联的数据的当前bs.Session所使用的dict 。与游戏数据不同,这在会话期间持续存在。

方法:

<构造>庆祝() 的getID()

<构造>

bs.Team(self,teamID = 0,name =”,color =(1,1,1))

实例化一个团队 在大多数情况下,团队由bs.Session自动提供给您,所以不要求这样做。

庆祝()

庆祝(自我,持续时间= 10000)

告诉球队的所有球员庆祝

的getID()

的getID(个体经营)

返回数字组ID。


bs.TeamBaseSession

继承自:bs.Session

类别:游戏流程类

bs.TeamsSessionbs.FreeForAllSession的常用基类。自由模式基本上只是团队模式,每个bs.Player有自己的bs.Team,所以在功能上有很多重叠。

属性继承:

球员球队

方法继承:

end()getActivity()getCustomMenuEntries()handleMessage()onPlayerLeave()onTeamLeave()setActivity()

方法定义或覆盖:

<构造>announceGameResults() getGameNumber() getMaxPlayers() getNextGameDescription() onActivityEnd() onPlayerRequest() onTeamJoin()

<构造>

bs.TeamBaseSession(个体经营)

设置播放列表并启动bs.Activity接受加入者。

announceGameResults()

announceGameResults(self,activity,results,delay,announceWinningTeam = True)

在游戏结束时显示游戏结果(在转换到乐谱屏幕之前)。这将包括一个缩放文本“蓝色WINS”或什么,以及可能的音频公告。

getGameNumber()

getGameNumber(个体经营)

返回系列中当前正在播放的游戏。

getMaxPlayers()

getMaxPlayers(个体经营)

返回的最大数量bs.Players允许参加比赛一次。

getNextGameDescription()

getNextGameDescription(个体经营)

返回甲板上下一场比赛的描述

onActivityEnd()

onActivityEnd(self,activity,results)

当当前bs.Activity结束时调用。会话应该查看结果并开始另一个活动。

onPlayerRequest()

onPlayerRequest(self,player)

当一个新的bs.Player想加入时调用; 应该返回True或False来接受/拒绝。

onTeamJoin()

onTeamJoin(自我,团队)

当新的bs.Team加入会话时调用。


bs.TeamGameActivity

继承自:bs.GameActivitybs.Activity

类别:游戏流程类

团队基础课和免费模式游戏。(Free-for-All本质上只是一个特殊情况,每个 bs.Player都有自己的bs.Team

属性继承:

球员设置球队

方法继承:

cameraFlash() continueOrEndGame() createConfigUI() 最后阶段() filterGameName() getConfigDescriptionLocalized() getConfigDisplayString() getDescription() getDescriptionDisplayString() getDisplayString() getInstanceDescription() getInstanceDisplayString() getInstanceNameLocalized( )getInstanceScoreBoardDescription()getInstanceScoreBoardDisplayString()getInstanceScoreBoardNameLocalized()getMap()getName()getResolvedScoreInfo()getScoreInfo()getSession()getSettings()getSupportedMaps()getTeamDisplayString()handleMessage()hasBegun()hasEnded()hasTransitionedIn()isFinalized()isTransitioningOut()isWaitingForContinue )onContinue() onFinalize() onPlayerJoin() onPlayerLeave() onTeamJoin() onTeamLeave() onTransitionOut() projectFlagStand()respawnPlayer()setupStandardPowerupDrops()setupStandardTimeLimit()showInfo()showScoreBoardInfo()showZoomMessage()spawnPlayer()spawnPlayerIfExists()

方法定义或覆盖:

<构造>结束() onBegin() onTransitionIn() spawnPlayerSpaz() supportsSessionType()

<构造>

bs.TeamGameActivity(self,settings = {})

在当前的bs.Session中创建一个活动。直到bs.Session.setActivity()被调用才会实际运行。’设置’应该是活动特定的键/值对的指令。

活动应尽可能多地在其构造函数中加载他们的媒体/ etc,但是在它们被转换之前实际上不应该使用它们。

结束()

end(self,results = None,announceWinningTeam = True,announceDelay = 100,force = False)

方法覆盖; 宣布单打冠军,除非“宣布联盟”是假的。(对于没有一个最重要的获胜者的游戏来说很有用)。

onBegin()

onBegin(个体经营)

在以前的bs.Activity已经完成转换之后被调用。在这一点上,活动的初始球员和球队都被填满,它应该开始其实际的游戏逻辑。

onTransitionIn()

onTransitionIn(self,music = None)

方法覆盖; 可选地可以传递一个“音乐”字符串,这是在游戏过程中播放的建议类型的音乐。请注意,在某些情况下,音乐可能会被地图或其他因素所覆盖,这就是为什么您应该将其传递到这里,而不是简单地播放它。

spawnPlayerSpaz()

spawnPlayerSpaz(self,player,position = None,angle = None)

方法覆盖; 产卵和电线了一个标准bs.PlayerSpaz用于下载BS.Player

如果未提供位置或角度,则将根据bs.Player及其bs.Team选择默认值。

supportsSessionType()

<class method>

supportsSessionType(cls,sessionType)

类方法覆盖; 为bs.TeamsSessionsbs.FreeForAllSessions返回True ; 否则的话。


bs.TeamGameResults

<顶级类>

类别:游戏流程类

完成bs.TeamGameActivity的结果。完成后,游戏应该填写其中一个,并将其传递到其bs.Activity.end()调用。

方法:

<constructor>setTeamScore()

<构造>

bs.TeamGameResults(个体经营)

实例化一个结果实例。

setTeamScore()

setTeamScore(自我,团队,成绩)

设定给定bs.Team的分数。这可以是数字或无。(见构造函数中的noneIsWinner arg)


bs.TeamsSession

继承自:bs.TeamBaseSessionbs.Session

类别:游戏流程类

bs.Session类型为团队模式游戏。

属性继承:

球员球队

方法继承:

onGameResults ()end()getActivity()getCustomMenuEntries()getGameNumber()getMaxPlayers()getNextGameDescription()handleMessage()onActivityEnd()onPlayerLeave()onPlayerRequest()onTeamJoin()onTeamLeave )setActivity()

方法定义或覆盖:

<构造>

bs.TeamsSession(个体经营)

设置播放列表并启动bs.Activity接受加入者。


bs.Texture

<顶级类>

类别:媒体类

对纹理的引用。使用bs.getTexture()来实例化一个。


bs.ThawMessage

<顶级类>

类别:消息类

告诉一个被bs.FrozenMessage冻结的物体解冻。


bs.Timer

<顶级类>

类别:游戏流程类

计时器用于在稍后的时间点运行代码。

bs.Timer(time,call,repeat = False,timeType =’game’) – > new bs.Timer

time:相对于定时器创建时间的时间长度(以毫秒为单位)。(所以1000意味着将来要离开1秒)。

timeType:可以是“游戏”,“净”或“真实”。如果“游戏”,定时器将基于游戏时间,这可以以各种速度暂停或运行。(在史诗般的模式,游戏时间进步较慢)。如果“真实”,定时器将基于实际时钟时间。实时定时器只能在UI上下文中使用(用于界面元素等)。如果“net”,定时器将基于网络时间; 这就像实时一样,无论游戏速度如何,它都以恒定的速度传递,但它可能会受到像瞬时网络中断或游戏由于重负载而减慢的事情的影响。

请注意,定时器只会在bs.Timer对象保持活动时触发,因此请确保在某处保留对它的引用。


bs.TNTSpawner

<顶级类>

类别:游戏流程类

每时每刻在空间中再生一次TNT。

方法:

<构造>

bs.TNTSpawner(self,position,respawnTime = 30000)

实例化一个给定的位置和respawnTime(以毫秒为单位)。


bs.ToughGuyBot

继承自:bs.SpazBotbs.Spazbs.Actor

类别:博客类

一个男子气概的机器人,走路和打嗝。

属性继承:

节点

方法:

<从bs.SpazBot > 继承的所有方法


bs.ToughGuyBotLame

继承自:bs.ToughGuyBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个较不激进的黄色版本的bs.ToughGuyBot

属性继承:

节点

方法:

<从bs.ToughGuyBot > 继承的所有方法


bs.ToughGuyBotPro

继承自:bs.ToughGuyBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

一个更积极的红色版本的bs.ToughGuyBot

属性继承:

节点

方法:

<从bs.ToughGuyBot > 继承的所有方法


bs.ToughGuyBotProShielded

继承自:bs.ToughGuyBotProbs.ToughGuyBotbs.SpazBotbs.Spazbs.Actor

类别:博客类

bs.ToughGuyBot的一个更积极的版本 ,从盾牌开始。

属性继承:

节点

方法:

<从bs.ToughGuyBotPro > 继承的所有方法


bs.Vector

<顶级类>

类别:一般实用类

3d矢量。

方法:

<构造>角(°) 交叉() 长度() 正常() X() Y() Z()

<构造>

bs.Vector(self,x = 0.0,y = 0.0,z = 0.0)

用给定的x,y和z值实例化。

角度()

角度(自我,其他)

返回此与另一个向量之间的角度。

交叉()

交叉(自我,其他)

返回此与另一个向量之间的交叉产品。

长度()

长度(个体)

返回此矢量的长度。

正常()

正常(个体经营)

返回此矢量的正常。

X()

X(自身)

返回此Vector的x组件

Y()

Y(个体经营)

返回此矢量的y分量

Z()

Z(个体经营)

返回此矢量的z分量


bs.WeakCall

<顶级类>

类别:一般实用类

将可调用和参数包装到单个可调用对象中。当传递一个绑定方法作为可调用,它的实例部分是弱引用的,这意味着底层实例可以自由地死亡,如果所有其他引用它消失。如果发生这种情况,调用WeakCall就是一个无效的。

认为这是一个方便的方法来告诉对象在某些时候做某事,如果它仍然存在。

#示例A:此代码将创建一个FooClass实例,并在
5秒钟后
调用其#bar ()方法; 即使#我们用None覆盖变量,因为
我们作为定时器回调(foo.bar)传递的绑定方法强引用它,它将保持活着
foo = FooClass()
bs.gameTimer(length = 1000,call = foo.bar)
foo =无
#示例B:此代码将*不*保持我们的对象活着; 它会死
#当我们与无覆盖它和它的酒吧()方法将不会被调用
foo = FooClass()
bs.gameTimer(length = 1000,call = bs.WeakCall(foo.bar))
foo =无

注意:您提供给WeakCall()构造函数的其他参数和关键字将作为常规强引用存储; 如果需要,您需要手动将它们包装在弱电荷中。

方法:

<构造>

bs.WeakCall(self,* args,** keywds)

实例化弱电 传递一个可调用作为第一个参数,后跟任意数量的参数或关键字。

示例:使用某些位置和关键字args包装方法调用: 
myCallable = bs.WeakCall(myObj.doStuff,argVal,namedArg = anotherVal)
#现在我们有一个单一的可调用来运行这个整个混乱.. 
#这与调用myObj.doStuff(argVal,namedArg = anotherVal)
#(提供的myObj仍然存在;这样将不会执行任何操作) 
相同myCallable()

bs.Widget

<顶级类>

类别:用户界面类

代表所有UI元素的类; 按钮,窗口等。目前,bs.buttonWidget()等函数必须用于实例化或编辑(希望很快改进)。

方法:

activate()delete()exists()getChildren()getScreenSpaceCenter()getSelectedChild()getWidgetType()

启用()

activate() – >无

激活一个小部件; 与点击一样。

删除()

delete(ignoreMissing = True) – >无

删除小部件。如果ignoreMissing为True,则忽略已删除的小部件; 否则抛出异常。

存在()

exists() – > bool

返回窗口小部件是否仍然存在。大多数功能将在不安全的小部件上失败。

的getChildren()

getChildren() – > bs.Widgets的列表

返回此小部件的任何子窗口小部件。

getScreenSpaceCenter()

getScreenSpaceCenter() – > 2个浮点数的元组

返回窗口小部件中心相对于屏幕中心的坐标。这对于放置弹出窗口和其他特殊情况非常有用。

getSelectedChild()

getSelectedChild() – > bs.Widget

返回所选的子窗口小部件,如果没有选择则返回None。

getWidgetType()

getWidgetType() – > string

返回窗口小部件的内部类型作为字符串。请注意,这与Python bs.Widget类型不同,所有窗口小部件都相同。


bs.animate()

animate(node,attr,keys,loop = False,offset = 0,driver =’gameTime’)

类别:游戏流程函数

以提供的值和时间作为输入创建animCurve节点,将其连接到提供的属性,并将其设置为与目标相关联。键值作为时间:值字典对提供。时间值相对于当前时间。返回animCurve节点。


bs.animateArray()

animateArray(node,attr,size,keys,loop = False,offset = 0,driver =’gameTime’)

类别:游戏流程函数

像bsUtils.animate(),但是对数组属性进行操作。


bs.applySettings()

applySettings() – > None

类别:通用功能

应用当前图形/声音/等设置。这些设置可以在bs.getConfig()返回的dict中找到,并存储在运行之间。修改它们,然后调用此功能使更改生效。

#example -  toggle全屏模式:bs.getConfig()[“fullscreen”] = not bs.getConfig()[“fullscreen”]
 bs.applySettings()

bs.buttonWidget()

buttonWidget(edit = 0,parent = None,size = None,position = None,onActivateCall = None,label = None,color = None,texture = None,textScale = None,enableSound = True,modelTransparent = None,modelOpaque = transitionDelay = None,onSelectCall = None,extraTouchBorderScale = None,buttonType = None,touchOnly = None,showBufferTop = None,icon = None,iconScale = None,iconTint = None,iconColor = None,autoSelect = None,repeat = None,maskTexture =无,tintTexture =无,tintColor =无,textFlatness =无,textResScale =无,启用=无) – > bs.Widget

类别:用户界面功能

返回一个新的按钮小部件,或编辑一个现有的,如果“编辑”不是无。未设置为无的参数将应用于窗口小部件。


bs.callInGameThread()

callInGameThread(call) – > None

类别:通用功能

用于定制python线程; 发送一个可回调的游戏线程在那里执行。呼叫始终在UI上下文中运行。如果要从游戏线程将呼叫推送到事件循环中,请使用bs.pushCall(),它会自动为您保存/恢复当前上下文。


bs.checkBoxWidget()

checkBoxWidget(parent = None,size = None,position = None,value = None,position = None,value = None,clickSelect = None,onActivateCall = None,onValueChangeCall = None,onSelectCall = None,isRadioButton = False,scale = None,maxWidth = None,autoSelect = color = None) – > bs.Widget

类别:用户界面功能

返回一个新的复选框窗口小部件,如果“编辑”不是无,则编辑现有的窗口小部件。未设置为无的参数将应用于窗口小部件。


bs.columnWidget()

columnWidget(parent = None,size = None,position = None,singleDepth = None,printListExitInstructions = None,leftBorder = None) – > bs.Widget

类别:用户界面功能

返回一个新的列窗口小部件,如果“编辑”不为无,则编辑现有的窗口小部件。未设置为无的参数将应用于窗口小部件。


bs.containerWidget()

containerWidget(parent = None,size = None,position = None,selectedChild = None,transition = None,cancelButton = None,startButton = None,rootSelectable = None,onActivateCall = None,claimLeftRight = None,claimsTab = None,selectionLoops = selectionLoopToParent = None,scale = None,type = None,onOutsideClickCall = None,singleDepth = None,visibleChild = None,stackOffset = None,color = None,onCancelCall = None,printListExitInstructions = None,clickActivate = None,alwaysHighlight =无,scaleOriginStackOffset =无,toolbarVisiblity =无) – > bs.Widget

类别:用户界面功能

返回一个新的容器小部件,如果编辑不是None,则编辑一个现有的小部件。未设置为无的参数将应用于窗口小部件。


bs.emitBGDynamics()

emitBGDynamics(position,velocity = None,count = None) – >无

类别:游戏流程函数

将粒子,烟雾等发射到BG动力层(在后台运行的次级动力学线程,只是看起来很漂亮)。请注意,发射的实际数量可能因图形设置或其他因素而异。


bs.gameTimer()

gameTimer(length,call,repeat = False) – > None

类别:游戏流程函数

添加游戏时间计时器动作。当设定的游戏时间通过时,提供的呼叫将被触发。如果您想要一个在创建后可以取消或修改的计时器,请参阅bs.Timer类。

#示例:在10秒钟之后杀死节点bob通过:
bs.gameTimer(10000,call = bob.delete)

bs.getActivity()

getActivity(exceptionOnNone = True) – > bs.Activity

类别:游戏流程函数

返回当前的bs.Activity实例。请注意,这是基于上下文; 因此在Activity’foo’中生成的定时器中运行的代码将正确地返回’foo’,即使另一个Activity已经被创建或正在转换。如果没有当前活动,则会引发异常,或者如果exceptionOnNone为False,没有返回。


bs.getCollideModel()

getCollideModel(name) – > bs.CollideModel

类别:媒体功能

返回冲突模型提供的规格。碰撞模型用于诸如地形的物理学计算。

请注意,即使媒体尚未加载,此函数也会立即返回。为了避免陷阱,请在使用媒体对象之前实例化媒体对象,以便在需要时在后台加载它们。


bs.getCollisionInfo()

getCollisionInfo(名称或名称的元组) – >根据请求的值而变化

类别:游戏流程函数

返回碰撞值或元数据元组,如位置,深度,所涉及的节点等。只有在响应冲突触发的回调或消息时才调用


bs.getConfig()

getConfig()

类别:通用功能

返回一个表示BombSquad的持久配置数据的dict。要小心,只能把简单的值放在这里,可以传递给json转储/加载。当您调用bs.writeConfig()时,此数据将提交到磁盘/云/ etc。


bs.getEnvironment()

getEnvironment() – >字典

类别:通用功能

返回一个包含有关操作环境的常规信息的dict,如版本,平台等。成员如下:

‘version’ – 游戏版本字符串; 像“1.3.24”一样。

‘buildNumber’ – 游戏的整数编号。(类似13954)

‘configFilePath’ – 游戏的配置文件存储在磁盘上。

‘userScriptsDirectory’ – 用户可以在其中放置python脚本让游戏看到它们

‘systemScriptsDirectory’ – 游戏正在读取其内置的python脚本

“平台” – 建立的平台; 目前这可以是“mac”,“windows”,“linux”,“android”或“ios”。

“子平台” – 具体子平台; 对于这个“android”平台,这可能是’ouya’,’amazon’或’google’。

‘debugBuild’ – 游戏是否以调试模式编译。

‘testBuild’ – 游戏是否是测试版本(额外的错误测试,但不像调试版本那么慢)。

‘interfaceType’ – 游戏正在运行的通用接口类型; 可以是’phone’,’tabletSmall’,’tabletLarge’或’desktop’。

‘locale’ – 游戏检测到的国家/语言代码(像“en_US”)。

‘userAgentString’ – 一个包含有关OS /设备/ etc的各种信息的字符串。


bs.getGameTime()

getGameTime() – > int

类别:游戏流程函数

返回当前游戏时间(以毫秒为单位)。


bs.getLanguage()

使用getLanguage(returnNoneForDefault =假)

类别:通用功能

返回游戏当前使用的语言。这可能与或不等于操作系统使用的语言。


bs.getMapsSupportingPlayType()

getMapsSupportingPlayType(playType)

类别:媒体功能

返回支持指定播放类型(字符串)的bs.Map类型的列表。支持给定播放类型的地图必须提供一组特定的功能,或借助某种风格的播放。

播放类型:

‘近战’ – 一般战斗地图 – 有2+“产卵”,1 +’powerupSpawn’pts

‘teamFlag’ – 对于CTF等 – 具有2+“生成”,2+标记和1+“powerupSpawn”

‘keepAway’ – 有2+’spawn’pts,1+’flagDefault’pts和1+’powerupSpawn’pts

‘征服’ – 有2+’旗’,2+’spawnByFlag’和1+’powerupSpawn’pts

‘kingOfTheHill’ – 有2+“产卵”,1+’flagDefault’pts和1+’powerupSpawn’pts

‘曲棍球’ – 有2”””’2+”””,”flagDefault’pts,1+’powerupSpawn’pts

‘足球’ – 有2个’目标’,2+’生成’,1+’flagDefault’pts,1+’powerupSpawn’pts

‘race’ – 有2+’racePoint’点


bs.getModel()

getModel(name) – > bs.Model

类别:媒体功能

返回符合规定的型号。

请注意,即使媒体尚未加载,此函数也会立即返回。为了避免陷阱,请在使用媒体对象之前实例化媒体对象,以便在需要时在后台加载它们。


bs.getNodes()

getNodes() – > bs.Node对象列表

类别:游戏流程函数

返回所有现有节点


bs.getNormalizedColor()

getNormalizedColor(颜色)

类别:通用功能

缩放颜色,最大值为1; 用于着色灯。


bs.getRealTime()

getRealTime() – > int

类别:通用功能

以毫秒为单位返回当前实时。请注意,这个时间值在应用程序是背景的时候不会改变,或者系统时间的变化,所以不应该大量跳跃。


bs.getSafeColor()

getSafeColor(color,targetIntensity = 0.6) – >元组

类别:通用功能

给定长度为3或4的颜色元组,返回一个安全显示为文本的颜色。这会稍微变黑黑色等


bs.getSession()

getSession(exceptionOnNone = True) – > bs.Session

类别:游戏流程函数

返回当前的bs.Session实例。请注意,这是基于上下文; 因此,在UI上下文中运行的代码即使游戏会话也存在,也返回UI上下文等。如果没有当前Session,则会引发异常,或者如果exceptionOnNone为False,则返回None。


bs.getSharedObject()

getSharedObject(名称)

类别:游戏流程函数

返回当前活动的预定义节点/材质/纹理/ etc,如有必要,创建它。可用值:

‘globals’:返回’ globals’bs.Node,包含各种全局控件和值。

“objectMaterial”:一个bs.Material应该被应用到任何小的,正常的物理对象,诸如炸弹,盒子,播放器等其它材料经常检查这种材料的存在,作为执行某些动作的前提条件(如禁用初始重叠对象之间的冲突)

playerMaterial ‘:一种适用于玩家部件的材料。一般来说,在达到目标时与得分过程相关的材料等将会寻找在材料上存在的东西。

“拾取材料”:一种物质 ; 用于拾取物品的碰撞形状将会应用此材料。为了防止拾取物体,您可以添加禁止与包含此物质的物品进行碰撞的物料。

“基础材料”:任何可以“走”的东西都应该有这种材料应用; 一般只是地形和什么。用这种材料触摸某物时,一个人物就会竖立起来,所以不应该用于道具等。

“attackMaterial”:一个bs.Material施加到爆炸的形状,穿孔形状等不想要的对象才能收到脉冲/等消息可以禁用对这种材料碰撞。

“deathMaterial”:一个bs.Material发送一个bs.DieMessage()到任何接触它; 方便地在悬崖下方的地形等

“regionMaterial”:一个bs.Material用于非物理碰撞形状(区域); 通常可以使用这种材料来进行冲突,即使当最初重叠时,它不是物理的。

“railingMaterial”:一个bs.Material具有非常低的摩擦/刚性/等等,可以被施加到不可见“栏杆”的轻轻脱落悬崖保持字符是有用的。


bs.getSound()

getSound(name) – > bs.Sound

类别:媒体功能

返回符合规定的声音。

请注意,即使媒体尚未加载,此函数也会立即返回。为了避免陷阱,请在使用媒体对象之前实例化媒体对象,以便在需要时在后台加载它们。


bs.getSpecialChar()

getSpecialChar(name) – > string

类别:通用功能

给定一个名字,返回一个特殊的字符作为一个utf-8字符串片段,可以包含在任何BombSquad字符串中。

请注意,这些使用私有使用的unicode字符块(U + E000-U + F8FF)并且特定于BombSquad; 在其他地方出口或呈现它们将是无意义的。

可用值:

‘downArrow’,’upArrow’,’leftArrow’,’rightArrow’:方向箭头。

‘topButton’,’leftButton’,’rightButton’,’bottomButton’:通用的gamepad按钮图标。

‘ouyaButtonO’,’ouyaButtonU’,’ouyaButtonY’,’ouyaButtonA’:ouya gamepad按钮图标。

“rewindButton”,“playPauseButton”,“fastForwardButton”,“dPadCenterButton”:FireTV遥控器按钮。


bs.getTexture()

getTexture(name) – > bs.Texture

类别:媒体功能

返回与提供的规格相匹配的纹理。

请注意,即使媒体尚未加载,此函数也会立即返回。为了避免陷阱,请在使用媒体对象之前实例化媒体对象,以便在需要时在后台加载它们。


bs.getTimeString()

getTimeString(t,centi = True)

类别:通用功能

给定一个以毫秒为单位的值,返回一个Lstr(小时if> 0):minutes:seconds:厘秒。警告:这个Lstr值有点大,所以不要使用它来重复更新定时器/ etc中的节点值。为此,您应该使用timeDisplay节点和属性连接。


bs.getUIBounds()

getUIBounds() – >元组

类别:通用功能

返回一个4个值的元组:(xMin,xMax,yMin,yMax),表示可以插入根级别bs.ContainerWidget的stackOffset值的值的范围,同时保证其中心保留在屏幕上。


bs.hScrollWidget()

hScrollWidget(parent = None,size = None,position = None,captureArrows = False,onSelectCall = None,centerSmallContent = None,color = None,highlight = None borderOpacity = None) – > bs.Widget

类别:用户界面功能

返回一个新的水平滚动窗口小部件的名称,或者如果“编辑”不是无,则编辑现有的窗口小部件。未设置为无的参数将应用于窗口小部件。


bs.imageWidget()

imageWidget(edit = None,parent = None,size = None,position = None,color = None,texture = None,model = None,modelTransparent = None,modelOpaque = None,hasAlphaChannel = True,tintTexture = None,tintColor = transitionDelay = None,drawController = None,tiltScale = None,maskTexture = None,radialAmount = None) – > bs.Widget

类别:用户界面功能

返回一个新的图像小部件,如果“编辑”不是无,则编辑现有的小部件。未设置为无的参数将应用于窗口小部件。


bs.isBrowserLikelyAvailable()

isBrowserLikelyAvailable()

类别:通用功能

返回Web浏览器是否可能在当前设备上可用。如果这返回False,您可能希望避免使用任何冗长的地址调用bs.showURL()。(如果无法启动浏览器,bs.showURL()将在窗口中显示一个字符串的地址,但这只适用于简单的URL。)


bs.isPointInBox()

isPointInBox(p,b)

类别:通用功能

返回给定点是否在给定的框内。用于标准定义框(位置|旋转|刻度)。


bs.netTimer()

netTimer(length,call,repeat = False) – > None

类别:游戏流程函数

添加网络时间计时器动作。当设定的“net”时间已经过去时(以毫秒为单位),该定时器将被触发。像实时一样,网络时间以不断的速度前进,无论游戏速度如何,但它可能会受到网络中断或游戏由于重负载而减慢的事情的影响。如果您需要在创建后可以取消或修改的定时器,请参阅bs.Timer类。


bs.newActivity()

newActivity(activityType) – > bs.Activity

类别:通用功能

给定一个类型对象的实例化bs.Activity。活动需要特殊设置,因此无法直接实例化; 你必须经过这个功能。


bs.newNode()

newNode(type,owner = None,attrs = None,name = None,delegate = None) – > bs.Node

类别:游戏流程函数

将给定类型的节点添加到游戏中。如果为“属性”提供dict,则将根据它们设置节点的属性。

如果提供的话,’name’将与节点一起纯粹用于调试目的。如果没有提供名称,则会生成一个自动的名称,例如’terrain@foo.py:30’。

如果提供了“委托”,则发送到节点的python消息将转到该对象的handleMessage()方法。请注意,代理存储为weak-ref,因此节点本身不会保留对象。

如果提供了“所有者”,那么当该对象死亡时,该节点将被自动杀死。“所有者”可以是另一个节点或者一个bs.Actor


bs.openURL()

openURL(address,* args,** keywds)

类别:通用功能

在Web浏览器中打开提供的URL,或者如果不可能,在窗口中显示URL字符串。


bs.playMusic()

playMusic(musicType,continuous = False)

类别:游戏流程函数

一个高级功能,可以根据字符串musicType设置或停止当前音乐。

‘musicType’的当前有效值:’Menu’,’Victory’,’CharSelect’,’RunAway’,’Onslaught’,’Keep Away’,’Race’,’Epic Race’,’Scores’,’GrandRomp’ “选择”,“选举”,“前进”,“旗帜”,“生存”,“史诗”,“运动”,“曲棍球”,“足球”,“飞行”,“可怕”,“前进”。

此功能将根据需要处理加载和播放声音媒体,并且还可以在特定平台上支持自定义用户音轨,以便用户可以自己覆盖特定的游戏音乐。

通过无停止音乐。

如果’continuous’为True,则通过的音乐类型与已在播放的音乐类型相同,播放曲目将不会重新启动。


bs.playSound()

playSound(声音,音量= 1,位置=无,hostOnly = False) – >无

类别:游戏流程函数

播放bs.Sound一次。如果没有提供位置,则声音将处于不变的位置。位置应该是大小为3的浮点元组。


bs.printError()

printError(* args,** keywds)

类别:通用功能

打印提供的所有参数以及关于当前上下文的各种信息。


bs.printErrorOnce()

printErrorOnce(* args,** keywds)

类别:通用功能

bs.printError()的一个方便的包装器,只打印每个唯一错误一次(唯一性仅基于传递的参数)


bs.printException()

printException(* args,** keywds)

类别:通用功能

打印提供的所有参数以及关于当前上下文和未完成异常的各种信息。


bs.printNodes()

printNodes() – >无

类别:游戏流程函数

打印有关现有节点的各种信息; 用于调试


bs.pushCall()

pushCall(call) – > None

类别:通用功能

将呼叫推送到在下一个周期中运行的事件循环; 可以方便地从其他回调中消除的呼叫; 等等


bs.quit()

退出(soft = False) – >无

类别:通用功能

退出游戏 在像android这样的系统上,“软”会杀死活动,但是保持进程的运行。


bs.realTimer()

realTimer(长度,调用) – >无

类别:通用功能

添加单次实时计时器动作。当定时的实时数量(以毫秒为单位)时,该定时器将被触发。如果需要重复的定时器,则必须使用 bs.Timer类。请注意,实时计时器只能在UI上下文中创建; 在活动上下文中使用 bs.netTimer()或bs.gameTimer()。

#示例:只有你可以防止炸弹成瘾!
bs.realTimer(3600000,call = bs.Call(_doShowMessageDialog,“你一直玩得太久!”)“)

bs.reloadMedia()

类别:通用功能

reloadMedia() – >无

重新加载所有当前加载的游戏媒体; 对开发/调试有用


bs.rowWidget()

rowWidget(edit = None,parent = None,size = None,position = None,selectable = None) – > bs.Widget

类别:用户界面功能

返回一个新的行窗口小部件,如果“编辑”不是无,则编辑现有窗口小部件。未设置为无的参数将应用于窗口小部件。


bs.screenMessage()

screenMessage(message,color =(1,1,1),top = False,image = None,log = False) – >无

类别:通用功能

以给定的颜色将消息打印到本地客户端的屏幕。

如果’top’为True,则消息将转到顶部消息区域。对于“顶”消息,“图像”可以是与消息一起显示的纹理。如果“log”为True,则该消息也将打印到输出日志


bs.scrollWidget()

scrollWidget(parent = None,size = None,position = None,captureArrows = False,onSelectCall = None,centerSmallContent = None,color = None,highlight = None borderOpacity = None) – > bs.Widget

类别:用户界面功能

返回新的滚动窗口小部件的名称,如果“编辑”不为无,则编辑现有的窗口小部件。未设置为无的参数将应用于窗口小部件。


bs.shakeCamera()

shakeCamera(intensity = 1.0) – >无

类别:游戏流程函数

摇动相机 请注意,某些相机和/或平台(如VR)可能不会显示相机抖动,因此请勿依赖此用户始终可见。


bs.textWidget()

textWidget(edit = None,parent = None,size = None,position = None,vAlign = None,hAlign = None,editable = None,padding = None,onReturnPressCall = None,selectable = None,onActivateCall = None,query = maxChars = None,color = None,clickActivate = None,scale = None,alwaysHighlight = None,drawController = None,description = None,transitionDelay = None,flatness = None,enabled = None,forceInternalEditing = None,alwaysShowCarat = None,maxWidth =无,maxHeight =无,大=无,extraTouchBorderScale =无,resScale =无) – > bs.Widget

类别:用户界面功能

返回一个新的文本小部件,或者如果“编辑”不为无,则编辑现有的小部件。未设置为无的参数将应用于窗口小部件。


bs.uni()

UNI(S)

类别:通用功能

给定一个字符串或unicode对象,返回一个unicode版本


bs.utf8()

UTF8(S)

类别:通用功能

给定一个字符串或unicode对象,返回一个字符串(如果需要,使用utf-8编码)


bs.widget()

widget(edit = None,upWidget = None,downWidget = None,leftWidget = None,rightWidget = None,showBufferTop = None,showBufferBottom = None,showBufferLeft = None,showBufferRight = None,autoSelect = None) – >无

类别:用户界面功能

编辑任何现有小部件的常见功能。这只能用来编辑; 不创建。


bs.writeConfig()

writeConfig(force = False,storeRemote = True)

category:General Utility Functions 将配置提交到disk / cloud / etc

anyShare分享到:

“BombSquad Python API 编写MOD需要的函数翻译”的一个回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注