Итак, я пытаюсь создать приложение Scala, использующее Обработка , и моя проблема связана с тем, как я могу использовать некоторые функции обработки, отличные от «основного» класса, где все приложение
Это основной класс , где запускается приложение.
import processing.core.{ PApplet, PConstants }
import attackers._
class main extends PApplet {
override def setup() = {
background(255, 255, 50)
}
override def settings() = {
...
}
override def draw() = {
var start = new Cell(0, wHeight / 2)
val base = new BasicAttacker(start)
...
base.move()
base.display();
}
}
object main extends App {
PApplet.main("tower.main")
}
И здесь я хочу использовать fill и rect функции из Processing:
import tower._
import processing.core.PApplet
class Base(cell: Cell) extends Basic(cell) {
...
var x = cell.x
var y = cell.y
...
def display() {
fill(150, 100, 150)
rect(x, y, 50, 50);
}
}
Появляется ошибка:
java.lang.NullPointerException
at processing.core.PApplet.fill(PApplet.java:14781)
at attackers.BasicAttacker.display(BasicAttacker.scala:27)
at tower.Game.draw(Game.scala:73)
at processing.core.PApplet.handleDraw(PApplet.java:2482)
at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1547)
at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:313)
Функция display()
работает, когда я добавляю ее в * Метод 1021 * в классе main
, но почему-то происходит сбой с NullPointerException , когда я перемещаю его в сам класс.
Любые идеи о том, как я могу использовать функции обработки в других классы, чем класс приложения?