2015年8月28日 星期五
模擬器 SCUMM VM
就字面上的解釋,這是 瘋狂大樓Maniac Mansion所使用的腳本創建工具.
瘋狂大樓是LucasArts (拍攝星際大戰的Lucasfilm所開發的一套冒險遊戲)
為啥會忽然對這系列的模擬器感到興趣,話說在1990年左右的電腦遊戲走的風格就是這類的風格
有點類似互動電子書,扮演一個角色,捲入一個謎團,但無RPG的練功升等的遊戲架構.
著重在觀察互動.遊戲中的各個場景都會有足夠的資訊去調查,或是有人物可以對談,對談時會可以有不同的對白可以挑選對應.意思就是說,資訊的取得需要進行思考.而且劇情物件是需要去撿取,或是組合成新的物件.成為下一個對談的資訊.或是呈堂證共.
聽起來很像是CIA調查犯案,有警探的感覺吧!
的確,如果說是冒險遊戲,當年智冠有代理EA的一款”福爾摩斯探案-消失的檔案”,
https://en.wikipedia.org/wiki/The_Lost_Files_of_Sherlock_Holmes
就是那個時候的一個代表作,但這個遊戲並不是SCUMM所開發的.就先不討論了.
回到LucasArts來.瘋狂大樓.是一個起點.但發光的是Loom.目前可以在Steam購買PC版的
http://store.steampowered.com/app/32340/
但在台灣比較紅的應該是猴島小英雄 Monkey Island
https://zh.wikipedia.org/wiki/%E7%8C%B4%E5%B3%B6%E5%B0%8F%E8%8B%B1%E9%9B%84%E7%B3%BB%E5%88%97
這遊戲"猴島小英雄"在那個年代算是非常紅的.其劇情的影響.造成了一部電影的問世.在Lucasfilm被Disney收購後.開拍了一個鬼盜船系列的電影.但其實劇情跟電影其實完全沒有關係.只是使用了相同的元素有海盜,鬼船長的冒險故事.
在SCUMM的系統下除了"猴島小英雄"還有幾個系列也是在當時很轟動的
凱蘭迪亞傳說,
警察故事,
國王密使,
Sam and Max: Hit the road.,
瘋狂時代(DOTT),
The Dig,
Broken Sword,
Space Quest (http://store.steampowered.com/app/10110/),
如將這些關鍵字放進Google查看看,這些當年的名作其實一直都沒被人遺忘,在Steam上都可以找到合集.或是重製的版本.甚至在IOS上都可以找到.雖非為主流大作(巫術,龍與地下城.DQ,FF).但可以當作是一個互動式的電子書的角度來重新認識這個系統.也是一種樂趣.
如果SCUMM所搭配的遊戲檔案為CD版本的.可能會有全程語音的表現.如當年有認真的把這SCUMM的遊戲認真玩過幾個.在英語的閱讀跟聽力上,應該是有一定程度的進步.
目前在Goolge play可以找到這個模擬器.
https://play.google.com/store/apps/details?id=org.scummvm.scummvm
用手機玩,搭配當年的解析的表現,真的是恰如其分.
回頭來看20年前的遊戲.內容上很精緻.只是差在現今的繪圖技術更進步了.
或許是人老了總是念舊.對於當年只能在電腦遊戲雜誌看到的作品.又能在現今的電腦上復活.
甚至可以帶著玩.真是的老宅男的一個大享受啊!
分享一下網路資源給大家.使用教學方面就請大家自行看WiKi操作囉.
SCUMM WiKi http://wiki.scummvm.org/index.php/Main_Page
模擬器下載 http://scummvm.org/downloads/
SCUMM遊戲清單 http://www.emuparadise.me/ScummVM_Games/21
2015年8月11日 星期二
上課恐懼症
目前我女兒已經自己作主 晚上不跟爸媽一起睡了.哇~提早獨立了.這好像是好事.但這麼小就有個性,以後長大會不會翹家啊,哪天交個男友就不要爸爸媽媽了.這是我現在感到害怕的隱憂.
再來已經兩天不理爸爸了.不跟爸爸說話,只有說再見的時候會說掰掰.天啊!!我被我女兒甩了.試問一下有沒有身為家長的被自己女兒關門的.他才三歲呢.嗚~後來問為啥不理爸爸,寧寧只說,爸爸好兇.
看來,我要找瑄瑄求證一下,真的爸爸很兇嗎?還是寧寧以為去幼稚園是爸爸逼的.
話說回來,我還記得小時候我幼稚園上娃娃車也是很想哭,但是不敢哭出來.直到認識兩個同學之後.有了玩伴才開始喜歡上學的.希望寧寧這禮拜能交到朋友,看能不能改善一下他的心情.
2015年8月4日 星期二
老大上學第一天
殊不知.這是練習團體生活的開始.新的挑戰呢.
平時去公園盪鞦韆都被年長的孩童搶走,幼稚園的盪鞦韆沒用.這時的寧寧實在忍不住,進了教室之後又跑出來玩.不過這也是因為爸媽縱容.沒有父母在的話,校方是不允許孩童獨自玩耍的.
經由媽媽的側拍 觀察到其實小孩子的適應能力很強 很快就玩再一起了.
公園真的是小朋友的好朋友啊.
^_^ 瑄瑄也愛去公園呢.
PS.拿到何嘉仁的綠色背包後,發現寧寧其實還蠻小隻的.
2015年7月27日 星期一
挑幼稚園也是很難的
大女兒現在也差不多該給他找個接觸社會了.整理了一下方圓一里內的幼稚園如下.
- 來來是採用何嘉仁系統的,強項是外語.校內許多外籍老師.學費貴,但校園乾淨.
走廊都有開冷氣.這有點高檔
https://www.facebook.com/pages/%E4%BD%95%E5%98%89%E4%BB%81%E5%9C%8B%E9%9A%9B%E5%B9%BC%E6%A0%A1-%E8%98%86%E6%B4%B2%E5%88%86%E6%A0%A1/177572538969746?pnref=lhc - 燕翔是功學社開的,音樂,藝術的引導應該是強項.
- 北大號稱是森林幼稚園.果然很多樹.走在校園內很舒服,缺點是被蚊蟲叮了.
不過體驗大自然本來就是要有這些習慣這一點. - 普薪跟佳佳安都說是採用蒙特梭利的教學.主題式的,會有混齡的課程.課程規劃變化多端.
上述的學校跑跑跳跳後,看起來有操場對小孩的魅力無窮.來來跟北大有很棒的跑跳空間.我家兩姊妹玩得很開心.幼稚園好像就是一個開心樂園一樣.
其實看完了之後.只有一個感覺.小孩真的好幸福,不論哪個學校都是有老師貼心的指導.就看父母親的經濟實力到哪裡囉.想像一下如果只有 22K的人, 租房後還要養小孩 光是幼稚園的費用真的就可以逼人上吊了.不論怎樣,咬緊牙給小孩的教育,無非就是希望用教育能改善現實上可能父母親的不足.或許在耐性上,語言能力上或是藝術性上沒有辦法給予小孩一個很好的學習典範,但到了一個新的環境,或許同儕的刺激.小孩會有多得到一些在原生家庭所無法得到的啟發.
過去我的母親也為了我的幼稚園煩惱過,育航有很棒的戶外空間,玩到我摔斷左手打上石膏.育達附幼雖說是室內的,但給我在音樂上的刺激,口琴.手風琴,鼓.雖說玩得很開心.但好像也沒有真的在音樂上有一番成就.不論結果如何,出發點都是愛.或許看起來揠苗助長.但又何嘗不是愛的負擔呢~
2015年7月26日 星期日
2015年7月19日 星期日
兒童口琴 S-15
小時候不懂事,還用過刀片去清除上面的貼紙.因為幼稚園老師有貼一些色紙在上面.用顏色來教學.但當時我壓根搞不懂1234.印象中就是胡亂吹.反正在樂隊裡面濫竽充數.
後來上了高中,因為離開管樂社後,沒有自己的Saxophone,真的會嘴癢,於是就找出來玩.發現這樂器真的很有趣.也是簧片發聲,摸索一個晚上後,了解到音階跟呼氣 吸氣的關係後,很快就上手了.當然也很快的就不滿足於單簧,C調,不久之後請教口琴社的朋友才知道,#記號要第二把,很快的就改用雙把.在上大學之前這便宜的樂器真的滿足了我離開管樂社的遺憾.
甚至還影響了兩位高中同學.也買了口琴來吹.音樂課得時候有表演過 秋蟬. 以及一些英文老歌.
這雖有30年了,現在還是能用,小朋友吵鬧的時候.隨時來一曲 小星星 兩隻老虎都很好用的工具.小朋友對於聲音其實蠻敏銳的.
寧寧 大概在一歲開始就很好奇,會搶口琴,且為啥一定要在爸爸用才會有音樂出來.
到目前還想不通.
瑄瑄呢~~還不會想.只是聽到音樂會轉圈圈沒想過要搶下爸爸的口琴來玩.
三十年後.換我買給我的孩子 一人一把.
這口琴不貴 品牌是Suzuki..有趣吧!
包裝上變化不大,日本人真守舊.或是說這產品真的30年不變,打開內容物,哇!除了塑膠盒上的字樣少了燙金.真的一模一樣啊.其實Yamaha也有類似的兒童口琴.
我還記的當年拆封也是這樣的塑膠包裝.為啥會記得,因為我拆開的時候把塑膠弄破,收起來的時候再難過為啥沒法包的新的一樣.直到我母親把塑膠紙丟掉.我才知道那可以丟掉.如果說處女座龜毛,這點我倒是挺認同的.
東西都有了.剩下就是慢慢教了.學齡前就開始玩口琴會不會太過分呢??
2015年7月14日 星期二
My MotoRun 鍵盤控制 遠端版本
有人會問說,那為啥在shell mode下執行是可行的.
這需要解釋一下,因為目前Raspberry Pi所提供的OS,看是文字模式,但左上角有出現四顆樹莓吧.且畫面解析度跟螢幕有關.其實這是圖形化界面的sheel mode.也就是俗稱的Frame Buffer.因此上一版的程式會在Frame Buffer下建立一個視窗,但沒有寫結束關閉視窗的控制,所以會有無法離開程式的窘境.這部分未來是可以優化的.
不過當使用putty進行telent 登入後.這時就很殘酷了.那美美的字型跟樹莓圖案都看不到了.
那之前寫的code怎麼辦.的確.在純文字介面下.pygame會無用武之地
因此需要使用curses的函式來取代pygame
定義上 前後左右方向的設定是一樣的 但停車就需要定義按鍵了 在此定義為p
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import curses
# Use physical pin numbers
GPIO.cleanup()
GPIO.setmode(GPIO.BOARD)
# Set up header 4 GPIO pin as an input
PinIN1 = 31 # GPIO6 as IN1
PinIN2 = 33 # GPIO13 as IN2
PinIN3 = 35 # GPIO19 as IN3
PinIN4 = 37 # GPIO26 as IN4
GPIO.setup(PinIN1, GPIO.OUT)
GPIO.setup(PinIN2, GPIO.OUT)
GPIO.setup(PinIN3, GPIO.OUT)
GPIO.setup(PinIN4, GPIO.OUT)
def InitialMoto():
GPIO.output(PinIN1, False)
GPIO.output(PinIN2, False)
GPIO.output(PinIN3, False)
GPIO.output(PinIN4, False)
def TurnRight():
GPIO.output(PinIN1, False)
GPIO.output(PinIN2, True)
GPIO.output(PinIN3, False)
GPIO.output(PinIN4, True)
def TurnLeft():
GPIO.output(PinIN1, True)
GPIO.output(PinIN2, False)
GPIO.output(PinIN3, True)
GPIO.output(PinIN4, False)
def Backward():
GPIO.output(PinIN1, False)
GPIO.output(PinIN2, True)
GPIO.output(PinIN3, True)
GPIO.output(PinIN4, False)
def Fordward():
GPIO.output(PinIN1, True)
GPIO.output(PinIN2, False)
GPIO.output(PinIN3, False)
GPIO.output(PinIN4, True)
def StopMoving():
GPIO.output(PinIN1, False)
GPIO.output(PinIN2, False)
GPIO.output(PinIN3, False)
GPIO.output(PinIN4, False)
print('Start Test')
stdscr = curses.initscr()
stdscr.keypad(1)
stdscr.addstr(0,10,"Hit 'q' to quit")
stdscr.refresh()
key = ''
InitialMoto()
while key != ord('q'):
key = stdscr.getch()
stdscr.addch(20,25,key)
stdscr.refresh()
if key == curses.KEY_DOWN: # Backward
stdscr.addstr(3, 20, "Down")
Backward()
print('Down')
elif key == curses.KEY_UP: # Fordward
stdscr.addstr(2, 20, "Up")
Fordward()
print('Up')
elif key == curses.KEY_RIGHT: # Turn Right
stdscr.addstr(3, 25, "Right")
TurnRight()
print('Right')
elif key == curses.KEY_LEFT: # Turn Left
stdscr.addstr(3, 15, "Left")
TurnLeft()
print('Left')
elif key == ord('p'):
StopMoving()
curses.endwin()
# clock.tick(20)
2015年7月12日 星期日
Thread on Python
Thread線程.https://zh.wikipedia.org/wiki/%E7%BA%BF%E7%A8%8B
在Python叫作Threading…啥!挽面的英文被我學到了.
http://www.wikihow.com/Do-Threading
Wiki上有他的解釋.但非資訊的背景 是有看沒有懂.
概念上大概可以實現,利用線程同一時間內執行多道程序.
搞這要做啥.想要把現在 遙控車 變成 智慧遙控車.
在被遙控的當下 本體可以針對環境的影響做出反應.
比如說.
1.撞牆前 緊急剎車 不理會遙控者的指令.
2.遇到人體紅外線反應 會作出到退轉或是 迴避動作 避免撞人.
3.顯示的字幕的迴圈 與 遙控的迴圈 分別運行
想法是這樣..但要花點時間去研究.要讓這部車成為 霹靂車 還有聲控 跟 遠端錄影的課題要繼續念下去….一步步來吧.
PS.發現一個Blog有在分享Thread…真是太好了.
http://skiesblog.blogspot.tw/search/label/python
2015年7月9日 星期四
My MotoRun 鍵盤控制版本
shell mode下 驅動mouse定義winodws size,應該是可以的.要花點時間.
現在腦袋跳出來的想法是透過Frame Buffer.不過….應該可以WiFi遙控?
(都要IOT了,靠藍芽遙控一點都沒有Internet on thing的feeling).
使用Putty,藉由telnet login後.利用WiFi控制呢.
如可行 亦可以使用Smartphone連線操作.
以下版本是用 鍵盤上下左右按鍵 做為控制的版本 但尚未完成,不清楚telent是否能控制,擔心需要使用到Xwindow…
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import pygame
# Use physical pin numbers
GPIO.cleanup()
GPIO.setmode(GPIO.BOARD)
# Set up header 4 GPIO pin as an input
PinIN1 = 31 # GPIO6 as IN1
PinIN2 = 33 # GPIO13 as IN2
PinIN3 = 35 # GPIO19 as IN3
PinIN4 = 37 # GPIO26 as IN4
GPIO.setup(PinIN1, GPIO.OUT)
GPIO.setup(PinIN2, GPIO.OUT)
GPIO.setup(PinIN3, GPIO.OUT)
GPIO.setup(PinIN4, GPIO.OUT)
def InitialMoto():
GPIO.output(PinIN1, False)
GPIO.output(PinIN2, False)
GPIO.output(PinIN3, False)
GPIO.output(PinIN4, False)
def TurnRight():
GPIO.output(PinIN1, False)
GPIO.output(PinIN2, True)
GPIO.output(PinIN3, False)
GPIO.output(PinIN4, True)
def TurnLeft():
GPIO.output(PinIN1, True)
GPIO.output(PinIN2, False)
GPIO.output(PinIN3, True)
GPIO.output(PinIN4, False)
def Backward():
GPIO.output(PinIN1, False)
GPIO.output(PinIN2, True)
GPIO.output(PinIN3, True)
GPIO.output(PinIN4, False)
def Fordward():
GPIO.output(PinIN1, True)
GPIO.output(PinIN2, False)
GPIO.output(PinIN3, False)
GPIO.output(PinIN4, True)
def StopMoving():
GPIO.output(PinIN1, False)
GPIO.output(PinIN2, False)
GPIO.output(PinIN3, False)
GPIO.output(PinIN4, False)
pygame.init()
print('Start Test')
pygame.display.set_caption('Keyboard Example')
size= [640, 480]
screen= pygame.display.set_mode(size)
InitialMoto()
while True:
pygame.event.get()
key=pygame.key.get_pressed()
if key[pygame.K_DOWN] ==0 and key[pygame.K_UP] == 0 and key[pygame.K_RIGHT] == 0 and key[pygame.K_LEFT] == 0:# Stop Moving
StopMoving()
print('No Pressed')
if key[pygame.K_DOWN] !=0: # Backward
Backward()
print('Down')
if key[pygame.K_UP] != 0: # Fordward
Fordward()
print('Up')
if key[pygame.K_RIGHT] != 0: # Turn Right
TurnRight()
print('Right')
if key[pygame.K_LEFT] != 0: # Turn Left
TurnLeft()
print('Left')
pygame.display.update()
# clock.tick(20)
2015年7月8日 星期三
pygame.mouse動作測試
網路資源很多,很快就搜尋到別人寫的pygame.mouse的code.
https://sivasantosh.wordpress.com/2012/07/18/mouse-handling-in-pygame/
但看來得需要視窗化的環境才能運作,且運作範圍在開啟的視窗內.難怪我上一篇blog是失敗的…
下圖是執行畫面.右邊的視窗是screen= pygame.display.set_mode(size) 開啟的視窗
滑鼠的按鍵動作 以及 指標位置 需在視窗內才會有反應.
原始碼如下
import pygame, sys
white= (255, 255, 255)
black= (0, 0, 0)
pygame.init()
pygame.display.set_caption('Mouse Example')
size= [640, 480]
screen= pygame.display.set_mode(size)
clock= pygame.time.Clock()
# make os mouse pointer icon invisible
pygame.mouse.set_visible(False)
while True:
for event in pygame.event.get():
if event.type== pygame.QUIT:
pygame.quit()
sys.exit()
# print if mouse is pressed.
# get_pressed() tells you which mouse button is pressed
if event.type== pygame.MOUSEBUTTONDOWN:
print ('mouse pressed',pygame.mouse.get_pressed())
# print if mouse is released.
elif event.type== pygame.MOUSEBUTTONUP:
print ('mouse released', pygame.mouse.get_pressed())
# print if mouse is in motion.
# get_rel() - Returns the amount of movement in X and Y since the previous call to this function.
if event.type== pygame.MOUSEMOTION:
print ('mouse is moving', pygame.mouse.get_rel())
screen.fill(white)
# draw a circle around the mouse pointer
pos= (pygame.mouse.get_pos()[0], pygame.mouse.get_pos()[1])
pygame.draw.circle(screen, black, pos, 10, 0)
pygame.display.update()
clock.tick(20)
2027日本旅遊行程規劃
這回還是請出厲害的Grok + Chatgpt 兩位大神一起討論旅遊計畫,以下是討論結果 京阪神 6 天 5 夜 家族溫馨祈福之旅計畫書( 2027 年 1 月 23 日~ 28 日 國泰版) 四大兩小(含 65 歲長輩與國中生)|住一黑門酒店|全程大眾交通|體力優...
-
網路上真的可以找到很多想不到的資訊,光是靠Google搜尋圖片.就可以找到答案了. 汽車換下來音響主機,該如何處理,有了Pin Define後就可以開始規劃了. 首先是上網查類似的資訊…看來Toyota的Connector的相關位置都是一樣的.即便是不同的型號,或是廠商.因為下圖...
-
資料來源.以下文章為轉錄文章 http://tieba.baidu.com/p/3625474524 法國的愛好者整合的 recalboxOS是一個開源的作業系統。基於Linux發行版本,為RaspberryPI的ARM處理器進行了優化,集合多個街機和掌機家機模擬器。 rec...