1
我試圖製作一個簡單的遊戲,到目前爲止我可以捕獲用戶輸入,但是我無法使視圖正常工作來打印圖像。如果我有一個名爲圖像的資源,我如何分配單個精靈在displayOn上顯示此圖像?我已經嘗試了許多方法,例如在初始化方法我試過:如何訪問實例中的類資源
self image := Classname image
但導致溢出,我被迫關閉的視覺不保存工作。 這樣做的好方法是什麼?
我試圖製作一個簡單的遊戲,到目前爲止我可以捕獲用戶輸入,但是我無法使視圖正常工作來打印圖像。如果我有一個名爲圖像的資源,我如何分配單個精靈在displayOn上顯示此圖像?我已經嘗試了許多方法,例如在初始化方法我試過:如何訪問實例中的類資源
self image := Classname image
但導致溢出,我被迫關閉的視覺不保存工作。 這樣做的好方法是什麼?
您通常直接訪問類方法,而無需將其存儲到實例變量中。例如:
myMethodsWhoNeedsAnImage
| image |
image := self class imageStoredInClassSide.
"now do something with image"
如果需要保存它,當然你不能做,你在你的例子試了一下,但你可以這樣做:
initialize
super initialize.
image := ClassWithImage image.
或
initialize
super initialize.
self image: ClassWithImage image. "This is a setter method"
任何的這些方法應該可行。如果沒有,最有可能你在其他地方有問題,而不是在課堂上訪問。
還有一個問題:asRetainedMedium消息的作用是什麼?我收到一個這個不明白的錯誤。我有我的班級變量資源中的圖片,當問我的圖像我返回CashedImage:(#圖片) –
我從來沒有見過我的生活中的消息:)。也許你可以澄清你使用的是哪個Smalltalk? – EstebanLM
這是一個VisualWorks消息。在VW中,有兩種方法來存儲位圖。圖像使用Smalltalk對象存儲像素顏色和調色板。 Pixmaps使用句柄來處理本地操作系統的圖像對象。通常,Pixmaps顯示速度比圖像快得多。 asRetainedMedium消息是圖片將自己轉換爲Pixmaps的消息。 CachedImage是一個可包含Image和相應Pixmap的對象。如果您嘗試繪製它並且像素圖爲零,則它將在圖像上運行爲「經營中等」,以創建Pixmap並將其緩存在緩存的圖像中。 –