《點燃我,溫暖你》打火機與公主裙 經典台詞整理

《點燃我,溫暖你》——「公主殿下親啟」從嘲諷到暱稱,我就這樣入坑了

碰! x = 16·sin³t    y = −(13cos t − 5cos 2t − 2cos 3t − cos 4t)

Lighter & Princess · 2022 · 36 EP

《點燃我,溫暖你》「公主殿下親啟」
從嘲諷到暱稱,我就這樣入坑了

她想看的煙火是「咻」一下上去、「碰!」很大聲的那種;他能給的浪漫是一顆用程式碼寫出來、會跳的心。這篇拆的是:小說到劇版改了什麼,以及那些隔了二十幾集才對上的台詞。

#打火機與公主裙 #李峋 × 朱韻 #跳動愛心代碼 #原著改編對照

// 三分鐘看完這篇

  • 《點燃我,溫暖你》原名就叫《打火機與公主裙》,改編自 Twentine 同名小說,全劇 36 集,2022 年 11 月 3 日於優酷寵愛劇場首播。
  • 這篇不列名場面數量,走的是兩條線:小說到劇版「改了什麼、為什麼改得好」,以及前後台詞的呼應彩蛋
  • 附上李峋同款跳動愛心——頁面上有一顆現場跑的版本,想看原理和程式碼的可以自己點開。
  • 逐句台詞解析拆成四篇專文,從四階段台詞地圖進入。
// 01

入坑契機:一支剪輯,一個稱呼

會點開這部劇,是因為滑到一支剪輯影片。男女主角在細節裡藏的偏愛太好嗑了——最有意思的是「公主、公主殿下」這個稱呼的轉變。一開始明明是李峋懟朱韻的嘲諷語氣,越往後看,同一句話卻變成他捨不得說重話時唯一會用的暱稱。

台詞沒變,語氣全變了。這種「同一個詞被重新定義」的寫法,是我覺得最會撓人心的地方——它不需要一句「我喜歡你」,就把整段關係的位移演完了。

// 02

這部劇在演什麼?基本資料一次看

《點燃我,溫暖你》講的是編程天才李峋與學霸少女朱韻,從互看不順眼的同學關係,一路走過校園、意外、分離與重逢的成長愛情故事。它不是那種一路甜到底的糖水劇——中段的低谷寫得相當扎實,也因此後段的和解才有重量。

劇名點燃我,溫暖你(原劇名《打火機與公主裙》)
英文名Lighter & Princess
集數36 集
首播2022 年 11 月 3 日 · 優酷寵愛劇場
導演劉俊傑(《王子變青蛙》《何以笙簫默》《杉杉來了》)
編劇周涌、劉紫薇、劉雨暢
主演陳飛宇(李峋)、張婧儀(朱韻)
配角趙志偉、曾可妮、崔雨鑫、錢迪迪、姜梓新
原著Twentine《打火機與公主裙》(《荒草園》+《長明燈》)
台灣觀看當年由 LINE TV 跟播,現已因授權到期下架;完整集數目前看優酷國際版,官方 YouTube 頻道則只有精華片段與花絮(授權常變動,以官方站為準)

資料更新於 2026 年 8 月。串流授權變動頻繁,實際上架狀況請以各平台為準。

順帶一提,原著作者 Twentine 也是《熾道》的作者。如果你喜歡她那種「情緒不解釋、只讓角色去做」的筆法,這部會非常合胃口——原著《打火機與公主裙》分《荒草園》與《長明燈》兩部,追完劇再回頭讀,體感最好。

// 03

為什麼叫「打火機與公主裙」?劇裡藏了一個 L&P

這是我認為全劇最漂亮的一個改編。劇版讓李峋替公司取名叫 L&P,對外給了一個聽起來很商務的英文縮寫解釋——結果朱韻一秒猜穿:那不就是 Lighter and Princess,打火機與公主裙嗎?

原著書名從來沒有被角色說出口,劇版卻讓它從嘴裡講了出來。於是「打火機」與「公主裙」不再只是讀者在封面上看到的兩個名詞,而變成兩人之間確實存在過的信物:一支她修好送他的打火機,一件他送她、說「公主就是要穿裙子」的裙子。

# 兩個信物,一個公司名
lighter  = “她修好、送給他的那支”
princess = “他送她、說公主就該穿的那件”
company  = lighter + ” & “ + princess  # => L&P

而放煙火那段之所以會被反覆重剪,是因為它同時交代了三件事:打火機的用途、她的性格,以及後來每一次「新年快樂」背後真正想說的那句話。她說她想放的是衝一下上天、然後碰地炸開花的那種——這個描述本身就是朱韻:不要小火,要一次到底。

// 04

用程式畫一個愛心:李峋的浪漫是怎麼算出來的

林教授出的作業是「用程式畫一個愛心」。全班都幾行交差,只有李峋寫了落落長的一段——朱韻把他的程式碼複製下來執行,螢幕中央跑出一顆立體、鮮紅、還在撲通撲通跳的心。

這是全劇最著名的一場戲,也是我認為最能說明這個角色的一場:他不會說情話,他只會把「我在想你」翻譯成一段別人看不懂的邏輯。

朱韻心動的那一瞬間

下面這顆,是現場跑的

同樣的數學式,我改寫成瀏覽器版本放在這裡。它沒有預錄影片,是逐幀計算出來的粒子——跟劇裡那顆一樣,會呼吸。

heart_function(t)

即時運算 · 20 幀循環 · 不是影片

想知道它是怎麼算出來的?(含完整程式碼,點開展開)

原理:一條式子,三層擴散

核心只有一條心形參數方程式,高中三角函數的範圍:

x = 16 × sin³t
y = −(13 cos t − 5 cos 2t − 2 cos 3t − cos 4t)

把 t 在 0 到 2π 之間隨機取兩千個值,就得到心形的輪廓。真正讓它「活起來」的是後面三件事:

  1. 邊緣擴散:每個輪廓點往內隨機灑出幾顆,讓邊界毛毛的、不是一條死線。
  2. 內部填充:再灑幾千顆更往中心集中的點,心才有體積。
  3. 逐幀縮放:用一個正弦曲線當作「心跳」的強弱,每一幀讓所有點按離中心的距離做不同幅度的收縮——近的動得少、遠的動得多。這就是那個撲通撲通的來源。

所以它不是動畫檔,是每一幀都在重算。這也是為什麼劇裡朱韻會愣住——她一眼看得懂那段程式碼有多囉唆,也一眼看得懂那個人為什麼要寫得這麼囉唆。

完整 Python 程式碼

import random
from math import sin, cos, pi, log
from tkinter import Tk, Canvas

CANVAS_WIDTH = 640
CANVAS_HEIGHT = 480
CANVAS_CENTER_X = CANVAS_WIDTH / 2
CANVAS_CENTER_Y = CANVAS_HEIGHT / 2
IMAGE_ENLARGE = 11
HEART_COLOR = "#f752b3"


def heart_function(t, shrink_ratio: float = IMAGE_ENLARGE):
    """心形參數方程式:這一條就是整顆心的輪廓"""
    x = 16 * (sin(t) ** 3)
    y = -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))
    x *= shrink_ratio
    y *= shrink_ratio
    x += CANVAS_CENTER_X
    y += CANVAS_CENTER_Y
    return int(x), int(y)


def scatter_inside(x, y, beta=0.15):
    """把點往中心方向隨機推,做出擴散感"""
    ratio_x = -beta * log(random.random())
    ratio_y = -beta * log(random.random())
    dx = ratio_x * (x - CANVAS_CENTER_X)
    dy = ratio_y * (y - CANVAS_CENTER_Y)
    return x - dx, y - dy


def shrink(x, y, ratio):
    force = -1 / (((x - CANVAS_CENTER_X) ** 2 + (y - CANVAS_CENTER_Y) ** 2) ** 0.6)
    dx = ratio * force * (x - CANVAS_CENTER_X)
    dy = ratio * force * (y - CANVAS_CENTER_Y)
    return x - dx, y - dy


def curve(p):
    """心跳的節奏曲線"""
    return 2 * (2 * sin(4 * p)) / (2 * pi)


class Heart:
    def __init__(self, generate_frame=20):
        self._points = set()
        self._edge_diffusion_points = set()
        self._center_diffusion_points = set()
        self.all_points = {}
        self.build(2000)
        self.generate_frame = generate_frame
        for frame in range(generate_frame):
            self.calc(frame)

    def build(self, number):
        for _ in range(number):
            t = random.uniform(0, 2 * pi)
            x, y = heart_function(t)
            self._points.add((x, y))

        for _x, _y in list(self._points):
            for _ in range(3):
                x, y = scatter_inside(_x, _y, 0.05)
                self._edge_diffusion_points.add((x, y))

        point_list = list(self._points)
        for _ in range(4000):
            x, y = random.choice(point_list)
            x, y = scatter_inside(x, y, 0.17)
            self._center_diffusion_points.add((x, y))

    @staticmethod
    def calc_position(x, y, ratio):
        force = 1 / (((x - CANVAS_CENTER_X) ** 2 + (y - CANVAS_CENTER_Y) ** 2) ** 0.520)
        dx = ratio * force * (x - CANVAS_CENTER_X) + random.randint(-1, 1)
        dy = ratio * force * (y - CANVAS_CENTER_Y) + random.randint(-1, 1)
        return x - dx, y - dy

    def calc(self, generate_frame):
        ratio = 10 * curve(generate_frame / 10 * pi)
        halo_radius = int(4 + 6 * (1 + curve(generate_frame / 10 * pi)))
        halo_number = int(3000 + 4000 * abs(curve(generate_frame / 10 * pi) ** 2))
        all_points = []

        heart_halo_point = set()
        for _ in range(halo_number):
            t = random.uniform(0, 2 * pi)
            x, y = heart_function(t, shrink_ratio=11.6)
            x, y = shrink(x, y, halo_radius)
            if (x, y) not in heart_halo_point:
                heart_halo_point.add((x, y))
                x += random.randint(-14, 14)
                y += random.randint(-14, 14)
                all_points.append((x, y, random.choice((1, 2, 2))))

        for x, y in self._points:
            x, y = self.calc_position(x, y, ratio)
            all_points.append((x, y, random.randint(1, 3)))

        for x, y in self._edge_diffusion_points:
            x, y = self.calc_position(x, y, ratio)
            all_points.append((x, y, random.randint(1, 2)))

        for x, y in self._center_diffusion_points:
            x, y = self.calc_position(x, y, ratio)
            all_points.append((x, y, random.randint(1, 2)))

        self.all_points[generate_frame] = all_points

    def render(self, render_canvas, render_frame):
        for x, y, size in self.all_points[render_frame % self.generate_frame]:
            render_canvas.create_rectangle(x, y, x + size, y + size, width=0, fill=HEART_COLOR)


def draw(main, render_canvas, render_heart, render_frame=0):
    render_canvas.delete('all')
    render_heart.render(render_canvas, render_frame)
    main.after(160, draw, main, render_canvas, render_heart, render_frame + 1)


if __name__ == '__main__':
    root = Tk()
    root.title("Heart")
    canvas = Canvas(root, width=CANVAS_WIDTH, height=CANVAS_HEIGHT, bg='black')
    canvas.pack()
    heart = Heart()
    draw(root, canvas, heart)
    root.mainloop()
執行方式:存成 heart.py,用 Python 3 執行即可(tkinter 是標準函式庫,Windows 與 macOS 的官方安裝檔預設就有;部分 Linux 發行版需要另外安裝 python3-tk)。第一次跑會停頓一兩秒,那是在預先算 20 幀。

說明:劇組沒有公開李峋那段程式碼的原始內容,網路上流傳的都是網友依據畫面效果做的復刻版,這份也是。核心的心形參數方程式是公開的數學式,實作寫法則參考了知乎上的原理拆解文章。
// 05

「公主殿下」的語氣三變

如果只能推薦一個觀劇角度,我會推薦這個:盯著「公主」這兩個字,看它一集一集怎麼變。同樣的稱呼,在三個階段裡承載的東西完全不同。

第一變:嘲諷——你被保護得太好了

最初的「公主」是刺。李峋用它形容朱韻的天真、清高與不知世事,語氣裡有距離也有輕視。那個階段他叫她公主,等於在說:你我不是一個世界的人。

第二變:宣示——這位是我請來的公主

這位是我請來的公主

同一個詞,第一次不是往內刺、而是往外擋。他當著所有人的面把她的位置定下來,護短跟炫耀兩種情緒同時成立——這是「公主殿下」正式從嘲諷轉為專屬稱呼的起點。

第三變:暱稱——那是他藏得很好的溫柔

到後段,「公主」變成他的降速鍵。每當語氣要變硬、話要變重,這兩個字就會先出現,把攻擊性接住。

但更迷人的是另一件事:那份他以為藏得很好的寵溺,總會從這兩個字裡不小心流露出來。他明明什麼都有——嘴很壞、脾氣很硬、從不哄人——卻要假裝自己沒有那份溫柔。所以每叫一聲公主,就等於洩漏一次秘密。他自己大概最後都沒發現吧。

而「公主」的定義,劇版讓她親口問了

李峋,你覺得什麼樣的人才能叫做公主?

