栗子現場直播 千篇一栗
有很多簡單的道理,若不是被遺忘,不是察覺不到,就是知易行難。

2008年10月11日 星期六

♪ 開大脾 脫光光 ♪

警告:本部份含有成人內容。不過這樣的警告,也只會提高你閱讀的興致吧?變態的無聊笨蛋~

  當 NDS 推出的時候,日本人就想到用它來玩色色的遊戲。當 iPhone 推出的時候,日本人就想到用它來玩色色的遊戲。

  大慨是不久以前,某個日本人在iPhone裡搞出一個multi-touch開大脾的遊戲。
  好奇心軀使下,用firefox把它開來看。
  くぱぁされてもパンツじゃないから恥ずかしくないも……ぁ…
  但卻玩不到甚麼。

  其後,那個作者又搞出了脫光光的遊戲。
  然後,又用Firefox打開看。
  ゆのっち剥き
  依然是甚麼都玩不了。
  於是打開 source 看看。一個 htm ,連著一個 js 和 css 檔。 css 檔沒有甚麼特別。 js 檔是一堆 javascript ,但那些程式實在是過分簡單,應該不會有任何遊戲才對。
  看透整個 source code ,一點線索也沒有。
  火大。

  想到這個遊戲,是在 iPhone 上跑, iPhone 是用 Safari 的,於是就下載了 Windows 版的 Safari 試試看,也是一無所獲。
  之後研究了很久......至少用了兩個鐘,還是沒有甚麼收獲。為了找尋線索,我甚至連 filename 也都去撞了。  在第一個開大脾 game ,我從 p000.jpg 這個線索去找。 p001 找不到, p010 沒有, p100 也沒有。
  然後很無理地,我連 q000 也都去撞了。  咦?
  p 下一個是 q ,再下一個是甚麼,不用說大家也清楚了。然而,從 source code 看到,完全看不到任何 q000 r000 之類的文字。

  對於以上的現象,我有以下的猜測:
  • 作者良心發現,把色色的遊戲撤回。
  • iPhone會自動另外在其他地方讀入 script 檔。

  關於第一點,我再看回 niconico ,那個片子還原封不動在這裡啊。至於第二點,在 google 裡找也找不到類似的東東。

  於是我就重新看回作者的 blog 鷹澤遊戯場,留意到某條 link 。
  iPhone対応サイトの作り方
  那裡有一段,描述 iPhone Safari 的 UserAgent 。
Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F136 Safari/525.20
  我在想,這個作者應該不會嗆得用 UserAgent 去更改 server output 吧。然後就把 Firefox 的 UserAgent 改改試試看。
  Changing User Agent in Mozilla Firefox
  簡單來說步驟,就是在 Firefox 開 about:config ,把 general.useragent.override 設定為以上的 UserAgent 值。當進入 Google 時,會自動變成行動版 Google 。

  用這個改了 UserAgent 的 FireFox 扮 iPhone 再看那兩個網頁。另一套 html code 驚現在眼前。
  原本開脾 game 只是 js.js ,現在變成 kupa.js 。而脫光光遊戲的 script ,則由 const.js 變成 var.js 和 main.js 。而 html 本文也產生了變化。
  於是就這樣,我就成功把那兩個遊戲的所有相關資源都抄出來了。

  下一步,是使它們能夠在 Firefox 裡跑。

  第一個開脾 game ,其實應該是沒有可能的,因為 PC 沒有 multi-touch 。我可以大慨用另一個模式來玩這遊戲,但如果不是用兩隻手指玩的話,則意義不大。所以我沒有作。
  至於第二個脫光光遊戲,因為遊戲的指定動作不涉及 multi-touch ,因此把它移植到 Firefox ,理論上可行的。
  由於作者的 code 本來就是很標準的 DOM Javascript ,於是只是做了小改動,就可以在 Firefox / Chrome 裡行。但 IE 卻不行,不理了。
  ゆのっち剥き(Firefox版)(十八禁)
  不知為何,看到ゆの擺出一副痛苦的表情,心裡生出了一份罪惡感。

  下一步,是把它移植到 Android 。

  我起初以為很簡單,我甚至以為就直接用 Android 的 browser 開它就行,於是拿 Android 的 emulator 試試看。結果發現的問題有二:
  • 開不到身體 back.jpg 。
  • 對 touch 動作沒反應。
  關於第一點,我不知道原因,但如果用 mouse 在畫面上刮兩下,它就會跳出來。
  至於第二點,我查了好久,才發現問題在於 mousedown/up event 發生的時間問題。一般的 browser ,當你按下 mouse 時是 mousedown ,放開時是 mouse up 。但在 Android ,按下時沒反應(再長按甚至會出現 system event),放下時會同時把 down/up event 傳出來。即是說,所有 mouse down/up event 的時機都被搞亂了。另外, mousemove event 絕大部份的情況下不會出現。
  只要把javascript輕輕修改一下,就可以使這遊戲,即使使用者甚麼也不做,衣服也會自己飛出來。但我就不在此公開那個東東了。

  現在唯有寄望,下一版的 Android emulator ,或者在 htc G1 裡, mouse down/up 會有良好的表現。
後記:我弄的那個東東連 Wii 都玩到... 死勒...

沒有留言: