首页 > 解决方案 > Wren 类没有实现字段

问题描述

我正在尝试学习如何使用DomeWren。为此,我开始研究一个简单的 Flappy Bird 克隆。

我遇到的问题是我收到错误消息

Bird does not implement bird_idle

然后它指向我的主类中的第 63 行,如下所示:

class Main {
  resources=(value){ _resources = value }
  bird=(value){ _bird = value }
  construct new() {
    _resources = Resources.new()
    _bird = Bird.new(_resources.birdIdle, _resources.birdFlap, _resources.obstacleTile.width * 2, _resources.obstacleTile.height * 4, 10, 4)
  }
  init() {}
  update() {}
  draw(alpha) {
    Canvas.cls()
    Canvas.draw(_bird.bird_idle, _bird.center.x, _bird.center.y) <-- this is line 63
  }
}

var Game = Main.new()

由于我是 Wren 的新手,所以我不太明白这意味着什么,就像您在下面查看我的鸟类一样,我应该实施bird_idle. 那么我做错了什么?

class Bird {
  bird_idle=(value){ _bird_idle = value } <-- Right?
  bird_flap=(value){ _bird_flap = value }
  center=(value){ _center = value }
  gravity=(value){ _gravity = value }
  force=(value){ _force = value }
  velocity=(value){ _velocity = value }
  velocityLimit=(value){ _velocityLimit = value }
  isGameRunning=(value){ _isGameRunning = value }

  construct new(idle, flap, horizontalPosition, verticalPosition, drag, jumpForce) {
    _bird_idle = idle
    _bird_flap = flap
    _center = Vector.new(horizontalPosition + (idle.width * 0.5), verticalPosition + (idle.height*0.5))
    _gravity = drag
    _force = jumpForce
    _velocityLimit = 1000
    _isGameRunning = true
  }

  jump() {
    _velocity = -_force
  }

  isTouchingCeiling() {
    var birdTop = _center.y - (_bird_idle.height * 0.5)
    if(birdTop < 0) {
      return true
    }
    return false
  }
  
  isTouchingGround() {
    var birdBottom = _center.y + (_bird_idle.height * 0.5)
    if(birdBottom > height) {
      return true
    }
    return false
  }
}

标签: wren

解决方案


推荐阅读