他給的答案是:清高的眼睛、天真又脆弱的心,再加一點孤注一擲的冒險精神。表面上在下定義,其實整段就是一份逐條對照的告白——他描述的每一項,都是她。

這裡的改編我特別喜歡。原著裡這段是徐黎娜問李峋的,朱韻不在場,讀者是隔著一層聽到答案的。劇版改成朱韻自己問、李峋看著她回答——同樣的字,一個是回答,一個是當面告白。字字不說破,卻又字字說的是她。而且她問完之後那個表情,等於觀眾也跟著對了一次答案。

眼神是藏不住的

這部劇很多時候根本不需要台詞。喜歡一個人的證據不在嘴上,在眼神的追隨——他人在講別的事,視線卻已經先跟過去了。這種偏愛只有鏡頭抓得到,小說寫不出來。

愛一個人,眼神是藏不住的(這段配樂也太好聽)

公主,你想做什麼就去做,我是你的底氣

前面那個叫她公主是為了嘲諷她被保護得太好,到這裡,他成了那個保護。同一個稱呼,從「你不懂世界的險惡」變成「有我在,你不用懂」。

我是你的底氣

這也是我覺得這部劇比一般甜寵高明的地方:它不靠新台詞推進感情,它靠舊台詞被重新定義推進感情。

// 06

小說 vs 劇版:改編到底改了什麼

這部被原著粉稱為「還原度最高」,但真正值得討論的不是還原了多少,而是那些沒有照抄的地方。整理下來,劇版的改動幾乎都遵循同一個邏輯:把小說的內心獨白,外化成看得見、聽得到的東西

橋段原著小說劇版怎麼改
公主的定義是徐黎娜問李峋的,朱韻不在場改成朱韻自己問、李峋看著她答——回答變成當面告白,字字不說破卻字字是她
「我有我的國王」只是朱韻的個性簽名,敘事者交代過去演成一段當眾說出口的宣言,全網最激動的一幕
「因為愛」一段解釋熱忱的長句,講到熱愛行業、熱愛交流濃縮成兩個字。少講很多,說出來的反而更重
公主大人親啟一封未讀郵件改成隨身碟裡特別幫朱韻加了註解的那份檔案。實體物件更合情理,也更難丟掉
炭畫《嶙峋》只被提及,是背景資訊擴寫成兩人的第一次約會(而且「嶙峋」聽起來就是「李峋」)
「你負責擔心,我負責搞定一切」是朱韻在後半部的內心獨白(她負責擔心,他負責解決)提前,並改由李峋親口說出——從她的體會變成他的承諾
合照是李峋演講時的單人照改成兩人合照,放進朱韻錢包裡
「就當是我背叛好了」在旅館場景中的拒絕移到監獄,變成推開她的手段——同一句話,痛感完全不同
書名「打火機與公主裙」從未被角色說出口透過公司名 L&P 被朱韻猜破

含輕微劇透。整理自原著與劇版對照,僅摘錄改動邏輯,不逐句轉錄。

順帶一提,那幅炭畫叫《嶙峋》——嶙峋、李峋,唸起來幾乎一樣。他們的第一次約會,去看的是一幅跟他同名的畫。原著只是提過這幅畫的存在,劇版把它變成場景,等於送了觀眾一個免費的諧音彩蛋。

另外值得一提的是刪減。原著李峋有幾句在今天看來不太舒服的台詞,劇版直接拿掉了;男主的部分行為也做了收斂。這種修改常被說是「削弱角色」,但我覺得反而讓「他不是壞,他只是嘴硬」這個核心站得更穩。

// 想自己對照?

Twentine《打火機與公主裙》原著小說

上面這些改動,讀過原著才看得出來改得多聰明。小說補回大量劇裡沒空交代的內心戲——尤其是朱韻那些沒說出口的部分。

前往選購

*本連結為蝦皮聯盟連結,透過它下單我會獲得一點分潤,不會增加你的售價。

// 07

前後呼應的彩蛋:那些隔了二十集才對上的話

這部劇最值得二刷的理由。第一次看你只會覺得某句話怪怪的,二刷才會發現——它早就在前面埋好了。而且劇本用的是兩種不同的手法。

手法一:他說過的話,被她記住了

劇情往下走的時候,角色會突然拿出對方很久以前說過的一句話,一字不漏地複述。沒有解釋、沒有「你還記得嗎」,就是直接說出來。

我很喜歡這種寫法,因為它不需要任何一句「我很在乎你」——能一字不漏地複述對方的話,本身就是證據。那句話在他心裡放了多久,觀眾自己會算。細節我們留到經典台詞解析文章再說吧~

他把她說過的話,原封不動還了回去

手法二:同一個人,同一句話,不同的人生階段

另一種更狠:說話的人沒變,話也沒變,變的是他們身處的位置。

你負責擔心,我負責搞定一切

李峋在基地說過一次——那時他們是一群窮學生,他手上什麼都沒有,這句話比較像逞強。多年後兩人一起在公司共事,他又說了一次。同樣九個字,第一次是少年的保證,第二次是成年人真的做得到。中間隔著的那段人生,全部濃縮在這句話重複出現的那個瞬間。

同一句話,兩個人生階段

伏筆對照表

前面埋的後面收的為什麼狠
朱韻在基地隨手寫的那張紙條番外求婚時,他從口袋拿出來她早就忘了,他留了很多年
跨年夜天台,他說「總有一天你會看到熟悉的名字」番外裡,同一個天台,大樓 LED 打出的是朱韻兩個字,他在那裡求婚他當年指的是 L&P。最後被打上去的,是她的名字
「他運氣不好,是指他身邊沒有一個可以拉他一把的人」「我也沒拉住你」他在說別人,她卻把那句話認成了自己的罪
「公主」是句嘲諷「公主」是他唯一的暱稱台詞一個字沒改,關係整個翻面
她修好那支打火機送他他送她那件裙子;公司叫 L&P兩件禮物長成了一個名字
「你負責擔心,我負責搞定一切」(基地)同一句話(多年後的公司)過了多年,從少年變成大人,承諾依舊在
用程式畫出一顆會跳的心「她大概會是我這輩子見的最後一個人」他一直只有一種表白方式:把心交出去,但不說

所以那句「看完就想立刻重看」不是客套。二刷時要盯的不是甜的地方,是東西第一次出現的時候——紙條、打火機、那句許願、那句「總有一天」,全部都會在後面回收。

// 08

四階段台詞地圖

我依故事發展把 36 集分成四個階段,每一段都會延伸成一篇完整的台詞解析——重點放在原著改動前後呼應這兩條線。

EP 01–10

相遇篇

「你來,我請」到「這位是我請來的公主」。稱呼誕生的一段,也包含用程式畫愛心那場戲的完整前因後果。

撰寫中 · 即將發布
EP 11–20

曖昧升溫篇

