先前一個不注意, 將 mysql 的某個 db 回復為前一天的狀態, 造成當天的資料全部被清除,
還好找到可以利用 mysql 的 binlog 找出某個時間點的異動資料, 之後再回存回去的方式.
example:
mysqlbinlog --database=xxx --start-datetime="2014-11-17 9:00:00" --stop-datetime="2014-11-17 23:00:00" /var/lib/mysql/bin.yyyy > xxx.sql
先再檢查一下 xxx.sql, 沒問題就可回存回去了.
星期一, 11月 17, 2014
星期四, 11月 13, 2014
jqgrid 的 sortableRows
在 jqgrid 中加上
jQuery("#grid").jqGrid('sortableRows',{
update :function(e, ui) {
var item = ui.item[0];
var ri = item.rowIndex;
var itemId = item.id;
var pos, newpos, uid;
//
var rowId = this.rows[ri].id;
var rowData = jQuery('#grid').jqGrid('getRowData', rowId);
...
}
即可讓使用者利用滑鼠拖拉方式來調整資料的順序,
但發現用此方法, 會對 trigger("reloadGrid") 造成重新載入資料後, 資料欄位寬度會變不對齊,
因此建議改用
jQuery("#grid").jqGrid('GridUnload');
的方式來處理, 就不會發生此種現象.
jQuery("#grid").jqGrid('sortableRows',{
update :function(e, ui) {
var item = ui.item[0];
var ri = item.rowIndex;
var itemId = item.id;
var pos, newpos, uid;
//
var rowId = this.rows[ri].id;
var rowData = jQuery('#grid').jqGrid('getRowData', rowId);
...
}
即可讓使用者利用滑鼠拖拉方式來調整資料的順序,
但發現用此方法, 會對 trigger("reloadGrid") 造成重新載入資料後, 資料欄位寬度會變不對齊,
因此建議改用
jQuery("#grid").jqGrid('GridUnload');
的方式來處理, 就不會發生此種現象.
星期六, 8月 17, 2013
List of open source Android game Engine
http://ramkumarhelios.blogspot.in/2012/12/list-of-open-source-android-game-engine.html
For creating games in android, there are some supporting open source android game engine which are listed below
1.jMonkey Engine(Java based 3D Game Engine)
http://jmonkeyengine.org/
2.YoghurtGum(Android Game Engine)
https://code.google.com/p/yoghurtgum/
3.Catcake(Android Game Engine)
https://code.google.com/p/catcake/
4.jPCT-AE(Android Game 3D Engine)
http://www.jpct.net/jpct-ae/
5. Dwarf-fw(Android 3D Framework)
https://code.google.com/p/dwarf-fw/
6.Mages(Android Game Engine)
https://code.google.com/p/mages/
7.Angle(Android Game Engine)
https://code.google.com/p/angel-engine/
8.Shiva3d(Android Game Engine)
http://www.stonetrip.com/
9. Unity3d
http://unity3d.com/
10.E3Droid
http://www.e3roid.com/
11.LibGDX
https://code.google.com/p/libgdx/
12.Dxstudio
http://www.dxstudio.com/index.aspx
13.CuttleFishEngine(2D)
http://www.masonmc.com/2012/mkdir-cuttlefish2/
14.Rokon 2D game engine
https://code.google.com/p/rokon/
15. Corona Game Edition
http://www.coronalabs.com/products/corona-sdk/
16. cocos2d-x
http://www.cocos2d-x.org/
星期日, 7月 14, 2013
星期二, 7月 09, 2013
Android Volume Control
AudioManager mAudioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
int current_volume =mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//If you want to player is mute ,then set_volume variable is zero.Otherwise you may supply some value.
int set_volume=0;
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,set_volume, 0);
Android hide a view after a few seconds
Spawn a separate thread that sleeps for 3 seconds then call runOnUiThread to hide the view.
Thread thread = new Thread() {
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
runOnUiThread(new Runnable() {
@Override
public void run() {
// Do some stuff
}
});
}
};
Android different ways to handle clicks
http://www.remwebdevelopment.com/dev/a69/Different-Ways-To-Handle-Clicks.html
When I first started learning Android,
I found it a little confusing because there are often many different ways to accomplish a single task.
In my case, I did not have a strong background in Java,
otherwise it probably would have been easier for me to look at code samples an recognize these variations.
The most obvious example of alternative approaches to solving a single problem seems to be the various ways you can handle button clicks.
As far as I know, there are four different ways to add listeners for handling button clicks.
If you know of other ways, please post a comment and share them with us.
Here's a simple application that demonstrates four approaches to handling button clicks.
When you click on any of the buttons, an alert will show up on the screen.
There are two files of interest.
The first is the main xml layout file, which has four buttons in it.
This code should look familiar to you, except for the last button.
A new feature was added in Android 2.1 (API Level 7) which allows you to specify an onClick listener from within the xml layout file.
Here's the xml layout file for our sample application...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button android:text="Inner Class (btn1)" android:id="@+id/Button01"
android:layout_width="fill_parent" android:layout_height="wrap_content">
</Button>
<Button android:text="Anonymous Inner Class (btn2)"
android:id="@+id/Button02" android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
<Button android:text="Implementing an Interface (btn3)"
android:id="@+id/Button03" android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
<Button android:text="Calling From XML Layout (btn4)"
android:id="@+id/Button04" android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="btn4Listener">
</Button>
</LinearLayout>
And here's the main class for our application...
package com.remwebdevelopment.samples.eventhandlers;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
I found it a little confusing because there are often many different ways to accomplish a single task.
In my case, I did not have a strong background in Java,
otherwise it probably would have been easier for me to look at code samples an recognize these variations.
The most obvious example of alternative approaches to solving a single problem seems to be the various ways you can handle button clicks.
As far as I know, there are four different ways to add listeners for handling button clicks.
If you know of other ways, please post a comment and share them with us.
Here's a simple application that demonstrates four approaches to handling button clicks.
When you click on any of the buttons, an alert will show up on the screen.
There are two files of interest.
The first is the main xml layout file, which has four buttons in it.
This code should look familiar to you, except for the last button.
A new feature was added in Android 2.1 (API Level 7) which allows you to specify an onClick listener from within the xml layout file.
Here's the xml layout file for our sample application...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button android:text="Inner Class (btn1)" android:id="@+id/Button01"
android:layout_width="fill_parent" android:layout_height="wrap_content">
</Button>
<Button android:text="Anonymous Inner Class (btn2)"
android:id="@+id/Button02" android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
<Button android:text="Implementing an Interface (btn3)"
android:id="@+id/Button03" android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
<Button android:text="Calling From XML Layout (btn4)"
android:id="@+id/Button04" android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="btn4Listener">
</Button>
</LinearLayout>
And here's the main class for our application...
package com.remwebdevelopment.samples.eventhandlers;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Main extends Activity implements View.OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//method 1 - uses an inner class named btn1Listener...
Button btn1 = (Button)findViewById(R.id.Button01);
btn1.setOnClickListener(btn1Listener);
//method 2 - use an anonymous inner class as a listener...
Button btn2 = (Button)findViewById(R.id.Button02);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showToastMessage("You clicked btn2 - uses an anonymouse inner class");
}
});
//method 3 - note that this class implements
//the View.OnClickListener interface
//which means that we must implement the onClick()
//method (which you'll find below)..
Button btn3 = (Button)findViewById(R.id.Button03);
btn3.setOnClickListener(this);
//method 4 - look at the method btn4Listener() below
}
//here's the inner class used as a listener for btn1...
private View.OnClickListener btn1Listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
showToastMessage("You clicked btn1 - uses an inner class named btn1Listener");
}
};
//here's a method that you must have when your activity implements the
//View.OnClickListener interface...
@Override
public void onClick(View v) {
showToastMessage("you clicked on a btn3, which uses this Activity as the listener");
}
//here's the handler for btn4 (declared in the xml layout file)...
//note: this method only works with android 2.1 (api level 7), it must be public and
//must take a single parameter which is a View
public void btn4Listener(View v) {
showToastMessage("You clicked btn4 - listener was set up in the XML layout");
}
private void showToastMessage(String msg){
Toast toast = Toast.makeText(this, msg, Toast.LENGTH_SHORT);
toast.show();
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//method 1 - uses an inner class named btn1Listener...
Button btn1 = (Button)findViewById(R.id.Button01);
btn1.setOnClickListener(btn1Listener);
//method 2 - use an anonymous inner class as a listener...
Button btn2 = (Button)findViewById(R.id.Button02);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showToastMessage("You clicked btn2 - uses an anonymouse inner class");
}
});
//method 3 - note that this class implements
//the View.OnClickListener interface
//which means that we must implement the onClick()
//method (which you'll find below)..
Button btn3 = (Button)findViewById(R.id.Button03);
btn3.setOnClickListener(this);
//method 4 - look at the method btn4Listener() below
}
//here's the inner class used as a listener for btn1...
private View.OnClickListener btn1Listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
showToastMessage("You clicked btn1 - uses an inner class named btn1Listener");
}
};
//here's a method that you must have when your activity implements the
//View.OnClickListener interface...
@Override
public void onClick(View v) {
showToastMessage("you clicked on a btn3, which uses this Activity as the listener");
}
//here's the handler for btn4 (declared in the xml layout file)...
//note: this method only works with android 2.1 (api level 7), it must be public and
//must take a single parameter which is a View
public void btn4Listener(View v) {
showToastMessage("You clicked btn4 - listener was set up in the XML layout");
}
private void showToastMessage(String msg){
Toast toast = Toast.makeText(this, msg, Toast.LENGTH_SHORT);
toast.show();
}
}
星期三, 6月 19, 2013
Check Internet is Available in Android Device
http://capycoding.blogspot.tw/2012/10/check-internet-is-available-in-android.html
public boolean check_Internet(Context mContext)
{
ConnectivityManager mConnectivityManager =
(ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager
.getActiveNetworkInfo();
if (mNetworkInfo != null && mNetworkInfo.isConnectedOrConnecting())
return true;
else
return false;
}
星期二, 5月 07, 2013
eyes on me
這首歌一直是我最愛的歌之一, 百聽不膩,
歌曲意境很感人, 而 FF8 的故事情節更是令人動容.
Whenever sang my songs
on the stage on my own
Whenever said my words
Wishing they would be heard
I saw you smiling at me
Was it real or just my fantasy
You'd always be there in the corner of this tiny little bar
My last night here for you
same old songs just once more
My last night here with you
Maybe Yes Maybe No
I kind of liked it your way
How you shyly placed your eyes on me
Did you ever know that I had mine on you?
Darling So there you are
with that look on your face
As if you've never hurt
As if you've never down
Shall I be the one for you
Who pinches you softly but sure
If frown is shown then
I will know that you are no dreamer
So let me come to you
Close as I wanted to be
Close enough for me to feel your heart beating fast
and stay there as I whisper
How I loved your peaceful eyes on me
Did you ever know that I had mine on you?
Darling So share with me
your love if you have enough
your tears if you're holding back
of pain If that's what it is
How can I let you know
I'm more than the dress and the voice
Just reach me out then you will know that you're not dreaming
=============================================
http://www.ptt.cc/bbs/FayeWong/M.1237403583.A.253.html
此首歌的故事背景是一個名叫做Julia的女子在鋼琴酒吧演奏鋼琴,
後來他發現有個男子常常來聽她演奏。
兩人從沒攀談過,亦不認識,只是一直保持這樣的關係。
男子名叫Laguna,是這個小邦國的士兵,他並不喜歡當軍人,但他喜歡旅行,當軍人可以四處去看看,
且他有兩個同為軍人的好友,讓他並不無聊。
Laguna是個糊塗且有趣的人,在戰場上會帶錯地圖,且常常迷路,但他的朋友皆十分喜歡他。
這天他剛結束一個任務,一如往常的來聽Julia彈琴,她彈的即是〈eyes on me〉。
他的朋友鼓勵他去與Julia攀談,然而當Laguna鼓起勇氣走向前時,居然緊張到腳抽筋了,只好無奈的走回座位。
他的朋友正誇獎她有進步的時候,Julia已一曲彈完,從舞台走了下來。
她對拉格那說,發現他常常來這裡,並且總是坐著一樣的位子。
最後Julia邀請Laguna去 她的房間。那晚他們談了些各自的願望,
Laguna說他希望能夠當一名記者,四處遊山玩水並且寫下這些東西。
Julia則說自己的願望是當一名歌手。
她已寫好了〈eyes on me〉的曲,只是遲遲寫不出歌詞。
等到寫好了歌詞,她便要發表。他們並且還聊了許多事情,於是一晚過去了。
一次Laguna出任務,結果與朋友們皆重傷,他被帶到一個小村莊療養,在那兒並且遇見了Caraway,
Caraway的照料讓他漸漸喜歡上這個地方,便在這個村子待下去了。
某天他的一 個朋友來探望他。Laguna問起了關於Julia的事,朋友對他說,Julia遲遲等著Laguna,然而一切無消無息。
她以為Laguna已在任務中喪生了。
後來Julia終於完成了那首歌,〈eyes on me〉,發表後旋即成為當紅歌手,並下嫁一位高級官員。
Laguna聽著這些消息,只能一陣惆悵。
他娶了Caraway,然而Caraway過幾年即病逝,最後Laguna成為了記者,四處旅行。
-- 跟〈eyes on me〉有關的劇情大致上就這些。
王菲的歌詞中許多是那晚他們的對話內容,例如dreamer,那晚的對話便是如此提到。
整首歌歌詞是Julia形容Laguna的字句。
而 Final Fantasy VIII 的男主角史克爾即是Laguna與Caraway的兒子, 而女主角莉諾亞即是Julia的女兒.
==================================================
http://home.gamer.com.tw/creationDetail.php?sn=860190
Final Fantasy VIII OP
I'll be here...(我在這裡)
Why...?(為什麼?)
I'll be wating...here...(我會在這裡等著)
For what...?(為了什麼?)
I'll be waitig...for you...so...(我會在這裡等你...所以...)
If you come here...(如果你來到這)
You'll find me.(你會找到我)
I promise.(我保證)
在開頭動畫
我們看到的這些話
道盡了劇情的主軸
也對於劇情有了重大的暗示
從FINAL FANTASY VIII的logo上面
我們可以清楚的看到史克爾擁抱著莉諾亞
也就是代表著
這一代的FINAL FANTASY
是在敘述一段關於愛的故事
但是我認為
這一段Love Story並不是一段很完美的故事
反而蘊含著悲傷的輪迴
史克爾他一開始的沉默寡言與對許多事物的漠不關心
在遇到了熱情活潑的莉諾亞之後開始有了轉變
慢慢的也開始接受了她
一切從最早的舞會開始
印象中的一段劇情
讓我深刻感受到了史克爾的轉變
莉諾亞:我做了一個夢,夢到我變成了魔女,Seed會來殺了我,
而Seed的領導者就是史克爾。
史克爾:如果妳變成了魔女,我就會成為魔女的騎士,也就是你的騎士。
莉諾亞:我做了一個夢,在夢裡,不管我怎麼找就是找不到史克爾。
史克爾:妳會找不到我,是因為我們沒有好好的約定,只要你到了那個地方,
妳就一定會找到我,我保證。
到最後
莉諾雅真的繼承了魔女之力成為了魔女
而與史克爾一起去打倒未來的魔女阿爾緹米西雅
在最後與阿爾緹米西雅的決戰中
阿爾緹米西雅對史克爾說了一段話
回想起你的童年......
你的感覺.....
你的話語.....
時間.....
永遠不會等待.....
不管你如何的去抓緊.....
它還是會流逝.....
其實在我遊玩時
都覺得這些沒什麼異狀
但是在專版看到許多關於
阿爾緹米西雅=莉諾雅的一些論點之後
這些劇情讓我差點留下眼淚
以下為我對於阿爾緹米西雅=莉諾雅這件事情的一些想法
莉諾亞繼承了魔女之力之後
獲得了不老不死的生命
但是史克爾是正常人
所以在時光的流逝中
慢慢的老死
只留下莉諾雅一個人獨活
由於魔女之力所以有不死的生命
而莉諾雅也不願意把魔女之力轉給別人
讓別人承受著跟自己一樣的痛苦
所以繼續孤獨的活著
慢慢的變成了阿爾緹米西雅
但是由於使用GF的關係
記憶一點一滴的消逝
只記得要在約定的地方等一個人
所以在約定的孤兒院後面建造了自己的城堡
卻忘記等的人是誰
也忘記等的那個人已經死了
或許曾經努力的想阻止他的死亡
但是最後還是失敗了
或許
最後阿爾緹米西雅也忘記了這件事情吧....
之後打算使用時間壓縮的魔法
想把現在、過去、未來全部串連再一起
或許就是想要等的那個人出現
最後....
真的等到了那個人的出現
史克爾帶著Seed來討伐阿爾緹米西雅
就跟夢裡面一樣....
而這件事就一直的輪迴著
史克爾不斷的討伐未來魔女
也就是他最摯愛的人
莉諾雅....
=========================================
真的好沉痛悲傷
以前一直都以為是單純的勇者討伐魔女的故事
但是知道是這樣沉重的命運輪迴之後
不禁讓我對於這FF8的故事有了另一種感受
原來Happy end的背後有著悲傷的輪迴
史克威爾的劇情安排真的很巧妙
另外
這遊戲也是系列第一款有請明星來演唱主題曲
也就是在請我們華人裡面的天后王菲來演唱的
歌聲悠揚且令人動容
這首歌的歌詞在我聽來
彷彿是在敘述史克爾的父親拉格納與母親蕾茵的故事
玩過遊戲之後
對這歌詞更有感覺....
Eyes On Me
Whenever sing my songs
(不論在何時唱著我的歌)
On the stage on my own
(在舞台上也好,孤獨一個人也好)
Whenever said my words
(不管什麼時候說著我的話)
Wishing they would be heard
(一直希望能夠讓你聽見)
I saw you smiling at me
(望著你對我的笑容)
Was it real or just my fantasy
(不知道這是真實還是幻想)
You’d always be there in the corner
(你總是一如往日的出現在角落)
Of this tiny little bar…………………….
(在這狹小的小酒吧)
My last night here for you
(昨夜我為你守候了一晚)
Same old songs just once more
(一遍一遍唱著你我的歌曲)
My last night here with you?
(昨晚我真的為了你而在這裡嗎?)
Maybe yes maybe no
(也許是,也許不是)
I kind of liked it your way
(我好喜歡你的一切)
How you shyly placed your eyes on me
(你怎麼能夠用如此羞澀的眼神望著我)
Oh did you ever know?
(喔!你曾知道嗎?)
That I had mine on you……………….
(我的心早就屬於你)
Darling so there you are
(親愛的,所以你就在那裡)
With that look on your face
(讓我好好的看著你)
As if you’re never hurt
(就當你從不受傷)
As if you’re never down
(就當你從不跌倒)
Shall I be the one for you
(讓我成為你的一部份,好嗎?)
Who pinches you softly but sure
(誰溫柔但是卻傷了你呢?)
If frown is shown then
(如果為了挫折就皺眉的話)
I will know that you are no dreamer…………………,
(我會認為你是沒有夢想的人)
So let me come to you
(所以,讓我奔向你)
So let me come to you
(所以,讓我奔向你)
Close as I wanted to be
(像我所想像的去接近你)
Close enough for me
(盡量的靠近我)
To feel your heart beating fast
(讓我去感受你快速的心跳)
And stay there as I whisper
(留在那裡,當我低語時)
How I loved your peaceful eyes on me
(我是如此愛你用溫柔的的眼神看著我)
Did you ever know
(你是否明瞭)
That I had mine on you
(我的心早就屬於你)
Dailing, so share with me
(親愛的,跟我分享你的所有)
Your love if you have enough
(與你一起分享足夠的愛)
Your tears if you're holding back
(當你心情不好時,我會和你一同分擔)
Or pain if that's what it is
(或不管什麼痛苦,我與你承擔)
How can I let you know
(要如何才能讓你知道)
I'm more than the dress and the voice
(華麗的外表和動人的聲音都不夠形容我)
Just reach me out then
(只管放心的到我身邊)
You will know that you're not dreaming
(你會明瞭這不只是一場夢)
Darling so there you are
(親愛的,所以你就在那裡)
With that look on your face
(讓我好好的看著你)
As if you’re never hurt
(就當你從不受傷)
As if you’re never down
(就當你從不跌倒)
Shall I be the one for you
(讓我成為你的一部份,好嗎?)
Who pinches you softly but sure
(誰溫柔但是卻傷了你呢?)
If frown is shown then
(如果為了挫折就皺眉的話)
I will know that you are no dreamer…………………,
(我會認為你是沒有夢想的人)
=========================================
就像我以前常常說的
經典的東西
不管過了多久
都會長留在我們心中
FINAL FANTASY最終幻想
每一部都是經典
也難怪每一款都有不錯的成績
但是呢
幻想並沒有結束
人因為有幻想才會讓世界更美好
遊戲也一樣
隨著幻想的劇情
把我們帶入那幻想中的氛圍
是一件美好的事情
這也就是RPG容易懹人感動的地方
1999年到2009年
10年之後在回味一次
FF8給了我不同的感受
經典的遊戲
不管過了多久
依然有它經典的地方
或許再過10年
我再一次回味時
相信一樣可以帶給我相同的感動~
以上~
歌曲意境很感人, 而 FF8 的故事情節更是令人動容.
Whenever sang my songs
on the stage on my own
Whenever said my words
Wishing they would be heard
I saw you smiling at me
Was it real or just my fantasy
You'd always be there in the corner of this tiny little bar
My last night here for you
same old songs just once more
My last night here with you
Maybe Yes Maybe No
I kind of liked it your way
How you shyly placed your eyes on me
Did you ever know that I had mine on you?
Darling So there you are
with that look on your face
As if you've never hurt
As if you've never down
Shall I be the one for you
Who pinches you softly but sure
If frown is shown then
I will know that you are no dreamer
So let me come to you
Close as I wanted to be
Close enough for me to feel your heart beating fast
and stay there as I whisper
How I loved your peaceful eyes on me
Did you ever know that I had mine on you?
Darling So share with me
your love if you have enough
your tears if you're holding back
of pain If that's what it is
How can I let you know
I'm more than the dress and the voice
Just reach me out then you will know that you're not dreaming
=============================================
http://www.ptt.cc/bbs/FayeWong/M.1237403583.A.253.html
此首歌的故事背景是一個名叫做Julia的女子在鋼琴酒吧演奏鋼琴,
後來他發現有個男子常常來聽她演奏。
兩人從沒攀談過,亦不認識,只是一直保持這樣的關係。
男子名叫Laguna,是這個小邦國的士兵,他並不喜歡當軍人,但他喜歡旅行,當軍人可以四處去看看,
且他有兩個同為軍人的好友,讓他並不無聊。
Laguna是個糊塗且有趣的人,在戰場上會帶錯地圖,且常常迷路,但他的朋友皆十分喜歡他。
這天他剛結束一個任務,一如往常的來聽Julia彈琴,她彈的即是〈eyes on me〉。
他的朋友鼓勵他去與Julia攀談,然而當Laguna鼓起勇氣走向前時,居然緊張到腳抽筋了,只好無奈的走回座位。
他的朋友正誇獎她有進步的時候,Julia已一曲彈完,從舞台走了下來。
她對拉格那說,發現他常常來這裡,並且總是坐著一樣的位子。
最後Julia邀請Laguna去 她的房間。那晚他們談了些各自的願望,
Laguna說他希望能夠當一名記者,四處遊山玩水並且寫下這些東西。
Julia則說自己的願望是當一名歌手。
她已寫好了〈eyes on me〉的曲,只是遲遲寫不出歌詞。
等到寫好了歌詞,她便要發表。他們並且還聊了許多事情,於是一晚過去了。
一次Laguna出任務,結果與朋友們皆重傷,他被帶到一個小村莊療養,在那兒並且遇見了Caraway,
Caraway的照料讓他漸漸喜歡上這個地方,便在這個村子待下去了。
某天他的一 個朋友來探望他。Laguna問起了關於Julia的事,朋友對他說,Julia遲遲等著Laguna,然而一切無消無息。
她以為Laguna已在任務中喪生了。
後來Julia終於完成了那首歌,〈eyes on me〉,發表後旋即成為當紅歌手,並下嫁一位高級官員。
Laguna聽著這些消息,只能一陣惆悵。
他娶了Caraway,然而Caraway過幾年即病逝,最後Laguna成為了記者,四處旅行。
-- 跟〈eyes on me〉有關的劇情大致上就這些。
王菲的歌詞中許多是那晚他們的對話內容,例如dreamer,那晚的對話便是如此提到。
整首歌歌詞是Julia形容Laguna的字句。
而 Final Fantasy VIII 的男主角史克爾即是Laguna與Caraway的兒子, 而女主角莉諾亞即是Julia的女兒.
==================================================
http://home.gamer.com.tw/creationDetail.php?sn=860190
Final Fantasy VIII OP
I'll be here...(我在這裡)
Why...?(為什麼?)
I'll be wating...here...(我會在這裡等著)
For what...?(為了什麼?)
I'll be waitig...for you...so...(我會在這裡等你...所以...)
If you come here...(如果你來到這)
You'll find me.(你會找到我)
I promise.(我保證)
在開頭動畫
我們看到的這些話
道盡了劇情的主軸
也對於劇情有了重大的暗示
從FINAL FANTASY VIII的logo上面
我們可以清楚的看到史克爾擁抱著莉諾亞
也就是代表著
這一代的FINAL FANTASY
是在敘述一段關於愛的故事
但是我認為
這一段Love Story並不是一段很完美的故事
反而蘊含著悲傷的輪迴
史克爾他一開始的沉默寡言與對許多事物的漠不關心
在遇到了熱情活潑的莉諾亞之後開始有了轉變
慢慢的也開始接受了她
一切從最早的舞會開始
印象中的一段劇情
讓我深刻感受到了史克爾的轉變
莉諾亞:我做了一個夢,夢到我變成了魔女,Seed會來殺了我,
而Seed的領導者就是史克爾。
史克爾:如果妳變成了魔女,我就會成為魔女的騎士,也就是你的騎士。
莉諾亞:我做了一個夢,在夢裡,不管我怎麼找就是找不到史克爾。
史克爾:妳會找不到我,是因為我們沒有好好的約定,只要你到了那個地方,
妳就一定會找到我,我保證。
到最後
莉諾雅真的繼承了魔女之力成為了魔女
而與史克爾一起去打倒未來的魔女阿爾緹米西雅
在最後與阿爾緹米西雅的決戰中
阿爾緹米西雅對史克爾說了一段話
回想起你的童年......
你的感覺.....
你的話語.....
時間.....
永遠不會等待.....
不管你如何的去抓緊.....
它還是會流逝.....
其實在我遊玩時
都覺得這些沒什麼異狀
但是在專版看到許多關於
阿爾緹米西雅=莉諾雅的一些論點之後
這些劇情讓我差點留下眼淚
以下為我對於阿爾緹米西雅=莉諾雅這件事情的一些想法
莉諾亞繼承了魔女之力之後
獲得了不老不死的生命
但是史克爾是正常人
所以在時光的流逝中
慢慢的老死
只留下莉諾雅一個人獨活
由於魔女之力所以有不死的生命
而莉諾雅也不願意把魔女之力轉給別人
讓別人承受著跟自己一樣的痛苦
所以繼續孤獨的活著
慢慢的變成了阿爾緹米西雅
但是由於使用GF的關係
記憶一點一滴的消逝
只記得要在約定的地方等一個人
所以在約定的孤兒院後面建造了自己的城堡
卻忘記等的人是誰
也忘記等的那個人已經死了
或許曾經努力的想阻止他的死亡
但是最後還是失敗了
或許
最後阿爾緹米西雅也忘記了這件事情吧....
之後打算使用時間壓縮的魔法
想把現在、過去、未來全部串連再一起
或許就是想要等的那個人出現
最後....
真的等到了那個人的出現
史克爾帶著Seed來討伐阿爾緹米西雅
就跟夢裡面一樣....
而這件事就一直的輪迴著
史克爾不斷的討伐未來魔女
也就是他最摯愛的人
莉諾雅....
=========================================
真的好沉痛悲傷
以前一直都以為是單純的勇者討伐魔女的故事
但是知道是這樣沉重的命運輪迴之後
不禁讓我對於這FF8的故事有了另一種感受
原來Happy end的背後有著悲傷的輪迴
史克威爾的劇情安排真的很巧妙
另外
這遊戲也是系列第一款有請明星來演唱主題曲
也就是在請我們華人裡面的天后王菲來演唱的
歌聲悠揚且令人動容
這首歌的歌詞在我聽來
彷彿是在敘述史克爾的父親拉格納與母親蕾茵的故事
玩過遊戲之後
對這歌詞更有感覺....
Eyes On Me
Whenever sing my songs
(不論在何時唱著我的歌)
On the stage on my own
(在舞台上也好,孤獨一個人也好)
Whenever said my words
(不管什麼時候說著我的話)
Wishing they would be heard
(一直希望能夠讓你聽見)
I saw you smiling at me
(望著你對我的笑容)
Was it real or just my fantasy
(不知道這是真實還是幻想)
You’d always be there in the corner
(你總是一如往日的出現在角落)
Of this tiny little bar…………………….
(在這狹小的小酒吧)
My last night here for you
(昨夜我為你守候了一晚)
Same old songs just once more
(一遍一遍唱著你我的歌曲)
My last night here with you?
(昨晚我真的為了你而在這裡嗎?)
Maybe yes maybe no
(也許是,也許不是)
I kind of liked it your way
(我好喜歡你的一切)
How you shyly placed your eyes on me
(你怎麼能夠用如此羞澀的眼神望著我)
Oh did you ever know?
(喔!你曾知道嗎?)
That I had mine on you……………….
(我的心早就屬於你)
Darling so there you are
(親愛的,所以你就在那裡)
With that look on your face
(讓我好好的看著你)
As if you’re never hurt
(就當你從不受傷)
As if you’re never down
(就當你從不跌倒)
Shall I be the one for you
(讓我成為你的一部份,好嗎?)
Who pinches you softly but sure
(誰溫柔但是卻傷了你呢?)
If frown is shown then
(如果為了挫折就皺眉的話)
I will know that you are no dreamer…………………,
(我會認為你是沒有夢想的人)
So let me come to you
(所以,讓我奔向你)
So let me come to you
(所以,讓我奔向你)
Close as I wanted to be
(像我所想像的去接近你)
Close enough for me
(盡量的靠近我)
To feel your heart beating fast
(讓我去感受你快速的心跳)
And stay there as I whisper
(留在那裡,當我低語時)
How I loved your peaceful eyes on me
(我是如此愛你用溫柔的的眼神看著我)
Did you ever know
(你是否明瞭)
That I had mine on you
(我的心早就屬於你)
Dailing, so share with me
(親愛的,跟我分享你的所有)
Your love if you have enough
(與你一起分享足夠的愛)
Your tears if you're holding back
(當你心情不好時,我會和你一同分擔)
Or pain if that's what it is
(或不管什麼痛苦,我與你承擔)
How can I let you know
(要如何才能讓你知道)
I'm more than the dress and the voice
(華麗的外表和動人的聲音都不夠形容我)
Just reach me out then
(只管放心的到我身邊)
You will know that you're not dreaming
(你會明瞭這不只是一場夢)
Darling so there you are
(親愛的,所以你就在那裡)
With that look on your face
(讓我好好的看著你)
As if you’re never hurt
(就當你從不受傷)
As if you’re never down
(就當你從不跌倒)
Shall I be the one for you
(讓我成為你的一部份,好嗎?)
Who pinches you softly but sure
(誰溫柔但是卻傷了你呢?)
If frown is shown then
(如果為了挫折就皺眉的話)
I will know that you are no dreamer…………………,
(我會認為你是沒有夢想的人)
=========================================
就像我以前常常說的
經典的東西
不管過了多久
都會長留在我們心中
FINAL FANTASY最終幻想
每一部都是經典
也難怪每一款都有不錯的成績
但是呢
幻想並沒有結束
人因為有幻想才會讓世界更美好
遊戲也一樣
隨著幻想的劇情
把我們帶入那幻想中的氛圍
是一件美好的事情
這也就是RPG容易懹人感動的地方
1999年到2009年
10年之後在回味一次
FF8給了我不同的感受
經典的遊戲
不管過了多久
依然有它經典的地方
或許再過10年
我再一次回味時
相信一樣可以帶給我相同的感動~
以上~
訂閱:
文章 (Atom)