我一直在尝试创建一个用户应用程序来绘制tileset位图,所以有点像这样(多层fg颜色/ alpha,bg颜色/ alpha和字符):
创建位图不是问题,但现在我正处于我想要编辑和修改它的部分。我对位图输出感到满意,但是我注意到一旦我无法再对其进行更改,我已经打印了一个位图
我已经检查了bitmap%,bitmap-dc%和dc%的文档,但如果是故意的话,我找不到任何信息。我错过了中间的一步吗?
更新:我注意到如果我在绘制后将位图复制到另一个位图,那么更改将在新位图中显示,但旧位图不会
以下是示例代码
#lang racket
(require racket/draw)
(define bmp1 (make-bitmap 128 128))
(define bdc1 (new bitmap-dc% [bitmap bmp1]))
(send bdc1 set-pen "yellow" 1 'solid)
(send bdc1 set-brush "black" 'solid)
(send bdc1 draw-rectangle 0 0 128 128)
(send bdc1 draw-rectangle 0 0 64 64)
(send bdc1 draw-line 0 0 128 128)
bmp1
(send bdc1 set-pen "red" 4 'solid)
(send bdc1 draw-line 128 0 0 128)
bmp1
(define bmp2 (make-bitmap 128 128))
(define bdc2 (new bitmap-dc% [bitmap bmp2]))
(define d (send bdc2 draw-bitmap bmp1 0 0))
bmp2
bmp1
答案 0 :(得分:1)
我90%确定您在DrRacket中看到了错误的结果。 我几乎可以肯定这个bug已经修好了。
https://www.cs.utah.edu/plt/snapshots/
我可以谈谈您从上面的链接安装开发版本吗?
有问题的错误: https://github.com/racket/drracket/commit/2d3205571cb4d1d38335c4bac84810e72777c769