公主裙告白、「我有我的國王」從個性簽名變成宣言,以及被濃縮成兩個字的「因為愛」。

撰寫中 · 即將發布
EP 21–30

考驗與低谷篇

「老子誰也不怕」的硬與疼,以及「我也沒拉住你」那組隔了很多集才對上的回聲。

撰寫中 · 即將發布
EP 31–36

告白與和解篇

「我是你的底氣」、「把你贏回來也不虧」,以及走馬燈那句收尾怎麼回頭咬住第一集。

撰寫中 · 即將發布
關於階段劃分:台詞與集數的對應之後可能會微調,目前先以這個分法為主。每篇解析發布時,我會回來把上面的卡片改成可點的連結。
// 09

名場面清單:先存起來,追劇時對照

順序大致依劇情推進排列,含輕微劇透。

  1. 你是我的騎士,我是你的公主——整組稱呼系統的原點。
  2. 用程式畫一個愛心——別人幾行交差,他寫了落落長,跑出來是一顆會跳的心。
  3. 這位是我請來的公主——嘲諷轉護短的分水嶺。
  4. 公主大人親啟——隨身碟裡的檔名,他改了一個下午的程式。
  5. 公主走錯房,醉倒在國王床上——長島冰茶闖的禍。
  6. 禮物是這件裙子——公主裙成為定情物的那一刻。
  7. 修好的打火機——她想放的是衝上天再炸開花的那種煙火。
  8. 李峋,你選我吧,我絕不背叛你——她穿著公主裙,把話說得毫無保留。
  9. 我有我的國王,我是他的不二之臣——原著裡只是個性簽名,劇版把它演成了宣言。
  10. 不管你未來有什麼目標,你都可以把我算在裡面——這段寫的紙條,是很多集之後求婚的伏筆。
  11. 我是你的底氣——他把自己站成她的後盾。
  12. 走馬燈——最後一個名字。
// 10

求婚彩蛋:不在正片裡的那一段,千萬不要錯過

很多人追完 36 集覺得「HE 卻意猶未盡」,其實是因為求婚不在正片裡——它收錄在完結後另外釋出的番外彩蛋。沒看到這段,等於少收了整部劇最後一個伏筆。

那段裡,兩人重新回到跨年那個天台。李峋讓某棟大樓的 LED 螢幕打出她的名字,然後拿出多年前她在基地寫下的那張紙條——上面寫著不論他要她做什麼她都答應。他一直留著。所以正片裡那張隨手寫的紙條,從來不是隨手。

而那棟大樓更狠。當年在同一個天台,他說過總有一天她會在那裡看到熟悉的名字——那時他講的是 L&P,是一個一無所有的少年在說他要把公司做起來。多年後那面 LED 真的亮了,打出來的卻是朱韻兩個字。承諾兌現了,只是他把位置讓給了她。

還有一個細節值得留意:正片裡的主動方幾乎都是朱韻——告白是她、和好她一口答應、連要孩子都是她先提。她抱怨過這件事,而他的回答是「那你等著我唄」。這段番外,就是他把那句話兌現的地方。

影片來源:bilibili。若上方畫面無法載入, 請點此前往 bilibili 觀看

// 11

推薦度:這部適合誰看?

如果你喜歡「歡喜冤家型」的雙向救贖、喜歡看一句嘲諷語氣如何在劇情推進裡慢慢變成情話,這部會非常對胃口。演員的 CP 感是這部劇最大的底氣,很多細節不靠台詞、光靠眼神就交代完了。

但要先說清楚:中段有一段不短的低谷,情緒壓得相當低。如果你現在只想找輕鬆下飯的甜劇,這部前甜後苦的節奏可能會讓你措手不及;反過來說,也正是那段苦,讓後面的和解不是理所當然的。

// FAQ

常見問題

《點燃我,溫暖你》和《打火機與公主裙》是同一部作品嗎?

是同一部。《打火機與公主裙》是 Twentine 的原著小說名,也是這部劇最初的劇名,開播前才改名為《點燃我,溫暖你》。原著分《荒草園》與《長明燈》兩部,劇版把兩部合併改編成 36 集。

李峋畫的跳動愛心是用什麼程式做的?

劇中沒有公開完整原始碼。網路上流傳的復刻版本以 Python 的 tkinter 繪圖,核心是心形參數方程式 x = 16·sin³t、y = −(13cos t − 5cos 2t − 2cos 3t − cos 4t),再對取樣點做隨機擴散與逐幀縮放,製造出粒子構成、會跳動的效果。完整程式碼與原理拆解在本文第 04 段

劇中公司為什麼叫 L&P?

李峋對外給的是另一組英文縮寫的說法,但朱韻直接猜中真正的意思是 Lighter and Princess——打火機與公主裙。這是劇版加寫的橋段,等於把原著書名安進了劇情裡。

總共幾集?結局是 HE 嗎?

全劇 36 集,2022 年 11 月 3 日於優酷寵愛劇場首播。結局是 HE,但因為收尾用了大量留白與回望,不少觀眾覺得意猶未盡。看完番外彩蛋,那份不滿足會補回來很多。

求婚片段是第幾集?

求婚不在 36 集正片裡,而是收錄在完結後釋出的番外彩蛋。李峋用大樓 LED 螢幕求婚,並拿出朱韻多年前在基地寫下的紙條兌現承諾——所以正片裡那張紙條其實是伏筆。影片在本文第 10 段

劇版和小說差在哪裡?

劇版最大的改動是把原著的內心獨白外化成台詞或畫面:朱韻的個性簽名被演成宣言、原著只提及的炭畫變成第一次約會、未讀郵件改成隨身碟、書名則透過公司名 L&P 被說破。整體還原度高,但情緒表達更外顯。完整對照表在本文第 06 段

台灣現在還能在哪裡看?

台灣當年由 LINE TV 跟播,但該站已因授權到期下架。目前較穩定的管道是優酷國際版(YOUKU 國際站與 App)。優酷與 LINE TV 的官方 YouTube 頻道有上架不少精華片段與花絮,但沒有完整集數,想從頭看完還是得回優酷。各平台授權時常變動,建議以官方站內搜尋為準。

喜歡這種拆改編、找伏筆的寫法嗎?
四篇台詞解析發布前,我會先在電子報裡預告。

訂閱劇評電子報

參考資料:維基百科《點燃我,溫暖你》條目、優酷官方資訊、Twentine 原著《打火機與公主裙》,跳動愛心的原理拆解參考知乎相關技術文章。文中引用之台詞與程式碼片段僅為評論、教學與分析用途,著作權屬原權利人所有。

碰! x = 16·sin³t    y = −(13cos t − 5cos 2t − 2cos 3t − cos 4t)

Lighter & Princess · 2022 · 36 EP

