本文整理汇总了Golang中github.com/vova616/GarageEngine/engine.Arbiter.GameObjectA方法的典型用法代码示例。如果您正苦于以下问题:Golang Arbiter.GameObjectA方法的具体用法?Golang Arbiter.GameObjectA怎么用?Golang Arbiter.GameObjectA使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/vova616/GarageEngine/engine.Arbiter
的用法示例。
在下文中一共展示了Arbiter.GameObjectA方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: OnCollisionEnter
func (pu *PowerUp) OnCollisionEnter(arbiter engine.Arbiter) bool {
if pu.GameObject() != nil && (arbiter.GameObjectA() == Player || arbiter.GameObjectB() == Player) {
PowerUpShip(pu.Type)
pu.GameObject().Destroy()
}
return true
}
示例2: OnCollisionPostSolve
func (s *Enemy) OnCollisionPostSolve(arbiter engine.Arbiter) {
if arbiter.GameObjectB() != nil {
if arbiter.GameObjectB().Tag != "lader" && arbiter.GameObjectA().Tag != "lader" {
count := 0
for _, con := range arbiter.Contacts {
if arbiter.Normal(con).Y < -0.9 {
count++
}
}
if count >= 1 {
if s.GameObject().Sprite.CurrentAnimation() == "enemy_jump" {
s.GameObject().Sprite.SetAnimation("enemy_stand")
}
s.LastFloor = arbiter.GameObjectB()
s.OnGround = true
}
count = 0
for _, con := range arbiter.Contacts {
if math.Abs(float64(arbiter.Normal(con).X)) > 0.9 {
count++
}
}
if count >= 1 {
s.jump = true
}
if arbiter.GameObjectB().Tag == "player" {
if Player.PlComp.Hitable && s.Attack {
Player.PlComp.Hit()
}
if s.hitable && Player.PlComp.Attack {
s.Hit()
}
}
}
}
}
示例3: OnCollisionPostSolve
func (pl *Player) OnCollisionPostSolve(arbiter engine.Arbiter) {
if arbiter.GameObjectB() == nil {
return
}
if arbiter.GameObjectB().Tag != "lader" && arbiter.GameObjectA().Tag != "lader" {
count := 0
for _, con := range arbiter.Contacts {
if arbiter.Normal(con).Y < -0.9 {
count++
}
}
if count >= 1 {
if pl.GameObject().Sprite.CurrentAnimation() == "player_jump" {
pl.GameObject().Sprite.SetAnimation("player_stand")
}
pl.LastFloor = arbiter.GameObjectB()
pl.OnGround = true
}
}
}