在Greenfoot【java學習】-創建新世界這一節中我們知道如何在世界裏添加一個角色,除了使用系統自帶的角色圖片之外,仍然可以使用我們自己圖片,方法跟添加世界背景一樣,只需要把圖片文件放置到項目的“images”文件夾裏,然後在左側的對話框裏就能看到我們添加的圖片了,這樣直接選擇即可。每個遊戲角色類都有一張相關的圖片作爲其所有對象的默認圖像,而且每個角色對象都可以根據需要改變圖像。

Greenfoot 的基本功能和使用方法之变换角色图像

那麽如何在初始化角色對象的時候變換圖片?

在java 项目中,游戏角色对象的初始化通常都是通过构造方法完成的。然而,有些初始化任务却不能在这里完成,因为在在执行角色对象的构造方法时对象并没有存在于游戏世界中,因此像 getWorld()、getX()和 getY()这样的方法就不能在构造方法中调用。

由此可見,如果想實現一些方式(比如在世界中創建其它對象,或者根據附近的其它對象變換圖片)作爲初始化方法的組成部分,就需要獲取遊戲世界的入口,但是這個入口是不能在構造方法中獲取的。于是需要利用另一個初始化方法,addedToWorld()方法,每個遊戲角色類都從父類繼承了這個方法。

Greenfoot框架会在本actor被添加到对应的world后,立即调用此方法。 本方法可以被重写,用于定制本actor被添加到对应world之后即刻采取的动作行为。默认情况下,该方法什么也不做。因此只需要在游戏角色类中定义一个 addedToWorld()方法,然后在其中编写与任务相關的代码即可,例如:

Greenfoot 的基本功能和使用方法之变换角色图像

這個例子表示的是:將一只恐龍角色放進遊戲世界,當它處于安全的的時候看起來很正常,但是當它不安全的時候就變得很驚恐。爲了實現這種效果,使用了兩張圖片(“dinosaur1-e.png”和“dinosaur1-b.png”)來分別顯示恐龍不同情況下的圖像。

再添加上述代碼後,我們往世界裏添加一個角色試試,看看是什麽樣的。

Greenfoot 的基本功能和使用方法之变换角色图像

在isSafe()方法裏我們只返回了一個Boolean值(true:真,表示安全;false:假,不安全),你可以修改這個值,看看恐龍的變化。