《點燃我,溫暖你》「公主殿下親啟」
從嘲諷到暱稱,我就這樣入坑了

她想看的煙火是「咻」一下上去、「碰!」很大聲的那種;他能給的浪漫是一顆用程式碼寫出來、會跳的心。這篇拆的是:小說到劇版改了什麼,以及那些隔了二十幾集才對上的台詞。

#打火機與公主裙 #李峋 × 朱韻 #跳動愛心代碼 #原著改編對照

// 三分鐘看完這篇

  • 《點燃我,溫暖你》原名就叫《打火機與公主裙》,改編自 Twentine 同名小說,全劇 36 集,2022 年 11 月 3 日於優酷寵愛劇場首播。
  • 這篇不列名場面數量,走的是兩條線:小說到劇版「改了什麼、為什麼改得好」,以及前後台詞的呼應彩蛋
  • 附上李峋同款跳動愛心——頁面上有一顆現場跑的版本,想看原理和程式碼的可以自己點開。
  • 逐句台詞解析拆成四篇專文,從四階段台詞地圖進入。
// 01

入坑契機:一支剪輯,一個稱呼

會點開這部劇,是因為滑到一支剪輯影片。男女主角在細節裡藏的偏愛太好嗑了——最有意思的是「公主、公主殿下」這個稱呼的轉變。一開始明明是李峋懟朱韻的嘲諷語氣,越往後看,同一句話卻變成他捨不得說重話時唯一會用的暱稱。

台詞沒變,語氣全變了。這種「同一個詞被重新定義」的寫法,是我覺得最會撓人心的地方——它不需要一句「我喜歡你」,就把整段關係的位移演完了。

// 02

這部劇在演什麼?基本資料一次看

《點燃我,溫暖你》講的是編程天才李峋與學霸少女朱韻,從互看不順眼的同學關係,一路走過校園、意外、分離與重逢的成長愛情故事。它不是那種一路甜到底的糖水劇——中段的低谷寫得相當扎實,也因此後段的和解才有重量。

劇名點燃我,溫暖你(原劇名《打火機與公主裙》)
英文名Lighter & Princess
集數36 集
首播2022 年 11 月 3 日 · 優酷寵愛劇場
導演劉俊傑(《王子變青蛙》《何以笙簫默》《杉杉來了》)
編劇周涌、劉紫薇、劉雨暢
主演陳飛宇(李峋)、張婧儀(朱韻)
配角趙志偉、曾可妮、崔雨鑫、錢迪迪、姜梓新
原著Twentine《打火機與公主裙》(《荒草園》+《長明燈》)
台灣觀看當年由 LINE TV 跟播,現已因授權到期下架;完整集數目前看優酷國際版,官方 YouTube 頻道則只有精華片段與花絮(授權常變動,以官方站為準)

資料更新於 2026 年 8 月。串流授權變動頻繁,實際上架狀況請以各平台為準。

順帶一提,原著作者 Twentine 也是《熾道》的作者。如果你喜歡她那種「情緒不解釋、只讓角色去做」的筆法,這部會非常合胃口——原著《打火機與公主裙》分《荒草園》與《長明燈》兩部,追完劇再回頭讀,體感最好。

// 03

為什麼叫「打火機與公主裙」?劇裡藏了一個 L&P

這是我認為全劇最漂亮的一個改編。劇版讓李峋替公司取名叫 L&P,對外給了一個聽起來很商務的英文縮寫解釋——結果朱韻一秒猜穿:那不就是 Lighter and Princess,打火機與公主裙嗎?

原著書名從來沒有被角色說出口,劇版卻讓它從嘴裡講了出來。於是「打火機」與「公主裙」不再只是讀者在封面上看到的兩個名詞,而變成兩人之間確實存在過的信物:一支她修好送他的打火機,一件他送她、說「公主就是要穿裙子」的裙子。

# 兩個信物,一個公司名
lighter  = “她修好、送給他的那支”
princess = “他送她、說公主就該穿的那件”
company  = lighter + ” & “ + princess  # => L&P

而放煙火那段之所以會被反覆重剪,是因為它同時交代了三件事:打火機的用途、她的性格,以及後來每一次「新年快樂」背後真正想說的那句話。她說她想放的是衝一下上天、然後碰地炸開花的那種——這個描述本身就是朱韻:不要小火,要一次到底。

// 04

用程式畫一個愛心:李峋的浪漫是怎麼算出來的

林教授出的作業是「用程式畫一個愛心」。全班都幾行交差,只有李峋寫了落落長的一段——朱韻把他的程式碼複製下來執行,螢幕中央跑出一顆立體、鮮紅、還在撲通撲通跳的心。

這是全劇最著名的一場戲,也是我認為最能說明這個角色的一場:他不會說情話,他只會把「我在想你」翻譯成一段別人看不懂的邏輯。

朱韻心動的那一瞬間

下面這顆,是現場跑的

同樣的數學式,我改寫成瀏覽器版本放在這裡。它沒有預錄影片,是逐幀計算出來的粒子——跟劇裡那顆一樣,會呼吸。

heart_function(t)

即時運算 · 20 幀循環 · 不是影片

想知道它是怎麼算出來的?(含完整程式碼,點開展開)

原理:一條式子,三層擴散

核心只有一條心形參數方程式,高中三角函數的範圍:

x = 16 × sin³t
y = −(13 cos t − 5 cos 2t − 2 cos 3t − cos 4t)

把 t 在 0 到 2π 之間隨機取兩千個值,就得到心形的輪廓。真正讓它「活起來」的是後面三件事:

  1. 邊緣擴散:每個輪廓點往內隨機灑出幾顆,讓邊界毛毛的、不是一條死線。
  2. 內部填充:再灑幾千顆更往中心集中的點,心才有體積。
  3. 逐幀縮放:用一個正弦曲線當作「心跳」的強弱,每一幀讓所有點按離中心的距離做不同幅度的收縮——近的動得少、遠的動得多。這就是那個撲通撲通的來源。

所以它不是動畫檔,是每一幀都在重算。這也是為什麼劇裡朱韻會愣住——她一眼看得懂那段程式碼有多囉唆,也一眼看得懂那個人為什麼要寫得這麼囉唆。

完整 Python 程式碼

import random
from math import sin, cos, pi, log
from tkinter import Tk, Canvas

CANVAS_WIDTH = 640
CANVAS_HEIGHT = 480
CANVAS_CENTER_X = CANVAS_WIDTH / 2
CANVAS_CENTER_Y = CANVAS_HEIGHT / 2
IMAGE_ENLARGE = 11
HEART_COLOR = "#f752b3"


