说我有一些很长的文字
(define EXTREMELY-LONG-TEXT "foo foo ...(like 25 times)... foo")
我需要将它绘制到受x轴但不受y轴约束的背景上。反正是否有限制文本的x方向并默认向下扩展?或者我是否必须定义自己的功能才能完成此任务?
目前,我有一个改变文本长度的文本冒险游戏,我希望能够为游戏定义一个常数x,而不是必须定义一个大的背景,以便将其绘制到诸如
(define BG (empty-scene 500 100))
(overlay/align "center" "top" (text EXTREMELY-LONG-TEXT 16 "black") BG)
你需要自己做,但这应该不难。
#lang racket
(require 2htdp/image)
(define TEXT-SIZE 16)
(define WIDTH 500)
(define limit (exact-floor (* 2.4 (/ WIDTH TEXT-SIZE))))
(define EXTREMELY-LONG-TEXT (string-append* (make-list 25 "foo ")))
(define (fit-string s)
(string-append*
(map list->string
(add-between (sequence->list (in-slice limit (string->list s)))
'(#\newline)))))
(define BG (empty-scene WIDTH 100))
(overlay/align
"center" "top"
(text (fit-string EXTREMELY-LONG-TEXT) TEXT-SIZE "black") BG)
公式2.4 * WIDTH / TEXT-SIZE
可以进一步改进,但它适用于这种情况。