2015-07-28 67 views
1

我正在通過編寫SDL應用程序學習球拍,但我不知道如何初始化矩形結構。它在球拍sdl中定義如下:初始化球拍和球拍SDL中的SDL矩形

(define-cstruct _SDL_Rect 
    ([x _int] 
    [y _int] 
    [w _int] 
    [h _int])) 

如何創建矩形的實例?具體而言,我想創建一個矩形通到下面的函數的最後一個參數:

(SDL_BlitSurface hello-world-surface #f screen-surface #f) 

回答

3

首先,如果你是剛剛開始接觸球拍,我會建議使用一些打包庫爲繪圖,例如GUI library's canvasOpenGL library

racket-sdl project,只有3個提交(最後一個是2歲),在我看來只不過是一個可行性測試。

不過,你的問題是有效的,所以讓我們給你一個答案。 (define-cstruct ...)定義了一個C struct本質上作爲一個指針,所以你沒有明顯的手段來改變它的內部。你可以使用函數make_SDL_Rect在C中創建一個小的包裝庫,並使用它,但這不值得冒險。最好使用make-cstruct-type定義SDL_Rect類型,它允許參數轉換。

查看更多的信息在the FFI manual