def heart_function(t, shrink_ratio: float = IMAGE_ENLARGE):
    """心形參數方程式:這一條就是整顆心的輪廓"""
    x = 16 * (sin(t) ** 3)
    y = -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))
    x *= shrink_ratio
    y *= shrink_ratio
    x += CANVAS_CENTER_X
    y += CANVAS_CENTER_Y
    return int(x), int(y)


def scatter_inside(x, y, beta=0.15):
    """把點往中心方向隨機推,做出擴散感"""
    ratio_x = -beta * log(random.random())
    ratio_y = -beta * log(random.random())
    dx = ratio_x * (x - CANVAS_CENTER_X)
    dy = ratio_y * (y - CANVAS_CENTER_Y)
    return x - dx, y - dy


def shrink(x, y, ratio):
    force = -1 / (((x - CANVAS_CENTER_X) ** 2 + (y - CANVAS_CENTER_Y) ** 2) ** 0.6)
    dx = ratio * force * (x - CANVAS_CENTER_X)
    dy = ratio * force * (y - CANVAS_CENTER_Y)
    return x - dx, y - dy


def curve(p):
    """心跳的節奏曲線"""
    return 2 * (2 * sin(4 * p)) / (2 * pi)


class Heart:
    def __init__(self, generate_frame=20):
        self._points = set()
        self._edge_diffusion_points = set()
        self._center_diffusion_points = set()
        self.all_points = {}
        self.build(2000)
        self.generate_frame = generate_frame
        for frame in range(generate_frame):
            self.calc(frame)

    def build(self, number):
        for _ in range(number):
            t = random.uniform(0, 2 * pi)
            x, y = heart_function(t)
            self._points.add((x, y))

        for _x, _y in list(self._points):
            for _ in range(3):
                x, y = scatter_inside(_x, _y, 0.05)
                self._edge_diffusion_points.add((x, y))

        point_list = list(self._points)
        for _ in range(4000):
            x, y = random.choice(point_list)
            x, y = scatter_inside(x, y, 0.17)
            self._center_diffusion_points.add((x, y))

    @staticmethod
    def calc_position(x, y, ratio):
        force = 1 / (((x - CANVAS_CENTER_X) ** 2 + (y - CANVAS_CENTER_Y) ** 2) ** 0.520)
        dx = ratio * force * (x - CANVAS_CENTER_X) + random.randint(-1, 1)
        dy = ratio * force * (y - CANVAS_CENTER_Y) + random.randint(-1, 1)
        return x - dx, y - dy

    def calc(self, generate_frame):
        ratio = 10 * curve(generate_frame / 10 * pi)
        halo_radius = int(4 + 6 * (1 + curve(generate_frame / 10 * pi)))
        halo_number = int(3000 + 4000 * abs(curve(generate_frame / 10 * pi) ** 2))
        all_points = []

        heart_halo_point = set()
        for _ in range(halo_number):
            t = random.uniform(0, 2 * pi)
            x, y = heart_function(t, shrink_ratio=11.6)
            x, y = shrink(x, y, halo_radius)
            if (x, y) not in heart_halo_point:
                heart_halo_point.add((x, y))
                x += random.randint(-14, 14)
                y += random.randint(-14, 14)
                all_points.append((x, y, random.choice((1, 2, 2))))

        for x, y in self._points:
            x, y = self.calc_position(x, y, ratio)
            all_points.append((x, y, random.randint(1, 3)))

        for x, y in self._edge_diffusion_points:
            x, y = self.calc_position(x, y, ratio)
            all_points.append((x, y, random.randint(1, 2)))

        for x, y in self._center_diffusion_points:
            x, y = self.calc_position(x, y, ratio)
            all_points.append((x, y, random.randint(1, 2)))

        self.all_points[generate_frame] = all_points

    def render(self, render_canvas, render_frame):
        for x, y, size in self.all_points[render_frame % self.generate_frame]:
            render_canvas.create_rectangle(x, y, x + size, y + size, width=0, fill=HEART_COLOR)


def draw(main, render_canvas, render_heart, render_frame=0):
    render_canvas.delete('all')
    render_heart.render(render_canvas, render_frame)
    main.after(160, draw, main, render_canvas, render_heart, render_frame + 1)


if __name__ == '__main__':
    root = Tk()
    root.title("Heart")
    canvas = Canvas(root, width=CANVAS_WIDTH, height=CANVAS_HEIGHT, bg='black')
    canvas.pack()
    heart = Heart()
    draw(root, canvas, heart)
    root.mainloop()
執行方式:存成 heart.py,用 Python 3 執行即可(tkinter 是標準函式庫,Windows 與 macOS 的官方安裝檔預設就有;部分 Linux 發行版需要另外安裝 python3-tk)。第一次跑會停頓一兩秒,那是在預先算 20 幀。

說明:劇組沒有公開李峋那段程式碼的原始內容,網路上流傳的都是網友依據畫面效果做的復刻版,這份也是。核心的心形參數方程式是公開的數學式,實作寫法則參考了知乎上的原理拆解文章。
// 05

「公主殿下」的語氣三變

如果只能推薦一個觀劇角度,我會推薦這個:盯著「公主」這兩個字,看它一集一集怎麼變。同樣的稱呼,在三個階段裡承載的東西完全不同。

第一變:嘲諷——你被保護得太好了

最初的「公主」是刺。李峋用它形容朱韻的天真、清高與不知世事,語氣裡有距離也有輕視。那個階段他叫她公主,等於在說:你我不是一個世界的人。

第二變:宣示——這位是我請來的公主

這位是我請來的公主

同一個詞,第一次不是往內刺、而是往外擋。他當著所有人的面把她的位置定下來,護短跟炫耀兩種情緒同時成立——這是「公主殿下」正式從嘲諷轉為專屬稱呼的起點。

第三變:暱稱——那是他藏得很好的溫柔

到後段,「公主」變成他的降速鍵。每當語氣要變硬、話要變重,這兩個字就會先出現,把攻擊性接住。

但更迷人的是另一件事:那份他以為藏得很好的寵溺,總會從這兩個字裡不小心流露出來。他明明什麼都有——嘴很壞、脾氣很硬、從不哄人——卻要假裝自己沒有那份溫柔。所以每叫一聲公主,就等於洩漏一次秘密。他自己大概最後都沒發現吧。

而「公主」的定義,劇版讓她親口問了

李峋,你覺得什麼樣的人才能叫做公主?

他給的答案是:清高的眼睛、天真又脆弱的心,再加一點孤注一擲的冒險精神。表面上在下定義,其實整段就是一份逐條對照的告白——他描述的每一項,都是她。

這裡的改編我特別喜歡。原著裡這段是徐黎娜問李峋的,朱韻不在場,讀者是隔著一層聽到答案的。劇版改成朱韻自己問、李峋看著她回答——同樣的字,一個是回答,一個是當面告白。字字不說破,卻又字字說的是她。而且她問完之後那個表情,等於觀眾也跟著對了一次答案。

眼神是藏不住的

這部劇很多時候根本不需要台詞。喜歡一個人的證據不在嘴上,在眼神的追隨——他人在講別的事,視線卻已經先跟過去了。這種偏愛只有鏡頭抓得到,小說寫不出來。

愛一個人,眼神是藏不住的(這段配樂也太好聽)

公主,你想做什麼就去做,我是你的底氣

前面那個叫她公主是為了嘲諷她被保護得太好,到這裡,他成了那個保護。同一個稱呼,從「你不懂世界的險惡」變成「有我在,你不用懂」。

我是你的底氣

這也是我覺得這部劇比一般甜寵高明的地方:它不靠新台詞推進感情,它靠舊台詞被重新定義推進感情。

// 06

小說 vs 劇版:改編到底改了什麼

這部被原著粉稱為「還原度最高」,但真正值得討論的不是還原了多少,而是那些沒有照抄的地方。整理下來,劇版的改動幾乎都遵循同一個邏輯:把小說的內心獨白,外化成看得見、聽得到的東西

橋段原著小說劇版怎麼改
公主的定義是徐黎娜問李峋的,朱韻不在場改成朱韻自己問、李峋看著她答——回答變成當面告白,字字不說破卻字字是她
「我有我的國王」只是朱韻的個性簽名,敘事者交代過去演成一段當眾說出口的宣言,全網最激動的一幕
「因為愛」一段解釋熱忱的長句,講到熱愛行業、熱愛交流濃縮成兩個字。少講很多,說出來的反而更重
公主大人親啟一封未讀郵件改成隨身碟裡特別幫朱韻加了註解的那份檔案。實體物件更合情理,也更難丟掉
炭畫《嶙峋》只被提及,是背景資訊擴寫成兩人的第一次約會(而且「嶙峋」聽起來就是「李峋」)
「你負責擔心,我負責搞定一切」是朱韻在後半部的內心獨白(她負責擔心,他負責解決)提前,並改由李峋親口說出——從她的體會變成他的承諾
合照是李峋演講時的單人照改成兩人合照,放進朱韻錢包裡
「就當是我背叛好了」在旅館場景中的拒絕移到監獄,變成推開她的手段——同一句話,痛感完全不同
書名「打火機與公主裙」從未被角色說出口透過公司名 L&P 被朱韻猜破

含輕微劇透。整理自原著與劇版對照,僅摘錄改動邏輯,不逐句轉錄。

順帶一提,那幅炭畫叫《嶙峋》——嶙峋、李峋,唸起來幾乎一樣。他們的第一次約會,去看的是一幅跟他同名的畫。原著只是提過這幅畫的存在,劇版把它變成場景,等於送了觀眾一個免費的諧音彩蛋。

另外值得一提的是刪減。原著李峋有幾句在今天看來不太舒服的台詞,劇版直接拿掉了;男主的部分行為也做了收斂。這種修改常被說是「削弱角色」,但我覺得反而讓「他不是壞,他只是嘴硬」這個核心站得更穩。

// 想自己對照?

Twentine《打火機與公主裙》原著小說

上面這些改動,讀過原著才看得出來改得多聰明。小說補回大量劇裡沒空交代的內心戲——尤其是朱韻那些沒說出口的部分。

前往選購

*本連結為蝦皮聯盟連結,透過它下單我會獲得一點分潤,不會增加你的售價。

// 07

前後呼應的彩蛋:那些隔了二十集才對上的話

這部劇最值得二刷的理由。第一次看你只會覺得某句話怪怪的,二刷才會發現——它早就在前面埋好了。而且劇本用的是兩種不同的手法。

手法一:他說過的話,被她記住了

劇情往下走的時候,角色會突然拿出對方很久以前說過的一句話,一字不漏地複述。沒有解釋、沒有「你還記得嗎」,就是直接說出來。

我很喜歡這種寫法,因為它不需要任何一句「我很在乎你」——能一字不漏地複述對方的話,本身就是證據。那句話在他心裡放了多久,觀眾自己會算。細節我們留到經典台詞解析文章再說吧~

他把她說過的話,原封不動還了回去

手法二:同一個人,同一句話,不同的人生階段

另一種更狠:說話的人沒變,話也沒變,變的是這句話已經被兌現了多少年。

你負責擔心,我負責搞定一切

李峋在基地說過一次——那時他們是一群窮學生,他手上什麼都沒有,這是學生時代立下的承諾。多年後兩人一起在公司共事,他又說了一次。同樣九個字,第一次是他立下的承諾,第二次是他這些年一直有做到。中間隔著的那段人生,全部濃縮在這句話重複出現的那個瞬間。

同一句話:一次是承諾,一次是他一直有做到

伏筆對照表

前面埋的後面收的為什麼狠
朱韻在基地隨手寫的那張紙條番外求婚時,他從口袋拿出來她早就忘了,他留了很多年
跨年夜天台,他說「總有一天你會看到熟悉的名字」番外裡,同一個天台,大樓 LED 打出的是朱韻兩個字,他在那裡求婚他當年指的是 L&P。最後被打上去的,是她的名字
「他運氣不好,是指他身邊沒有一個可以拉他一把的人」「我也沒拉住你」他在說別人,她卻把那句話認成了自己的罪
「公主」是句嘲諷「公主」是他唯一的暱稱台詞一個字沒改,關係整個翻面
她修好那支打火機送他他送她那件裙子;公司叫 L&P兩件禮物長成了一個名字
「你負責擔心,我負責搞定一切」(基地)同一句話(多年後的公司)第一次是立下承諾,第二次是他一直有做到
用程式畫出一顆會跳的心「她大概會是我這輩子見的最後一個人」他一直只有一種表白方式:把心交出去,但不說

所以那句「看完就想立刻重看」不是客套。二刷時要盯的不是甜的地方,是東西第一次出現的時候——紙條、打火機、那句許願、那句「總有一天」,全部都會在後面回收。

// 08

四階段台詞地圖

我依故事發展把 36 集分成四個階段,每一段都會延伸成一篇完整的台詞解析——重點放在原著改動前後呼應這兩條線。

EP 01–10

相遇篇

「你來,我請」到「這位是我請來的公主」。稱呼誕生的一段,也包含用程式畫愛心那場戲的完整前因後果。

撰寫中 · 即將發布
EP 11–20

曖昧升溫篇

公主裙告白、「我有我的國王」從個性簽名變成宣言,以及被濃縮成兩個字的「因為愛」。

撰寫中 · 即將發布
EP 21–30

考驗與低谷篇

「老子誰也不怕」的硬與疼,以及「我也沒拉住你」那組隔了很多集才對上的回聲。

撰寫中 · 即將發布
EP 31–36

告白與和解篇

「我是你的底氣」、「把你贏回來也不虧」,以及走馬燈那句收尾怎麼回頭咬住第一集。

撰寫中 · 即將發布
關於階段劃分:台詞與集數的對應之後可能會微調,目前先以這個分法為主。每篇解析發布時,我會回來把上面的卡片改成可點的連結。
// 09

名場面清單:先存起來,追劇時對照

順序大致依劇情推進排列,含輕微劇透。

  1. 你是我的騎士,我是你的公主——整組稱呼系統的原點。
  2. 用程式畫一個愛心——別人幾行交差,他寫了落落長,跑出來是一顆會跳的心。
  3. 這位是我請來的公主——嘲諷轉護短的分水嶺。
  4. 公主大人親啟——隨身碟裡的檔名,他改了一個下午的程式。
  5. 公主走錯房,醉倒在國王床上——長島冰茶闖的禍。
  6. 禮物是這件裙子——公主裙成為定情物的那一刻。
  7. 修好的打火機——她想放的是衝上天再炸開花的那種煙火。
  8. 李峋,你選我吧,我絕不背叛你——她穿著公主裙,把話說得毫無保留。
  9. 我有我的國王,我是他的不二之臣——原著裡只是個性簽名,劇版把它演成了宣言。
  10. 不管你未來有什麼目標,你都可以把我算在裡面——這段寫的紙條,是很多集之後求婚的伏筆。
  11. 我是你的底氣——他把自己站成她的後盾。
  12. 走馬燈——最後一個名字。
// 10

求婚彩蛋:不在正片裡的那一段,千萬不要錯過

很多人追完 36 集覺得「HE 卻意猶未盡」,其實是因為求婚不在正片裡——它收錄在完結後另外釋出的番外彩蛋。沒看到這段,等於少收了整部劇最後一個伏筆。

那段裡,兩人重新回到跨年那個天台。李峋讓某棟大樓的 LED 螢幕打出她的名字,然後拿出多年前她在基地寫下的那張紙條——上面寫著不論他要她做什麼她都答應。他一直留著。所以正片裡那張隨手寫的紙條,從來不是隨手。

而那棟大樓更狠。當年在同一個天台,他說過總有一天她會在那裡看到熟悉的名字——那時他講的是 L&P,是一個一無所有的少年在說他要把公司做起來。多年後那面 LED 真的亮了,打出來的卻是朱韻兩個字。承諾兌現了,只是他把位置讓給了她。

還有一個細節值得留意:正片裡的主動方幾乎都是朱韻——告白是她、和好她一口答應、連要孩子都是她先提。她抱怨過這件事,而他的回答是「那你等著我唄」。這段番外,就是他把那句話兌現的地方。

影片來源:bilibili。若上方畫面無法載入, 請點此前往 bilibili 觀看

// 11

推薦度:這部適合誰看?

如果你喜歡「歡喜冤家型」的雙向救贖、喜歡看一句嘲諷語氣如何在劇情推進裡慢慢變成情話,這部會非常對胃口。演員的 CP 感是這部劇最大的底氣,很多細節不靠台詞、光靠眼神就交代完了。

但要先說清楚:中段有一段不短的低谷,情緒壓得相當低。如果你現在只想找輕鬆下飯的甜劇,這部前甜後苦的節奏可能會讓你措手不及;反過來說,也正是那段苦,讓後面的和解不是理所當然的。

// FAQ

常見問題

《點燃我,溫暖你》和《打火機與公主裙》是同一部作品嗎?

是同一部。《打火機與公主裙》是 Twentine 的原著小說名,也是這部劇最初的劇名,開播前才改名為《點燃我,溫暖你》。原著分《荒草園》與《長明燈》兩部,劇版把兩部合併改編成 36 集。

李峋畫的跳動愛心是用什麼程式做的?

劇中沒有公開完整原始碼。網路上流傳的復刻版本以 Python 的 tkinter 繪圖,核心是心形參數方程式 x = 16·sin³t、y = −(13cos t − 5cos 2t − 2cos 3t − cos 4t),再對取樣點做隨機擴散與逐幀縮放,製造出粒子構成、會跳動的效果。完整程式碼與原理拆解在本文第 04 段

劇中公司為什麼叫 L&P?

李峋對外給的是另一組英文縮寫的說法,但朱韻直接猜中真正的意思是 Lighter and Princess——打火機與公主裙。這是劇版加寫的橋段,等於把原著書名安進了劇情裡。

總共幾集?結局是 HE 嗎?

全劇 36 集,2022 年 11 月 3 日於優酷寵愛劇場首播。結局是 HE,但因為收尾用了大量留白與回望,不少觀眾覺得意猶未盡。看完番外彩蛋,那份不滿足會補回來很多。

求婚片段是第幾集?

求婚不在 36 集正片裡,而是收錄在完結後釋出的番外彩蛋。李峋用大樓 LED 螢幕求婚,並拿出朱韻多年前在基地寫下的紙條兌現承諾——所以正片裡那張紙條其實是伏筆。影片在本文第 10 段

劇版和小說差在哪裡?

劇版最大的改動是把原著的內心獨白外化成台詞或畫面:朱韻的個性簽名被演成宣言、原著只提及的炭畫變成第一次約會、未讀郵件改成隨身碟、書名則透過公司名 L&P 被說破。整體還原度高,但情緒表達更外顯。完整對照表在本文第 06 段

台灣現在還能在哪裡看?

台灣當年由 LINE TV 跟播,但該站已因授權到期下架。目前較穩定的管道是優酷國際版(YOUKU 國際站與 App)。優酷與 LINE TV 的官方 YouTube 頻道有上架不少精華片段與花絮,但沒有完整集數,想從頭看完還是得回優酷。各平台授權時常變動,建議以官方站內搜尋為準。

// 追完劇之後

接著讀原著:Twentine《打火機與公主裙》

劇看完了,故事還沒。原著分《荒草園》與《長明燈》兩部,補回大量李峋與朱韻沒說出口的心理戲——尤其是那些鏡頭只能用眼神帶過的部分。追完劇再回頭讀,體感最好。

前往選購

*蝦皮聯盟連結,透過它下單我會獲得一點分潤,不會增加你的售價。

喜歡這種拆改編、找伏筆的寫法嗎?
四篇台詞解析發布前,我會先在電子報裡預告。

訂閱劇評電子報

參考資料:維基百科《點燃我,溫暖你》條目、優酷官方資訊、Twentine 原著《打火機與公主裙》,跳動愛心的原理拆解參考知乎相關技術文章。文中引用之台詞與程式碼片段僅為評論、教學與分析用途,著作權屬原權利人所有。