text:
Biên Thành lãng tữ - Hồi 35
Cái khổ chọn lựa
Ngày đăng 16-02-2012
Tổng cộng 50 hồi
Đánh giá 8.1/10 với 260685 lượt xem
Chiếc bao được mở ra.
Trong bao, có người. Một người cụt chân tả!
Dịch Đại Kinh!
Mỗi cá nhân đều muốn kêu lên một tiếng kinh khủng, thật to.
Nhưng, người kinh dị hơn hết, chính là Dịch Đại Kinh.
Y phảng phất từ cõi mộng trở về, phát hiện ra cảnh trước mắt đáng sợ hơn cảnh trong mộng!
Y thấy, Diệp Khai, Phó Hồng Tuyết, cả Lộ Tiểu Giai.
Sau cùng, y co rúm người lại, như cố thu nhỏ thân hình. Bởi, y thấy luôn người lạ.
Người lạ nhìn y, hỏi :
- Ngươi còn nhận ra lão phu?
Dịch Đại Kinh gật đầu, thái độ của y cực kỳ tôn kính.
Người lạ tiếp :
- Mười năm trước, chúng ta gặp nhau một lần, lúc đó thì ngươi còn đủ hai chân!
chưa lẻ loi như bây giờ!
Dịch Đại Kinh gượng điểm một nụ cười :
- Nhưng tiền bối thì còn nguyên phong thái, chẳng khác mảy may mười năm trước!
Người lạ hỏi :
- Chân ngươi cụt từ bao giờ?
Dịch Đại Kinh đáp :
- Cách nay nửa tháng!
Người lạ hỏi :
- Ai chặt?
Dịch Đại Kinh lộ vẻ thống khổ :
- Sự việc thuộc về quá khứ nhắc lại càng thêm phiền.
Người lạ thốt :
- Xem ra ngươi rộng lượng đối với người thật!
Dịch Đại Kinh điềm nhiên :
- Vãn bối cố học tư cách người xưa!
Người lạ mỉm cười :
- Nhưng ngươi cần học một việc khác, trước hơn mọi việc!
Dịch Đại Kinh hỏi :
- Việc chi?
Người lạ đáp :
- Việc nói thật!
Lão quắc mắt sáng như lửa bừng, nhìn vào mặt Dịch Đại Kinh, gằn từng tiếng :
- Ngươi nên biết bình sanh lão phu rất ghét những kẻ nói oan!
Dịch Đại Kinh cúi đầu, thốt :
- Trước mặt tiền bối, vãn bối khi nào dám nói oan! Vô luận là ai cũng không dám nói oan!
Người lạ lạnh lùng :
- Lão phu biết, muốn cho ngươi chịu nói thật, chẳng phải dễ dàng gì. Bởi ngươi hiểu, sau khi ngươi nói thật rồi, rất có thể là ngươi phải chết. Mà đương nhiên là ngươi chưa muốn chết.
Dịch Đại Kinh không dám đáp vu vơ.
Người lạ tiếp :
- Tuy nhiên, ngươi nên biết luôn, trên đời có nhiều cái đáng sợ hơn cái chết, những cái đó làm cho con người thống khổ cực độ!
Dịch Đại Kinh đổ mồ hôi trán.
Người lạ tiếp :
- Sở dĩ lão phu mang ngươi đến đây, là vì nhiều năm trước, lão phu từng phát thệ, tuyệt đối không để cho ai lừa dối!
Trên gương mặt rắn rỏi, niềm thống khổ hiện lên, lão nhớ đến sự tình ngày cũ...
Dịch Đại Kinh không dám ngẩng đầu nhìn lão.
Lâu lắm, người lạ mới tiếp :
- Ngươi mô phỏng nét bút của Tiểu Lý Thám Hoa, ước hẹn lão phu, gặp mặt nhau tại đây. Thực ra lão phu đã thấy là nét bút giả mạo. Lão phu vẫn đến như thường, đến để xem có cái trò gì đây!
Dịch Đại Kinh thốt :
- Thuở thiếu thời, Tiểu Lý Thám Hoa đã có oai danh chấn động khắp nơi, bút tích của người lưu truyền khắp thiên hạ, ai muốn mô phỏng lại chẳng được? Sao tiền bối nhất quyết là vãn bối?
Người lạ đáp :
- Lão phu đã tìm gặp trong thơ phòng của ngươi, có đủ chứng tích, chả hạn, một mảnh giấy có bút tích của Tiểu Lý Thám Hoa, ngươi nhìn nét bút mà phỏng theo...
Dịch Đại Kinh càng đổ mồ hôi lạnh.
Người lạ trầm gương mặt, tiếp :
- Ngươi cũng có nghe về lão phu, lúc nhỏ lão phu như thế nào. Và ngươi cũng nên tin rằng hiện tại lão phu cũng có thể dùng phương pháp năm xưa để bắt buộc ngươi phải nói thật.
Dịch Đại Kinh thở dài :
- Được rồi! Vãn bối xin nói!
Người lạ hỏi :
- Làm sao ngươi biết hành tung của lão phu?
Dịch Đại Kinh đáp :
- Đinh tam công tử cho biết!
Người lạ hỏi :
- Đinh Linh Trung?
Dịch Đại Kinh gật đầu.
Người lạ tiếp :
- Lão phu biết, hắn là một thiếu niên rất thông minh. Nhưng, không khi nào hắn biết được hành tung của lão phu.
Dịch Đại Kinh thốt :
- Thanh đạo nhân biết tiền bối sẽ đi Giang Nam.
Người lạ hỏi :
- Ngươi quen Thanh đạo nhân?
Dịch Đại Kinh gật đầu :
- Nếu tiền bối đi Giang Nam, thì tất là phải do con đường này.
Người lạ ạ lên một tiếng.
Dịch Đại Kinh tiếp :
- Nhân vì, lần thứ nhất tiền bối gặp Tiểu Lý Thám Hoa, chính là trên đoạn đường này.
Người lạ mơ màng, ánh mắt hướng về xa xăm. Cuộc gặp gỡ giữa lão và Lý Tầm Hoan đến nay vẫn còn ghi lại nơi lòng lão một kỷ niệm êm đềm.
Dịch Đại Kinh tiếp :
- Cho nên, vãn bối đặt người tại thập lý trường đình, chờ tiền bối. Khi tiền bối đến, là trao mảnh giấy có bút tích của Tiểu Lý Thám Hoa.
Người lạ thốt :
- Ngươi cho rằng lão phu tin là thật sự Tiểu Lý Thám Hoa sai người trao mảnh giấy cho lão phu?
Dịch Đại Kinh đáp :
- Vãn bối biết, vô luận tin hay không tin, tiền bối vẫn đến!
Người lạ khẽ thở dài :
- Lão phu thấy ngươi, chợt nhớ một người...
Dịch Đại Kinh hỏi :
- Ai?
- Long Thiếu Vân!
Lão lại buông tiếng thở dài, tiếp :
- Ngươi giống Long Thiếu Vân, giống ở chỗ suy tư cực kỳ cẩn mật, nhưng rất tiếc...
Lão không nói nữa. Lão không nỡ nói tiếp.
Một lúc sau, lão chợt hỏi :
- chân ngươi cụt từ lúc nào?
Dịch Đại Kinh đáp :
- Mới hôm nay!
Ai ai cũng giật mình.
Người lạ hỏi :
- Bị người ta chặt?
Dịch Đại Kinh buông gọi :
- Tự chặt!
Mọi người biến sắc, trừ người lạ và Diệp Khai. Mường tượng đã biết như vậy.
Dịch Đại Kinh tiếp :
- Trước hết, vãn bối tìm một người có dung mạo tương tợ, chặt chân người đó, rồi cãi sửa thêm vài điểm cho giống, đoạn cho người đó vào phòng bệnh.
Người lạ không cần hỏi nữa.
Bởi lão biết, thế nào rồi Dịch Đại Kinh cũng nói tiếp.
Y tiếp :
- Cửa sổ rèm buông, cửa phòng đóng kín, bóng tối mờ mờ còn ai nhận ra? Hà huống, người bị chặt chân không được phép nói nhiều, người thăm bệnh cũng không ai ở lâu trong phòng, tránh phiền nhiễu con bệnh.
Đinh Vân Lâm nhìn thoáng qua Diệp Khai, thầm nghĩ :
- Tại sao gã quái vật đó biết hết, như chứng kiến tận mắt?
Dịch Đại Kinh tiếp :
- Trong lúc đó, vãn bối chuồn êm, xuất ngoại hành sự. Trước hết, vãn bối cho mời Tiểu Đạt Tử đến, rồi an bày mưu kế, đưa Phó Hồng Tuyết vào tròng. Vãn bối biết, hắn giết người, xuất thủ rất nhanh.
Phó Hồng Tuyết khổ sở vô cùng.
Hắn không muốn ai tưởng rằng hắn hành động vội vã đến hồ đồ.
Dịch Đại Kinh tiếp :
- Vãn bối lại hiểu tiền bối rất ghét những kẻ tùy ý mà giết người. Phó Hồng Tuyết gặp tiền bối rồi, thì phải bị giết là cái chắc!
Y thở dài, một phút sau, lại tiếp :
- Cái kế hoạch đó, vố rất chu đáo, cẩn mật, không ngờ, trên đời này còn có Diệp Khai! Một con người trời sanh để mà gánh vác việc thiên hạ!
Đinh Vân Lâm hỏi :
- ngươi cho rằng kế hoạch rất chu đáo, thì muốn giả bệnh, tất phải chọn một thứ bệnh nào khác, cần gì phải làm cái việc chặt chân? Giả như thành công rồi, thì ngươi làm sao khỏi chặt luôn? Có phân là mình tự hủy hoại một cách vừa ngu xuẩn, vừa đáng tiếc chăng?
Dịch Đại Kinh đáp :
- Tại hạ đã chuẩn bị chặt chân từ lâu rồi, vô luận mưu đồ thành hai bại, cũng phải chặt!
Đinh Vân Lâm hỏi :
- Tại sao?
Dịch Đại Kinh đáp :
- Bởi vì tại hạ không muốn ai hoài nghi hành động của tại hạ, sau khi kế hoạch thành công!
Đinh Vân Lâm thở dài :
- Lòng dạ ngươi độc ác quá! Độc ác cả với chính mình!
Dịch Đại Kinh mỉm cười :
- Chỉ vì tại hạ muốn trở thành một chân chánh quân tử! Để đạt mục đích, tại hạ dám hy sinh nhiều hơn thế, thử hỏi mất một chân thì có nghĩa gì!
Đinh Vân Lâm thốt :
- Ngươi vốn là con người giảo hoạt, lại muốn làm quân tử, ngươi mô phỏng hành vi quân tử, dần dần cũng tạo được cho mình một tác phong quân tử. Nếu cứ thế mà làm, thì còn ai dám cho rằng ngươi là một ngụy quân tử đâu? Rất tiếc, với việc làm cuối cùng này, con người của ngươi biến đổi rồi, nói một cách khác, là ngươi chuyển hướng hành vi, tự mình phá hoại tác phong đã tạo tựu từ lâu!
Dịch Đại Kinh gật đầu :
- Tại hạ cũng nhận thấy là mình biến đổi, dù tại hạ không tưởng phải biến đổi!
Đinh Vân Lâm tiếp :
- Như vậy là ngươi bị một áp lực nào đó! Ai bức bách ngươi phải làm?
Dịch Đại Kinh không đáp.
Người lạ thốt :
- Ngươi đã bắt đầu nói sự thật, thì cứ tiếp tục nói hết, không nên giấu diếm làm gì.
Dịch Đại Kinh gật đầu :
- Phải! Vãn bối sẽ nói hết. Vãn bối quyết định nói chứ không vì sợ tiền bối áp dụng phương pháp cay độc bức bách vãn bối đâu nhé!
Người lạ ạ một tiếng.
Dịch Đại Kinh tiếp :
- Chỉ vì vãn bối biết tiền bối không phải là con người tàn nhẫn!
Rồi, sợ người ta cho là y ve vuốt, phụng thừa một tay đáng sợ, y tiếp luôn :
- Vãn bối nhận thấy, cần phải nói sự thật
Ai ai cũng chờ nghe.
Dịch Đại Kinh bắt đầu kể :
- Mười chín năm trước, vãn bối có tham gia cuộc hành thích Bạch Thiên Vũ bên cạnh Mai Hoa am. Hành động đó tuy không quang minh chính đại, song nếu bây giờ cần phải tái diễn, vãn bối vẫn làm, không ngần ngại, bất chấp ám muội...
Y nói, như Tiết Võ đã nói!
Rồi y tiếp :
- Bạch Thiên Vũ đã dồn vãn bối vào con đường cùng, tiến không xong, thoái không được. Y muốn vãn bối gia nhập Thần Đao đường, lại còn muốn vãn bối mang hết sự nghiệp gia tài cung hiến vào Thần Đao đường, tùy thuộc quyền sử dụng của y.
Đổi lại, y bảo đảm là sẽ làm cho vãn bối vang danh khắp sông hồ...
Lúc đó vãn bối chỉ là một con người quá tầm thường dưới tay Bạch Thiên Vũ, dù có được vang danh khắp thiên hạ, cũng chẳng ích lợi vào đâu.
Thực ra, Bạch Thiên Vũ không phải là con người ti bỉ, đê tiện. Y là một bậc anh hùng, tài nghệ cao tuyệt, so với Thượng Quan Kim Hồng ngày trước, chẳng kém chút nào.
Có điều, y hành sự không giống Thượng Quan Kim Hồng, y khẳng khái giúp người, dám hy sinh để cứu trợ những đồng đạo chân chánh ngộ nạn tai...
Người lạ thở dài :
- Nếu hắn không vậy, thì đâu còn sống đến ngày ngươi hành thích!
Dịch Đại Kinh tiếp :
- Tuy nhiên, y là con ngươi mà không một ai có thể sống chung! Khi quyết định làm một việc gì, y không dung cho ai phản đối. Nếu y cho rằng việc làm nào đó là phải, thì mọi người phải công nhận là phải, không ai được quyền chỉ trích. Y độc đoán, chuyên hành, muốn làm một việc gì, là làm ngay, bất chấp hậu quả. Y có chỗ đoản, là không cho ai góp ý kiến với y. Những kẻ dưới tay y, phải hành động như những con người máy, chỉ biết tuân phục và hành sự theo mạng lệnh!...
Đinh Vân Lâm nhìn sang Diệp Khai, bất chợt thấy chàng lộ vẻ bi thương...
Dịch Đại Kinh tiếp :
- Phàm muốn thành đại công, lập sự nghiệp lớn, tất phải có cái tâm quả cảm, ý chí cương quyết. Cho nên, vãn bối dù hận, cũng phải tôn kính y.
Những kẻ ở xa y, đều có hưởng nhờ ân huệ của y. Chỉ khổ cho những người tiếp cận y thường xuyên, những người này không chịu nổi tánh khí của y. Ai tiếp cận y rồi, là phải bị y chi phối, hoàn toàn nép mình dưới sự chỉ đạo của y, phải phục tùng y, chẳng khác một tên nô lệ, kẻ nào muốn tự do, là kẻ đó cầm như tự sát!...
Người lạ hỏi :
- Bọn người hành thích, chẳng lẽ đều là bằng hữu của y?
Dịch Đại Kinh gật đầu :
- Đa số là bằng hữu.
Người lạ lạnh lùng :
- Trong mọi việc sai lầm của y, có một việc đáng trách nhất, là kết giao bằng hữu sai lầm! Y lầm trong việc chọn người!
Phó Hồng Tuyết nhìn lão, ánh mắt ngời niềm cảm kích.
Người lạ tiếp :
- Dù cho độc đoán, chuyên hành, nhưng y vẫn xem các ngươi là bằng hữu, y không hề cầm đao đâm lén sau lưng ngươi.
Dịch Đại Kinh cúi đầu :
- Vãn bối không cho rằng bọn vãn bối hành động chính đáng. Vãn bối chỉ nói, không thể không làm!
Người lạ hỏi :
- Không thể không làm?
Dịch Đại Kinh gật đầu :
- Phải!
Ánh mắt mơ màng, người lạ từ từ thốt :
- Lúc còn thanh thiếu, lão phu cũng có ý nghĩ đó, cho rằng có rất nhiều việc không thể không làm. Nhưng sau này, dần dần lão phu thể hội sự tình, trên đời không có việc gì mà con người bắt buộc phải làm, không thể không làm. Vấn đề là mình phải suy, phải suy thật kỹ.
Phó Hồng Tuyết từ từ cúi đầu.
Như để suy tư.
Người lạ tiếp :
- Chỉ cần ngươi nhẫn nại trong lúc đó thôi. Rồi ngươi thấy ngay việc không thể không làm đó, nó không còn giá trị đáng cho ngươi làm nữa.
Nghiêm sắc mặt, lão tiếp :
Bất cứ việc gì, cũng có hai mặt. Nhìn một mặt đối với ngươi, ngươi thấy việc đó là phải. Nhưng nhìn đến mặt kia, ngươi thức ngộ lầm! Tại vì ngươi chỉ trông sự việc ở một mặt thôi!
Dịch Đại Kinh thốt :
- Nhưng...
Người lạ chận lời :
- Các ngươi muốn giết Bạch Thiên Vũ, là vì y không để cho các ngươi có tư tưởng nào. Nhưng các ngươi hành động như vậy, có phải là chẳng khác gì y không?
Dịch Đại Kinh lộ vẻ buồn :
- Có thể là bọn vãn bối sai lầm!
Người lạ lắc đầu :
- Lão phu không nói là các ngươi quấy, về sự việc đó, vĩnh viền không ai phán đoán bên nào phải, bên nào quấy.
Dịch Đại Kinh thốt :
- Sở dĩ thế, vãn bối nhất định chặt một chân, để tránh nhìn cừu hận tiếp diễn mãi mãi không ngừng, truyền đời truyền kiếp.
Lộ vẻ thống khổ, y tiếp :
- Đêm đó, sau cuộc hành thích, chỉ còn bảy người sống sót rời Mai Hoa am trở về. Mười chín năm qua, vãn bối thống khổ triền miên! Vãn bối tưởng, các người kia cũng thống khổ như vãn bối!
Một người, sống trong thống khổ, trong khiếp sợ, ngày chồng ngày, suốt mười chín năm qua, sống như vậy, thà chết còn hơn!
Y tiếp :
- Đêm đó, tuyết đổ nhiều, tuyết phủ trắng bao la, man mác. Sau cuộc chiến rồi, vùng tuyết quanh Mai Hoa am nhuộm hồng! Không mục kích cuộc chiến, không ai hình dung đúng thảm cảnh! Chính vãn bối cũng phải rợn người mỗi lần hồi ức lại.
Bỗng, Diệp Khai hỏi :
- Sao các hạ không tưởng xem, ai đã khởi xướng nên một thảm cảnh như vậy?
Dịch Đại Kinh không đáp, chỉ thốt :
- Hôm đó, máu đổ nhiều, máu của họ Bạch, máu của bọn tại hạ!
Diệp Khai mỉm cười :
- Máu song phương đều đổ, các hạ cho là hận cừu liễu kết?
Dịch Đại Kinh thở dài :
- Bọn tại hà đành là không xứng đáng với tình giao hữu của Bạch Thiên Vũ, song thiệt hại đã đủ đền tội rồi!
Diệp Khai hỏi :
- Người chết được xem như đã đền tội, còn người sống thì sao?
Dịch Đại Kinh khó đáp.
Y không thể đáp câu đó!
Diệp Khai tiếp luôn :
- Tại hạ không có ý nói, nhất định cừu hận phải báo phục. Nhưng, bất cứ việc gì, cũng phải được đặt trên cơ bản công bình. Nếu người sống cho rằng kẻ chết đã đền tội thay, thì quả thật là một sai lầm.
Chàng gằn từng tiếng, tiếp luôn :
- Nợ của ai, người đó trả, không có việc trả thay!
Dịch Đại Kinh nhìn chàng, như chưa bao giờ gặp chàng.
Diệp Khai rất bình tịnh, rất khinh túng. Luôn luôn, chàng không hề thay đổi thần sắc, dù đứng trước hiểm họa tử vong.
Sở dĩ được thế, là vì chàng trải qua ngàn muôn thử thách.
Không ai biết lai lịch chân chánh của chàng! Bắt đầu vào giang hồ, con người chàng đã như thế rồi. Chàng xuất hiện trên giang hồ, cũng như Phó Hồng Tuyết, đột ngột, từ vô danh, phút chốc biến thành một thứ mà ai ai cũng ngán sợ!
Rồi chàng bám theo Phó Hồng Tuyết, chiếu cố Phó Hồng Tuyết như mẹ hiền dìu dắt con thơ!
Giữa chàng và Phó Hồng Tuyết, có liên hệ gì chăng?
* * * * *
Nhìn Diệp Khai một lúc lâu, Dịch Đại Kinh vụt hỏi :
- Các hạ là ai?
Diệp Khai thốt :
- Đáng lẽ, các hạ phải biết!
Dịch Đại Kinh lại hỏi :
- Họ Diệp, tên Khai?
Diệp Khai gật đầu :
- Diệp, là lá cây! Khai, là cởi mở. Tâm tình cởi mở!
Dịch Đại Kinh hỏi :
- Đó là tên thật?
Diệp Khai mỉm cười :
- Thế các hạ cho tại hạ là ai?
Dịch Đại Kinh bỗng thở dài :
- Tại hạ không cần biết các hạ là ai, chỉ hy vọng các hạ minh bạch một điều.
Diệp Khai điềm nhiên :
- Cứ nói.
Nhìn chiếc chân cụt, Dịch Đại Kinh từ từ tiếp :
- Tại hạ vay nợ, vốn không tưởng nhờ người trả nợ thay, tại hạ hành động sai lầm, thì đã sớm trả cái giá sai lầm rồi. Giả như các hạ cho rằng chưa đủ, thì tại hạ xin chờ, các hạ tùy thời mà hạ thủ!
Diệp Khai điềm nhiên :
- Cau đó, các hạ nên nói với Phó Hồng Tuyết.
Dịch Đại Kinh tiếp :
- Vô luận là nói với ai, tại hạ nói lời thật, toàn là lời thật.
Y nhắm mắt lại, không nói gì nữa.
Người lạ nhìn Diệp Khai, rồi nhìn Phó Hồng Tuyết, thốt :
- Y nói thật đấy!
Không ai nói gì. Không ai phủ nhận.
Người lạ lại nhìn Phó Hồng Tuyết, thốt :
- Lão phu đưa y đến đây, để cho y nóisự thật, chứ không để cho ngươi giết y.
Lão không dùng giọng sáo nữa, xưng tại hạ, gọi các hạ.
Bởi, thân phận của lão đã lộ rồi.
Phó Hồng Tuyết nhìn Dịch Đại Kinh. Hắn cảm thấy thống khổ hơn Dịch Đại Kinh.
Người lạ tiếp :
- Y đã nói sự thật cho tất cả nghe rồi. Chúng ta không ai có đủ tư cách phán đoán lỗi về bên nào.
Phó Hồng Tuyết có đủ tư cách hay không?
Người lạ tiếp :
- Nhưng đích xác y có vay nợ tiền nhân của y. Y cũng đã trả rồi, nếu ngươi cho là chưa đủ, thì có thể tùy thời ngươi giết y. Hiện tại, y không còn năng lực phản kháng.
Đêm tàn dần.
Ngày sắp trở về trong chốc lát.
Phó Hồng Tuyết bóp cứng chuôi đao, mồ hôi lạnh đẫm ướt lòng bàn tay.
Người lạ không nói một tiếng nào.
Hạ thủ? Buông tha?
Ai ai cũng chờ xem thái độ của hắn.
Cuối cùng, hắn thốt :
- Ta không giết ngươi, bởi ngươi không xứng đáng. Nhưng nhất định ta không dung thứ Mã Không Quần. Lão ấy chẳng những là bằng hữu, mà còn là huynh đệ của phụ thân ta. Vô luận làm sao, lão cũng không nên đứng ra xướng xuất. Lão phải ngã gục dưới thanh đao này!
Đó là câu nói cuối của hắn, trong hiện cảnh.
Đó là sự tuyển chọn cuối của hắn.
Hắn không nhìn ai, từ từ quay mình, từ từ bước đi, tiến về phía cửa, chân tả nhích, chân hữu lết theo.
Lưng hắn hơi còng. Niềm thống khổ đè vai, nặng quá.
* * * * *
Ngày nào đó, Tiêu Biệt Ly có nói với Diệp Khai :
- Ai mang thanh đao đó, là mang điều bất hạnh! Mang họa diệt thân!
Thanh đao, là vật bất tường. Cho người, cho mình.
Câu đó, giờ đây, còn văng vẳng bên tai chàng!
Hiện tại, mắt chàng chớp sáng, mường tượng cái sáng do màn lệ vừa giăng...
Đinh Vân Lâm nhìn chàng.
Nàng hỏi :
- Tại sao ngươi thương tâm?
Diệp Khai lắc đầu :
- Không thương tâm. Mà là cao hứng!
Đinh Vân Lâm hừ một tiếng :
- Cao hứng về cái gì?
Diệp Khai đáp :
- Hắn không giết Dịch Đại Kinh!
Bỗng, chàng nghe Dịch Đại Kinh khóc.
Y khóc lớn!
Từ lâu lắm, y không khóc. Y không thuộc hạng người tùy tiện hiện lộ chân tình.
Có lẽ y thấy, trong vài trường hợp, chết sướng hơn sống!
Người lạ nhìn Dịch Đại Kinh, rồi nhìn Lộ Tiểu Giai.
Lộ Tiểu Giai bất động, quên luôn cả việc bóc vỏ đậu phộng, ăn hạt.
Không một cảm tình biểu lộ nơi mặt.
Người lạ thở dài, bảo :
- Ngươi có thể đưa y trở về nhà!
Người lạ thừ người một lúc.
Chợt, lão thốt :
- Hôm nay, lão phu cao hứng quá!
Diệp Khai hỏi :
- Lý do là hắn không giết Dịch Đại Kinh?
Người lạ gật đầu!
Lão tiếp :
- Giết người, là việc dễ. Tha người, là việc khó! Nhất là tha một cừu nhân!
Diệp Khai nghe nhói ở tim, đồng thời có ngọn gió mát quét vào lòng.
Chàng nân chén uống cạn rượu.
Người lạ cũng cạn chén rượu. Lão thốt :
- Từ lâu, lão phu không uống rượu nữa. Trước kia, lão phu có tửu lượng đáng kể lắm. Nhưng sau này...
Lão không thốt tiếp.
Diệp Khai không hỏi.
Chàng thấy trong ánh mắt lạnh lùng của lão, hiện lên tình cảm phức tạp, điều đó chứng tỏ lão không hẳn là vô tình như giang hồ truyền thuyết.
Ngưng câu nói dở chừng, lão mơ màng, hồi ức dĩ vãng xa xăm...
Đinh Vân Lâm chợt hỏi :
- Tiền bối có phải là A...
Người lạ mỉm cười :
- Là A Phi? Người ta gọi lão phu như vậy đó, ngươi cứ gọi theo đời!
Đinh Vân Lâm hỏi :
- Tôi có thể kính tiền bối một chén rượu?
Người lạ gật đầu :
- Có thể!
Đinh Vân Lâm uống liền.
Được đối ẩm với A Phi, dù chỉ một chén, cũng là một sự kiện thuộc thần thoại rồi!
Nàng tiếp :
- Giang hồ truyền thuyết, tiền bối xuất thủ cực nhanh! Mãi đến bây giờ, tôi mới tin là truyền thuyết đúng!
Người lạ thốt :
- Còn một người, xuất thủ nhanh hơn lão phu!
Đinh Vân Lâm hỏi :
- Ai?
Người lạ đáp :
- Kinh Vô Mạng! Người đã dạy Lộ Tiểu Giai sử dụng kiếm. Vô Mạng, là không có mạng, mỗi con người có một mạng sống, song cái mạng của lão ta đã hứa cho đời, thành ra không còn thuộc về lão nữa.
Lão tiếp :
- Cái hay của Kinh Vô Mạng, là sử dụng được cả hai tay tốc độ ngang nhau. Trong thiên hạ võ lâm ngày nay, không ai sánh được lão.
Đinh Vân Lâm tặt lưỡi :
- Vậy là lão ấy khó tránh được cao ngạo!
Người lạ gật đầu :
- Lão là con người tàn khốc! Vì một câu nói, lão có thể giết người. Lão cũng có thể... tự sát!
Đinh Vân Lâm thở dài :
- Chắc là ai ai cũng sợ lão!
Người lạ mỉm cười :
- Tự nhiên!
Đinh Vân Lâm hỏi :
- Đã là tàn khốc, lão còn đem sanh mạng hứa cho đời là hứa làm sao?
Lão nhân không đáp.
Đinh Vân Lâm hỏi :
- Còn Tiểu Lý Phi Đao?
Người lạ sáng mắt lên :
- Lối xuất thủ của Tiểu Lý Thám Hoa, không thể dùng tiếng nhanh mà hình dung được!
Đinh Vân Lâm gật đầu :
- Tôi hiểu rồi! Nhanh hay chậm, cũng lợi hại như thường, bởi lão đã đạt đến cảnh giới vĩ đại võ công. Không một ai đánh bại được lão!
Người lạ mỉm cười :
- Tuyệt nhiên không có ai.
Đinh Vân Lâm tiếp :
- Và Thượng Quan Kim Hồng dù là vô địch trong thiên hạ, cũng phải bại nơi tay lão!
Người lạ gật gù :
- Ngươi thông minh đó!
Đinh Vân Lâm hỏi :
- Hiện tại lão ở đâu? Còn sống hay chết?
Người lạ đáp :
- Đừng tìm hiểu tung tích con hạc phiêu linh theo mây ngàn, gió núi. Lão phu còn đây, đương nhiên là lão ta còn!
Đinh Vân Lâm hỏi :
- Nếu lão chết, tiền bối cũng chết theo?
Người lạ đáp :
- Có thể là lão phu không chết theo, song bắt đầu từ ngày mất lão, là thế nhân không còn thấy lão phu lai vãng trên giang hồ nữa.
Quý thay, tình bằng hữu!
Đinh Vân Lâm thở dài :
- Ngày nay, thắp đuốc mà tìm, vị tất tìm ra một mối giao tình hầu như thần thoại của tiền bối!
Người lạ thốt :
- Cho nên, lão phu hận Mã Không Quần vô sĩ, khả ố, không đáng sống trên đời!
Đinh Vân Lâm tiếp :
- Và tiền bối không phản đối Phó Hồng Tuyết tìm họ Mã mà giết!
Người lạ thở dài :
- Nhưng Lý Tầm Hoan có tư tưởng khác lão phu! Lão ấy không hề nhớ đến cừu hận, luôn luôn khoan thứ thế nhân.
Đinh Vân Lâm hỏi :
- Tiền bối gần đây có gặp Lý tiền bối chăng?
Người lạ đáp :
- Mỗi năm, ít nhất chúng ta cũng gặp nhau một lần.
Tiếng gà đâu đó gáy vang, báo hiệu đêm tàn.
Phương đông, bầu trời rựng trắng.
Người lạ từ từ đứng lên, đặt tay lên vai Diệp Khai, cười thốt :
- Lão phu biết, ngươi rất mực tôn kính con người đó. Luôn luôn hành động với tác phong phỏng theo người đó! Lão phu rất cao hứng!
Diệp Khai xúc động vô cùng :
- Vãn bối hy vọng thành công.
Người lạ gật đầu :
- Với quyết tâm, ngươi sẽ đạt mục đích!
Diệp Khai hỏi :
- Còn tiền bối...
Người lạ đáp :
- Ta đi Giang Nam. Rất có thể ta gặp ngươi đó!
Nhìn Đinh Vân Lâm, lão mỉm cười, tiếp :
- Gặp người ấy, lão phu sẽ cho lão ta biết, là có một cô bé rất thông minh. Hy vọng ta sẽ tìm đến gặp ngươi!
Đinh Vân Lâm cảm kích lắm.
Chợt, nàng thốt :
- Tôi muốn biết một chuyện...
Người lạ bảo :
- Nói đi!
Đinh Vân Lâm hỏi :
- Có phải là tại Giang Nam, một biến cố lớn sắp phát sanh, nên các vị đồng đến đó?
Người lạ đáp :
- Có thể có như vậy! Tuy nhiên bọn lão phu hành động, thường không muốn cho ai biết, nên không thể có người biết được!
Lão từ từ bước đi, đến cửa, dừng chân lại nhìn về phía Đông, rồi quay đầu lại, cười hỏi :
- Hôm nay, lão phu nói nhiều hơn mọi hôm, các ngươi biết tại sao chăng?
Làm sao họ biết được?
Người lạ từ từ tiếp :
- Vì lão phu già rồi! Nói nhiều để bù lại khi vĩnh viễn không còn mở miệng được nữa!
Lão đi luôn.
Đinh Vân Lâm nhìn theo lão, lẩm nhẩm :
- Với dáng đi đó, ai nói lão đã già?
Diệp Khai cười nhẹ :
- Lão không thể già! Có những người vĩnh viễn không già.

Content-Type: text/html


text:
Trang chủ
|
Dịch vụ
|
Catalog
|
Thanh toán
|
Liên Hệ
Giỏ hàng
(0)
Gioi thieu
Hình ảnh hoạt động
Sơ đồ tổ chức
Lịch sử hình thành
Giới thiệu công ty
Danh muc
Vật liệu mài mòn
Dụng cụ cầm tay
Dụng cụ dùng điện
Dụng cụ đo chính xác
Thiết bị ngành hàn
Điện và thiết bị điện
Bảo hộ lao động
Vệ sinh công nghiệp
Vận chuyển nâng đỡ
Bảo quản đóng gói
Sản phẩm hóa chất
Dụng cụ dùng khí nén
Thiết bị viễn thông
Thiết bị y tế
Xem tất cả
Nha san xuat
3M
Advance
AEG
Agilent
AGP
Aikyo
Alspec
AMP
Amtek
Apech
Asak
Asaki
Barker
Bellota
Xem tất cả
Tin tuc
Nha san xuat
Dang nhap
Nhà sản xuất
» Mitutoyo
Bàn rà chuẩn (4)
Khối V chuẩn (1)
Đồng hồ so (35)
Thước đo góc (5)
Thước kẹp thường (14)
Thước kẹp đồng hồ (11)
Thước kẹp điện tử (25)
Panme đo ngoài (97)
Panme đo trong (17)
Thước đo độ cao (7)
Thước đo lỗ (35)
Thước đo độ dày (13)
Thước đo độ sâu (14)
Các loại khác (6)
Thước thủy chính xác (4)
Thước thẳng và xếp (1)
Dưỡng đo độ dày (5)
Dưỡng đo ren (5)
Dưỡng đo bán kính (5)
Chân đế đỡ (9)
Thước đo quang (23)
CÔNG TY THIẾT BỊ CÔNG NGHIỆP GTG
2/64C Đất Thánh, P.6, Q.Tân Bình, TP HCM
Điện thoại: 08 3868 6666
Fax: 08 3868 6688
Giấy ĐKKD số: 0303059482 tại TP HCM
Chi nhánh:
HÀ NỘI
71 Hoàng Cầu, P. Ô Chợ Dừa, Quận Đống Đa
Điện thoại: 04 3901 6666
Fax: 04 3910 6666
ĐÀ NẴNG
630-632 Ngô Quyền, P. An Hải Bắc, Quận Sơn Trà
Điện thoại: 0511 350 7777
Fax: 0511 350 7788
CẦN THƠ
Điện thoại: 0710 222 0220
Fax: 0710 222 1221
BÌNH DƯƠNG
1080A CMT8, Phường Phú Thọ, TP Thủ Dầu Một
Điện thoại: 0650 3 969 768
Fax: 0650 3 969 769
CHÍNH SÁCH BÁN HÀNG
- Chính sách bảo mật thông tin
- Chính sách vận chuyển
- Quy trình giao hàng
- Chính sách đổi trả hàng
HỖ TRỢ KHÁCH HÀNG
- Hướng dẫn mua hàng
- Hướng dẫn thanh toán
- Các hình thức mua hàng
- Sơ đồ đường đi
Tắt [X]
Trang chủ
|
Dịch vụ
|
Catalog
|
Tin tức
|
Liên hệ
Đang online :103 - Tổng truy cập : 174,323,770
+ + + + + + + +

WARC-Type: response

Content-Type: application/http; msgtype=response

Connection: close

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Vary: Accept-Encoding,User-Agent


text:
Trang chủ
|
Dịch vụ
|
Catalog
|
Thanh toán
|
Liên Hệ
Giỏ hàng
(0)
Gioi thieu
Hình ảnh hoạt động
Sơ đồ tổ chức
Lịch sử hình thành
Giới thiệu công ty
Danh muc
Vật liệu mài mòn
Dụng cụ cầm tay
Dụng cụ dùng điện
Dụng cụ đo chính xác
Thiết bị ngành hàn
Điện và thiết bị điện
Bảo hộ lao động
Vệ sinh công nghiệp
Vận chuyển nâng đỡ
Bảo quản đóng gói
Sản phẩm hóa chất
Dụng cụ dùng khí nén
Thiết bị viễn thông
Thiết bị y tế
Xem tất cả
Nha san xuat
3M
Advance
AEG
Agilent
AGP
Aikyo
Alspec
AMP
Amtek
Apech
Asak
Asaki
Barker
Bellota
Xem tất cả
Tin tuc
Nha san xuat
Dang nhap
Sieuthithietbi
»
So sánh
Chọn sản phẩm
[Chọn sản phẩm]
125A-3P-230V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
125A-3P-230V-6H-IP66/67 Ổ cắm nối loại kín nước
125A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
125A-3P-230V-IP66/67 Ổ cắm nổi loại không kín nước
125A-4P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
125A-4P-400V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
125A-4P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
125A-4P-400V-IP66/67 Ổ cắm nổi loại không kín nước
125A-4P-440V-6H-IP67 Phích cắm di động loại kín nước
125A-5P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
16A-3P-230V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
16A-3P-230V-6H-IP67 Ổ cắm gắn âm loại kín nước
125A-5P-400V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
125A-5P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
125A-5P-400V-IP66/67 Ổ cắm nổi loại không kín nước
125A-5P-440V-6H-IP67 Phích cắm di động loại kín nước
16A 3P 250V ổ cắm âm có nắp
16A IP20 250V Ổ cắm bằng nhựa loại không kín nước
16A IP44 250V Bộ 4 ổ cắm bằng nhựa
16A IP44 Phích cắm bằng nhựa
16A IP44 Phích cắm bằng nhựa chịu va đập
16A-3P-230V-6H-IP44 Ổ cắm gắn âm không kín nước
16A-3P-230V-6H-IP44 Cắm nối loại không kín nước
16A-3P-230V-6H-IP44 Ổ cắm nổi loại không kín nước
16A-3P-230V-6H-IP44 Phích cắm di động không kín nước
16A-3P-220V-IP44 Ổ cắm công nghiệp EGK-213-6C
16A-3P-220V-IP44 Phích cắm công nghiệp EGK-013-6C
16A-4P-380-IP44 Phích cắm công nghiệp EGK-014-6C
16A-4P-380V-IP44 Ổ cắm công nghiệp EGK-214-6C
32A-3P-220V-IP44 Ổ cắm công nghiệp EGK-223-6C
32A-3P-220V-IP44 Phích cắm công nghiệp EGK-023-6C
32A-4P-380V-IP44 Ổ cắm công nghiệp EGK-224-6C
32A-4P-380V-IP44 Phích cắm công nghiệp EGK-024-6C
63A-3P-220V-IP44 Ổ cắm công nghiệp EGK-133-6C
63A-4P-380-IP44 Ổ cắm công nghiệp EGK-134-6C
16A-3P-230V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
16A-3P-230V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
16A-3P-230V-IP44Ổ cắm gắn âm không kín nước
16A-4P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
16A-4P-400V-6H-IP44 Ổ cắm nối loại không kín nước
16A-4P-400V-6H-IP44 Phích cắm di động không kín nước
16A-4P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
16A-4P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
16A-5P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
16A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-4P-400V-6H-IP67 Phích cắm di động loại kín nước
16A-4P-400V-IP44Ổ cắm gắn âm không kín nước
16A-5P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
16A-5P-400V-6H-IP44 Ổ cắm nối loại không kín nước
16A-5P-400V-6H-IP44 Phích cắm di động không kín nước
16A-5P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
16A-5P-400V-6H-IP67 Ổ cắm gắn âm loại kín nước
16A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-5P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-5P-400V-6H-IP67 Phích cắm di động loại kín nước
16A-5P-400V-IP44Ổ cắm gắn âm không kín nước
16A-5P-440V-6H-IP44 Ổ cắm nổi loại không kín nước
32A-3P-230V-6H-IP44 Ổ cắm gắn âm không kín nước
32A-3P-230V-6H-IP44 Ổ cắm nối loại không kín nước
32A-3P-230V-6H-IP44 Phích cắm di động không kín nước
32A-3P-230V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
32A-3P-230V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
32A-3P-230V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
32A-3P-230V-IP44Ổ cắm gắn âm không kín nước
32A-4P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
32A-4P-400V-6H-IP44 Ổ cắm nối loại không kín nước
32A-4P-400V-6H-IP44 Phích cắm di động không kín nước
32A-4P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
32A-4P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
32A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-4P-400V-6H-IP67 Phích cắm di động loại kín nước
32A-4P-400V-IP44 Ổ cắm gắn âm không kín nước
32A-4P-440V-3H-IP67 Ổ cắm âm cho Container kín nước
32A-4P-440V-3H-IP67 Ổ cắm nối cho Container kín nước
32A-4P-440V-3H-IP67 Ổ cắm nối Container kín nước
32A-4P-440V-3H-IP67 Phích cắm cho Container kín nước
32A-5P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
32A-5P-400V-6H-IP44 Ổ cắm nối loại không kín nước
32A-5P-400V-6H-IP44 Ổ cắm nổi loại không kín nước
32A-5P-400V-6H-IP44 Phích cắm di động không kín nước
32A-5P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
32A-5P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
32A-5P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-5P-400V-6H-IP67 Phích cắm di động loại kín nước
32A-5P-400V-IP44Ổ cắm gắn âm không kín nước
63A-3P-230V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
63A-3P-230V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-3P-230V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-3P-230V-6H-IP66/67 Ổ cắm nối loại kín nước
63A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
63A-3P-230V-IP66/67 Ổ cắm nổi loại không kín nước
63A-4P-230V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-4P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
63A-4P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
63A-4P-400V-6H-IP67 Phích cắm di động loại kín nước
63A-4P-400V-IP66/67 Ổ cắm nổi loại không kín nước
63A-5P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
63A-5P-400V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-5P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
63A-5P-400V-6H-IP67 Phích cắm di động loại kín nước
63A-5P-400V-IP66/67 Ổ cắm nổi loại không kín nước
IP44 Đế nổi cho ổ cắm không kín nước
10m Ổ quay công nghiệp Tiến Thành
20m Ổ quay công nghiệp Tiến Thành
30m Ổ quay công nghiệp Tiến Thành
32A-4P-400V-6H-IP44 Ổ cắm nối loại không kín nước
20m ổ quay công nghiệp QN20-2-10A
20m ổ quay công nghiệp QN20-3-10A
20m ổ quay công nghiệp QN20-2-15A
20m ổ quay công nghiệp QN20-3-15A
20m ổ quay công nghiệp QN20-3-13A
30m ổ quay công nghiệp QT30-2-10A
30m ổ quay công nghiệp QT30-3-10A
30m ổ quay công nghiệp QT30-2-15A
30m ổ quay công nghiệp QT30-3-15A
50m ổ quay công nghiệp QT50-2-15A
20m ổ quay công nghiệp QT2025
30m ổ quay công nghiệp QT3025
20m ổ quay công nghiệp QTX2025
[Chọn sản phẩm]
125A-3P-230V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
125A-3P-230V-6H-IP66/67 Ổ cắm nối loại kín nước
125A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
125A-3P-230V-IP66/67 Ổ cắm nổi loại không kín nước
125A-4P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
125A-4P-400V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
125A-4P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
125A-4P-400V-IP66/67 Ổ cắm nổi loại không kín nước
125A-4P-440V-6H-IP67 Phích cắm di động loại kín nước
125A-5P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
16A-3P-230V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
16A-3P-230V-6H-IP67 Ổ cắm gắn âm loại kín nước
125A-5P-400V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
125A-5P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
125A-5P-400V-IP66/67 Ổ cắm nổi loại không kín nước
125A-5P-440V-6H-IP67 Phích cắm di động loại kín nước
16A 3P 250V ổ cắm âm có nắp
16A IP20 250V Ổ cắm bằng nhựa loại không kín nước
16A IP44 250V Bộ 4 ổ cắm bằng nhựa
16A IP44 Phích cắm bằng nhựa
16A IP44 Phích cắm bằng nhựa chịu va đập
16A-3P-230V-6H-IP44 Ổ cắm gắn âm không kín nước
16A-3P-230V-6H-IP44 Cắm nối loại không kín nước
16A-3P-230V-6H-IP44 Ổ cắm nổi loại không kín nước
16A-3P-230V-6H-IP44 Phích cắm di động không kín nước
16A-3P-220V-IP44 Ổ cắm công nghiệp EGK-213-6C
16A-3P-220V-IP44 Phích cắm công nghiệp EGK-013-6C
16A-4P-380-IP44 Phích cắm công nghiệp EGK-014-6C
16A-4P-380V-IP44 Ổ cắm công nghiệp EGK-214-6C
32A-3P-220V-IP44 Ổ cắm công nghiệp EGK-223-6C
32A-3P-220V-IP44 Phích cắm công nghiệp EGK-023-6C
32A-4P-380V-IP44 Ổ cắm công nghiệp EGK-224-6C
32A-4P-380V-IP44 Phích cắm công nghiệp EGK-024-6C
63A-3P-220V-IP44 Ổ cắm công nghiệp EGK-133-6C
63A-4P-380-IP44 Ổ cắm công nghiệp EGK-134-6C
16A-3P-230V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
16A-3P-230V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
16A-3P-230V-IP44Ổ cắm gắn âm không kín nước
16A-4P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
16A-4P-400V-6H-IP44 Ổ cắm nối loại không kín nước
16A-4P-400V-6H-IP44 Phích cắm di động không kín nước
16A-4P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
16A-4P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
16A-5P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
16A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-4P-400V-6H-IP67 Phích cắm di động loại kín nước
16A-4P-400V-IP44Ổ cắm gắn âm không kín nước
16A-5P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
16A-5P-400V-6H-IP44 Ổ cắm nối loại không kín nước
16A-5P-400V-6H-IP44 Phích cắm di động không kín nước
16A-5P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
16A-5P-400V-6H-IP67 Ổ cắm gắn âm loại kín nước
16A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-5P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-5P-400V-6H-IP67 Phích cắm di động loại kín nước
16A-5P-400V-IP44Ổ cắm gắn âm không kín nước
16A-5P-440V-6H-IP44 Ổ cắm nổi loại không kín nước
32A-3P-230V-6H-IP44 Ổ cắm gắn âm không kín nước
32A-3P-230V-6H-IP44 Ổ cắm nối loại không kín nước
32A-3P-230V-6H-IP44 Phích cắm di động không kín nước
32A-3P-230V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
32A-3P-230V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
32A-3P-230V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
32A-3P-230V-IP44Ổ cắm gắn âm không kín nước
32A-4P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
32A-4P-400V-6H-IP44 Ổ cắm nối loại không kín nước
32A-4P-400V-6H-IP44 Phích cắm di động không kín nước
32A-4P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
32A-4P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
32A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-4P-400V-6H-IP67 Phích cắm di động loại kín nước
32A-4P-400V-IP44 Ổ cắm gắn âm không kín nước
32A-4P-440V-3H-IP67 Ổ cắm âm cho Container kín nước
32A-4P-440V-3H-IP67 Ổ cắm nối cho Container kín nước
32A-4P-440V-3H-IP67 Ổ cắm nối Container kín nước
32A-4P-440V-3H-IP67 Phích cắm cho Container kín nước
32A-5P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
32A-5P-400V-6H-IP44 Ổ cắm nối loại không kín nước
32A-5P-400V-6H-IP44 Ổ cắm nổi loại không kín nước
32A-5P-400V-6H-IP44 Phích cắm di động không kín nước
32A-5P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
32A-5P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
32A-5P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-5P-400V-6H-IP67 Phích cắm di động loại kín nước
32A-5P-400V-IP44Ổ cắm gắn âm không kín nước
63A-3P-230V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
63A-3P-230V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-3P-230V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-3P-230V-6H-IP66/67 Ổ cắm nối loại kín nước
63A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
63A-3P-230V-IP66/67 Ổ cắm nổi loại không kín nước
63A-4P-230V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-4P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
63A-4P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
63A-4P-400V-6H-IP67 Phích cắm di động loại kín nước
63A-4P-400V-IP66/67 Ổ cắm nổi loại không kín nước
63A-5P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
63A-5P-400V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-5P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
63A-5P-400V-6H-IP67 Phích cắm di động loại kín nước
63A-5P-400V-IP66/67 Ổ cắm nổi loại không kín nước
IP44 Đế nổi cho ổ cắm không kín nước
10m Ổ quay công nghiệp Tiến Thành
20m Ổ quay công nghiệp Tiến Thành
30m Ổ quay công nghiệp Tiến Thành
32A-4P-400V-6H-IP44 Ổ cắm nối loại không kín nước
20m ổ quay công nghiệp QN20-2-10A
20m ổ quay công nghiệp QN20-3-10A
20m ổ quay công nghiệp QN20-2-15A
20m ổ quay công nghiệp QN20-3-15A
20m ổ quay công nghiệp QN20-3-13A
30m ổ quay công nghiệp QT30-2-10A
30m ổ quay công nghiệp QT30-3-10A
30m ổ quay công nghiệp QT30-2-15A
30m ổ quay công nghiệp QT30-3-15A
50m ổ quay công nghiệp QT50-2-15A
20m ổ quay công nghiệp QT2025
30m ổ quay công nghiệp QT3025
20m ổ quay công nghiệp QTX2025
[Chọn sản phẩm]
125A-3P-230V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
125A-3P-230V-6H-IP66/67 Ổ cắm nối loại kín nước
125A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
125A-3P-230V-IP66/67 Ổ cắm nổi loại không kín nước
125A-4P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
125A-4P-400V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
125A-4P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
125A-4P-400V-IP66/67 Ổ cắm nổi loại không kín nước
125A-4P-440V-6H-IP67 Phích cắm di động loại kín nước
125A-5P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
16A-3P-230V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
16A-3P-230V-6H-IP67 Ổ cắm gắn âm loại kín nước
125A-5P-400V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
125A-5P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
125A-5P-400V-IP66/67 Ổ cắm nổi loại không kín nước
125A-5P-440V-6H-IP67 Phích cắm di động loại kín nước
16A 3P 250V ổ cắm âm có nắp
16A IP20 250V Ổ cắm bằng nhựa loại không kín nước
16A IP44 250V Bộ 4 ổ cắm bằng nhựa
16A IP44 Phích cắm bằng nhựa
16A IP44 Phích cắm bằng nhựa chịu va đập
16A-3P-230V-6H-IP44 Ổ cắm gắn âm không kín nước
16A-3P-230V-6H-IP44 Cắm nối loại không kín nước
16A-3P-230V-6H-IP44 Ổ cắm nổi loại không kín nước
16A-3P-230V-6H-IP44 Phích cắm di động không kín nước
16A-3P-220V-IP44 Ổ cắm công nghiệp EGK-213-6C
16A-3P-220V-IP44 Phích cắm công nghiệp EGK-013-6C
16A-4P-380-IP44 Phích cắm công nghiệp EGK-014-6C
16A-4P-380V-IP44 Ổ cắm công nghiệp EGK-214-6C
32A-3P-220V-IP44 Ổ cắm công nghiệp EGK-223-6C
32A-3P-220V-IP44 Phích cắm công nghiệp EGK-023-6C
32A-4P-380V-IP44 Ổ cắm công nghiệp EGK-224-6C
32A-4P-380V-IP44 Phích cắm công nghiệp EGK-024-6C
63A-3P-220V-IP44 Ổ cắm công nghiệp EGK-133-6C
63A-4P-380-IP44 Ổ cắm công nghiệp EGK-134-6C
16A-3P-230V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
16A-3P-230V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
16A-3P-230V-IP44Ổ cắm gắn âm không kín nước
16A-4P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
16A-4P-400V-6H-IP44 Ổ cắm nối loại không kín nước
16A-4P-400V-6H-IP44 Phích cắm di động không kín nước
16A-4P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
16A-4P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
16A-5P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
16A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-4P-400V-6H-IP67 Phích cắm di động loại kín nước
16A-4P-400V-IP44Ổ cắm gắn âm không kín nước
16A-5P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
16A-5P-400V-6H-IP44 Ổ cắm nối loại không kín nước
16A-5P-400V-6H-IP44 Phích cắm di động không kín nước
16A-5P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
16A-5P-400V-6H-IP67 Ổ cắm gắn âm loại kín nước
16A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-5P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
16A-5P-400V-6H-IP67 Phích cắm di động loại kín nước
16A-5P-400V-IP44Ổ cắm gắn âm không kín nước
16A-5P-440V-6H-IP44 Ổ cắm nổi loại không kín nước
32A-3P-230V-6H-IP44 Ổ cắm gắn âm không kín nước
32A-3P-230V-6H-IP44 Ổ cắm nối loại không kín nước
32A-3P-230V-6H-IP44 Phích cắm di động không kín nước
32A-3P-230V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
32A-3P-230V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
32A-3P-230V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
32A-3P-230V-IP44Ổ cắm gắn âm không kín nước
32A-4P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
32A-4P-400V-6H-IP44 Ổ cắm nối loại không kín nước
32A-4P-400V-6H-IP44 Phích cắm di động không kín nước
32A-4P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
32A-4P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
32A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-4P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-4P-400V-6H-IP67 Phích cắm di động loại kín nước
32A-4P-400V-IP44 Ổ cắm gắn âm không kín nước
32A-4P-440V-3H-IP67 Ổ cắm âm cho Container kín nước
32A-4P-440V-3H-IP67 Ổ cắm nối cho Container kín nước
32A-4P-440V-3H-IP67 Ổ cắm nối Container kín nước
32A-4P-440V-3H-IP67 Phích cắm cho Container kín nước
32A-5P-400V-6H-IP44 Ổ cắm gắn âm không kín nước
32A-5P-400V-6H-IP44 Ổ cắm nối loại không kín nước
32A-5P-400V-6H-IP44 Ổ cắm nổi loại không kín nước
32A-5P-400V-6H-IP44 Phích cắm di động không kín nước
32A-5P-400V-6H-IP67 Ổ cắm gắn âm kín nước thẳng
32A-5P-400V-6H-IP67 Ổ cắm nối loại kín nước (IP67)
32A-5P-400V-6H-IP67 Ổ cắm nổi loại không kín nước
32A-5P-400V-6H-IP67 Phích cắm di động loại kín nước
32A-5P-400V-IP44Ổ cắm gắn âm không kín nước
63A-3P-230V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
63A-3P-230V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-3P-230V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-3P-230V-6H-IP66/67 Ổ cắm nối loại kín nước
63A-3P-230V-6H-IP67 Phích cắm di động loại kín nước
63A-3P-230V-IP66/67 Ổ cắm nổi loại không kín nước
63A-4P-230V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-4P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
63A-4P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
63A-4P-400V-6H-IP67 Phích cắm di động loại kín nước
63A-4P-400V-IP66/67 Ổ cắm nổi loại không kín nước
63A-5P-400V-6H-IP66/67 Ổ cắm gắn âm kín nước thẳng
63A-5P-400V-6H-IP66/67 Ổ cắm gắn âm loại kín nước
63A-5P-400V-6H-IP66/67 Ổ cắm nối loại kín nước
63A-5P-400V-6H-IP67 Phích cắm di động loại kín nước
63A-5P-400V-IP66/67 Ổ cắm nổi loại không kín nước
IP44 Đế nổi cho ổ cắm không kín nước
10m Ổ quay công nghiệp Tiến Thành
20m Ổ quay công nghiệp Tiến Thành
30m Ổ quay công nghiệp Tiến Thành
32A-4P-400V-6H-IP44 Ổ cắm nối loại không kín nước
20m ổ quay công nghiệp QN20-2-10A
20m ổ quay công nghiệp QN20-3-10A
20m ổ quay công nghiệp QN20-2-15A
20m ổ quay công nghiệp QN20-3-15A
20m ổ quay công nghiệp QN20-3-13A
30m ổ quay công nghiệp QT30-2-10A
30m ổ quay công nghiệp QT30-3-10A
30m ổ quay công nghiệp QT30-2-15A
30m ổ quay công nghiệp QT30-3-15A
50m ổ quay công nghiệp QT50-2-15A
20m ổ quay công nghiệp QT2025
30m ổ quay công nghiệp QT3025
20m ổ quay công nghiệp QTX2025
Hình sản phẩm
Nhà sản xuất
Xuất xứ
Giá
Bảo hành
Trọng lượng
Nội dung
32A-3P-220V-IP44 Ổ cắm công ...
Kistenmacher
Indonesia
74,000 VNĐ
12 tháng
0.3 kg
Phích cắm IP44
32A – 3P – 220V
tháng
kg
tháng
kg
CÔNG TY THIẾT BỊ CÔNG NGHIỆP GTG
2/64C Đất Thánh, P.6, Q.Tân Bình, TP HCM
Điện thoại: 08 3868 6666
Fax: 08 3868 6688
Giấy ĐKKD số: 0303059482 tại TP HCM
Chi nhánh:
HÀ NỘI
71 Hoàng Cầu, P. Ô Chợ Dừa, Quận Đống Đa
Điện thoại: 04 3901 6666
Fax: 04 3910 6666
ĐÀ NẴNG
630-632 Ngô Quyền, P. An Hải Bắc, Quận Sơn Trà
Điện thoại: 0511 350 7777
Fax: 0511 350 7788
CẦN THƠ
Điện thoại: 0710 222 0220
Fax: 0710 222 1221
BÌNH DƯƠNG
1080A CMT8, Phường Phú Thọ, TP Thủ Dầu Một
Điện thoại: 0650 3 969 768
Fax: 0650 3 969 769
CHÍNH SÁCH BÁN HÀNG
- Chính sách bảo mật thông tin
- Chính sách vận chuyển
- Quy trình giao hàng
- Chính sách đổi trả hàng
HỖ TRỢ KHÁCH HÀNG
- Hướng dẫn mua hàng
- Hướng dẫn thanh toán
- Các hình thức mua hàng
- Sơ đồ đường đi
Tắt [X]
Trang chủ
|
Dịch vụ
|
Catalog
|
Tin tức
|
Liên hệ
Đang online :55 - Tổng truy cập : 174,322,289
+ + + + + + + +


text:
- Công suất ổn áp: 8KVA
- 140V: Các thiết bị gia dụng, văn phòng hoặc có tổng công suất các động cơ 3HP – 4HP
- 60V-90V: Các thiết bị gia dụng văn phòng hoặc motor 2.5HP


text:
Không có bất động sản được tìm thấy!
- Mua bán nhà đất TPHCM
- Bán căn hộ Quận 1
- Bán căn hộ Quận 2
- Bán căn hộ Quận 4
- Bán căn hộ Quận 7
- Bán căn hộ Quận 9
- Bán căn hộ quận 12
- Bán căn hộ Gò Vấp
- Bán căn hộ Nhà Bè
- Bán căn hộ Bình Thạnh
- Bán căn hộ Tân Bình
- Bán căn hộ Tân Phú
- Nhà đất Quận 1
- Nhà đất Quận 3
- Nhà đất Quận 8
- Nhà đất Quận 9
- Nhà đất Quận 12
- Nhà đất Gò Vấp
- Bán căn hộ Bình Dương
- Nhà cho thuê TPHCM
- Văn phòng cho thuê Quận 1
- Văn phòng cho thuê Quận 3
- Văn phòng cho thuê Quận 7
- Nhà cho thuê Tân Bình
- Nhà cho thuê Gò Vấp
- Nhà cho thuê Bình Thạnh
- Cho thuê mặt bằng Quận 1
- Cho thuê mặt bằng Quận 3
- Cho thuê mặt bằng Quận 10
- Cho thuê mặt bằng Quận 11
- Cho thuê căn hộ Quận 1
- Cho thuê căn hộ Quận 2
- Cho thuê căn hộ Quận 4
- Cho thuê căn hộ Quận 7
- Cho thuê căn hộ Bình Thạnh
- Hà Đô Centrosa Garden Quận 10
- Vinhomes Golden River
- Căn hộ The GoldView
- Căn hộ Jamona Golden Silk
- Dự án đất nền Van Phuc Riverside City
- Căn hộ Diamond Lotus Lake View
- The Habitat Bình Dương
- Căn hộ Park Vista
- Him Lam Phú Đông
- Căn hộ River City
- Căn hộ Diamond City
- Khu căn hộ Richmond City
- Căn hộ Diamond Island
Liên lạc
- 093.111.9482
- support@zita.vn
-
12 Tôn Đản, Phường 13, Quận 4
TP. Hồ Chí Minh
-
-
-
Giấy phép ICP số 23/GP-STTTT
-
© 2015 zita.vn
CTY Cổ Phần Đầu Tư Công Nghệ TBN.
CTY Cổ Phần Đầu Tư Công Nghệ TBN.

markdown:
Không có bất động sản được tìm thấy!
[Mua bán nhà đất TPHCM](/nha-dat-ban/tp-ho-chi-minh) [Bán căn hộ Quận 1](/ban-can-ho-chung-cu/tp-ho-chi-minh/quan-1) [Bán căn hộ Quận 2](/ban-can-ho-chung-cu/tp-ho-chi-minh/quan-2) [Bán căn hộ Quận 4](/ban-can-ho-chung-cu/tp-ho-chi-minh/quan-4) [Bán căn hộ Quận 7](/ban-can-ho-chung-cu/tp-ho-chi-minh/quan-7) [Bán căn hộ Quận 9](/ban-can-ho-chung-cu/tp-ho-chi-minh/quan-9) [Bán căn hộ quận 12](/ban-can-ho-chung-cu/tp-ho-chi-minh/quan-12) [Bán căn hộ Gò Vấp](/ban-can-ho-chung-cu/tp-ho-chi-minh/go-vap) [Bán căn hộ Nhà Bè](/ban-can-ho-chung-cu/tp-ho-chi-minh/nha-be) [Bán căn hộ Bình Thạnh](/ban-can-ho-chung-cu/tp-ho-chi-minh/binh-thanh) [Bán căn hộ Tân Bình](/ban-can-ho-chung-cu/tp-ho-chi-minh/tan-binh) [Bán căn hộ Tân Phú](/ban-can-ho-chung-cu/tp-ho-chi-minh/tan-phu-2) [Nhà đất Quận 1](/nha-dat-ban/tp-ho-chi-minh/quan-1) [Nhà đất Quận 3](/nha-dat-ban/tp-ho-chi-minh/quan-3) [Nhà đất Quận 8](/nha-dat-ban/tp-ho-chi-minh/quan-8) [Nhà đất Quận 9](/nha-dat-ban/tp-ho-chi-minh/quan-9) [Nhà đất Quận 12](/nha-dat-ban/tp-ho-chi-minh/quan-12) [Nhà đất Gò Vấp](/nha-dat-ban/tp-ho-chi-minh/go-vap) [Bán căn hộ Bình Dương](/ban-can-ho-chung-cu/binh-duong) [Nhà cho thuê TPHCM](/nha-dat-cho-thue/tp-ho-chi-minh) [Văn phòng cho thuê Quận 1](/cho-thue-van-phong/tp-ho-chi-minh/quan-1) [Văn phòng cho thuê Quận 3](/cho-thue-van-phong/tp-ho-chi-minh/quan-3) [Văn phòng cho thuê Quận 7](/cho-thue-van-phong/tp-ho-chi-minh/quan-7) [Nhà cho thuê Tân Bình](/nha-dat-cho-thue/tp-ho-chi-minh/tan-binh) [Nhà cho thuê Gò Vấp](/nha-dat-cho-thue/tp-ho-chi-minh/go-vap) [Nhà cho thuê Bình Thạnh](/nha-dat-cho-thue/tp-ho-chi-minh/binh-thanh) [Cho thuê mặt bằng Quận 1](/cho-thue-cua-hang-ki-ot/tp-ho-chi-minh/quan-1) [Cho thuê mặt bằng Quận 3](/cho-thue-cua-hang-ki-ot/tp-ho-chi-minh/quan-3) [Cho thuê mặt bằng Quận 10](/cho-thue-cua-hang-ki-ot/tp-ho-chi-minh/quan-10) [Cho thuê mặt bằng Quận 11](/cho-thue-cua-hang-ki-ot/tp-ho-chi-minh/quan-11) [Cho thuê căn hộ Quận 1](/cho-thue-can-ho-chung-cu/tp-ho-chi-minh/quan-1) [Cho thuê căn hộ Quận 2](/cho-thue-can-ho-chung-cu/tp-ho-chi-minh/quan-2) [Cho thuê căn hộ Quận 4](/cho-thue-can-ho-chung-cu/tp-ho-chi-minh/quan-4) [Cho thuê căn hộ Quận 7](/cho-thue-can-ho-chung-cu/tp-ho-chi-minh/quan-7) [Cho thuê căn hộ Bình Thạnh](/cho-thue-can-ho-chung-cu/tp-ho-chi-minh/binh-thanh) [Hà Đô Centrosa Garden Quận 10](/du-an/ha-do-centrosa-garden) [Vinhomes Golden River](/du-an/vinhomes-ba-son-1309) [Căn hộ The GoldView](/du-an/the-gold-view-1175) [Căn hộ Jamona Golden Silk](/du-an/jamona-golden-silk-132) [Dự án đất nền Van Phuc Riverside City](/du-an/van-phuc-riverside-city-1137) [Căn hộ Diamond Lotus Lake View](/du-an/diamond-lotus-lake-view) [The Habitat Bình Dương](/du-an/the-habitat-binh-duong-267) [Căn hộ Park Vista](/du-an/park-vista-1254) [Him Lam Phú Đông](/du-an/him-lam-phu-dong-7) [Căn hộ River City](/du-an/river-city-1388) [Căn hộ Diamond City](/du-an/diamond-city) [Khu căn hộ Richmond City](/du-an/khu-can-ho-richmond-city) [Căn hộ Diamond Island](/du-an/diamond-island)
Liên lạc
[093.111.9482](tel://0931119482)
- support@zita.vn
-
12 Tôn Đản, Phường 13, Quận 4
TP. Hồ Chí Minh
-
-
-
Giấy phép ICP số 23/GP-STTTT
-
© 2015 zita.vn
CTY Cổ Phần Đầu Tư Công Nghệ TBN.
CTY Cổ Phần Đầu Tư Công Nghệ TBN.

Content-Type: text/html; charset=utf-8

Vary: Accept-Encoding

Cache-Control: max-age=0, private, must-revalidate

X-XSS-Protection: 1; mode=block

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options: nosniff

X-Powered-By: Phusion Passenger

Server: nginx + Phusion Passenger


text:
Bán
Cho thuê
Dự án
Tin tức BĐS
Bán nhà biệt thự, liền kề Dương Minh Châu Dương Minh Châu Tây Ninh (0)
Tìm chi tiết
Nhà đất bán
Cho thuê
Tất cả
Bán căn hộ chung cư
Bán nhà biệt thự, liền kề
Bán nhà mặt phố
Bán nhà riêng
Bán khách sạn - khu nghỉ dưỡng
Bán đất nền dự án
Bán kho, nhà xưởng
Bán đất - trang trại
Bán loại bất động sản khác
TP. Hồ Chí Minh
Hà Nội
Đà Nẵng
Bình Dương
Đồng Nai
Bà Rịa - Vũng Tàu
Hải Phòng
Long An
An Giang
Bắc Giang
Bắc Kạn
Bạc Liêu
Bắc Ninh
Bến Tre
Bình Định
Bình Phước
Bình Thuận
Cà Mau
Cần Thơ
Cao Bằng
Đắk Lắk
Đăk Nông
Điện Biên
Đồng Tháp
Gia Lai
Hà Giang
Hải Dương
Hà Nam
Hà Tĩnh
Hậu Giang
Hòa Bình
Hưng Yên
Khánh Hòa
Kiên Giang
Kon Tum
Lai Châu
Lâm Đồng
Lạng Sơn
Lào Cai
Nam Định
Nghệ An
Ninh Bình
Ninh Thuận
Phú Thọ
Phú Yên
Quảng Bình
Quảng Nam
Quảng Ngãi
Quảng Ninh
Quảng Trị
Sóc Trăng
Sơn La
Tây Ninh
Thái Bình
Thái Nguyên
Thanh Hóa
Thừa Thiên - Huế
Tiền Giang
Trà Vinh
Tuyên Quang
Vĩnh Long
Vĩnh Phúc
Yên Bái
Tất cả
Bến Cầu
Châu Thành
Dương Minh Châu
Gò Dầu
Hòa Thành
Tân Biên
Tân Châu
Tây Ninh
Trảng Bàng
Tất cả
Không xác định
< 30 m2
30 - 50 m2
50 - 80 m2
80 - 120 m2
120 - 200 m2
200 - 330 m2
330 - 540 m2
> 540 m2
Tất cả
Thỏa thuận
< 500 triệu
500 - 800 triệu
800 - 1 tỷ
1 - 2 tỷ
2 - 3 tỷ
3 - 5 tỷ
5 - 7 tỷ
7 - 10 tỷ
10 - 30 tỷ
> 30 tỷ
Tìm kiếm
Không có bất động sản được tìm thấy!
Tin đăng bán HOT
Mua bán nhà đất TPHCM
Bán căn hộ Quận 1
Bán căn hộ Quận 2
Bán căn hộ Quận 4
Bán căn hộ Quận 7
Bán căn hộ Quận 9
Bán căn hộ quận 12
Bán căn hộ Gò Vấp
Bán căn hộ Nhà Bè
Bán căn hộ Bình Thạnh
Bán căn hộ Tân Bình
Bán căn hộ Tân Phú
Nhà đất Quận 1
Nhà đất Quận 3
Nhà đất Quận 8
Nhà đất Quận 9
Nhà đất Quận 12
Nhà đất Gò Vấp
Bán căn hộ Bình Dương
Nhà cho thuê TPHCM
Văn phòng cho thuê Quận 1
Văn phòng cho thuê Quận 3
Văn phòng cho thuê Quận 7
Nhà cho thuê Tân Bình
Nhà cho thuê Gò Vấp
Nhà cho thuê Bình Thạnh
Cho thuê mặt bằng Quận 1
Cho thuê mặt bằng Quận 3
Cho thuê mặt bằng Quận 10
Cho thuê mặt bằng Quận 11
Cho thuê căn hộ Quận 1
Cho thuê căn hộ Quận 2
Cho thuê căn hộ Quận 4
Cho thuê căn hộ Quận 7
Cho thuê căn hộ Bình Thạnh
Xem thêm
Dự án HOT
Hà Đô Centrosa Garden Quận 10
Vinhomes Golden River
Căn hộ The GoldView
Căn hộ Jamona Golden Silk
Dự án đất nền Van Phuc Riverside City
Căn hộ Diamond Lotus Lake View
The Habitat Bình Dương
Căn hộ Park Vista
Him Lam Phú Đông
Căn hộ River City
Căn hộ Diamond City
Khu căn hộ Richmond City
Căn hộ Diamond Island
Xem thêm
zita.vn
Giới thiệu
Dịch vụ
Tin bất động sản
Tuyển dụng
Đối tác
Blog
Trợ giúp
Qui chế hoạt động
Khuyến mãi
Liên lạc
093.111.9482
support@zita.vn
12 Tôn Đản, Phường 13, Quận 4
TP. Hồ Chí Minh
Giấy phép ICP số 23/GP-STTTT
© 2015 zita.vn
CTY Cổ Phần Đầu Tư Công Nghệ TBN.
Bản đồ...
Nhà đất bán
Tây Ninh
Dương Minh Châu
Dương Minh Châu
zita.vn
Bán
Cho thuê
Dự án
Tin BĐS
Khách
Khách
Đăng nhập
Thông báo
Tất cả
Danh Sách
Xem Chi Tiết
Đóng
Nội dung


text:
Bàn phím là thiết bị không thể thiếu và là phương tiện rất quan trọng để thực hiện các chức năng của các ứng dụng tương tác với người dùng. Trong bài viết này, tôi sẽ hướng dẫn cách bắt sự kiện bàn phím trong canvas và dùng nó để điều khiển góc xoay và hướng di chuyển của đối tượng đồ họa.
Bắt sự kiện bàn phím
Để bắt sự kiện này, bạn có thể đăng kí trực tiếp cho đối tượng window, tuy nhiên điều này sẽ gây ra những rắc rối khi trang của bạn có quá nhiều thành phần. Cách tốt nhất là đăng kí riêng cho canvas các hàm xử lý. Tuy nhiên, để canvas có thể focus được, bạn cần xác định thuộc tính TabIndex của nó:
<canvas id=”canvas” width=”300″ height=”200″
tabindex=”1″ style=”border: 1px solid;”></canvas>
Sau đó bạn đăng kí các sự kiện cần thiết cho canvas. Khi chạy trên trình duyệt, bạn cần phải click chuột vào canvas để nó nhận được focus trước khi thực hiện các thao tác bàn phím.
_canvas.onkeydown = canvas_keyDown; function canvas_keyDown(e){ alert(e.keyCode); }
Tham số event truyền vào hàm xử lý sẽ chứa các thuộc tính cần thiết để bạn xác định được phím nào được nhấn. Ở đây, bạn chỉ cần quan tâm đến thuộc tính keyCode lưu mã của phím được nhấn. Do các giá trị keyCode có kiểu số nên rất khó nhớ và kiểm tra, may mắn là tôi tìm được trang “Javascript Keycode Enums” liệt kê sẵn các keyCode dưới dạng enum của một đối tượng. Tôi sửa lại một chút để tiện sử dụng hơn:
var Keys = { BACKSPACE: 8, TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, PAUSE: 19, CAPS_LOCK: 20, ESCAPE: 27, SPACE: 32, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT_ARROW: 37, UP_ARROW: 38, RIGHT_ARROW: 39, DOWN_ARROW: 40, INSERT: 45, DELETE: 46, KEY_0: 48, KEY_1: 49, KEY_2: 50, KEY_3: 51, KEY_4: 52, KEY_5: 53, KEY_6: 54, KEY_7: 55, KEY_8: 56, KEY_9: 57, KEY_A: 65, KEY_B: 66, KEY_C: 67, KEY_D: 68, KEY_E: 69, KEY_F: 70, KEY_G: 71, KEY_H: 72, KEY_I: 73, KEY_J: 74, KEY_K: 75, KEY_L: 76, KEY_M: 77, KEY_N: 78, KEY_O: 79, KEY_P: 80, KEY_Q: 81, KEY_R: 82, KEY_S: 83, KEY_T: 84, KEY_U: 85, KEY_V: 86, KEY_W: 87, KEY_X: 88, KEY_Y: 89, KEY_Z: 90, LEFT_META: 91, RIGHT_META: 92, SELECT: 93, NUMPAD_0: 96, NUMPAD_1: 97, NUMPAD_2: 98, NUMPAD_3: 99, NUMPAD_4: 100, NUMPAD_5: 101, NUMPAD_6: 102, NUMPAD_7: 103, NUMPAD_8: 104, NUMPAD_9: 105, MULTIPLY: 106, ADD: 107, SUBTRACT: 109, DECIMAL: 110, DIVIDE: 111, F1: 112, F2: 113, F3: 114, F4: 115, F5: 116, F6: 117, F7: 118, F8: 119, F9: 120, F10: 121, F11: 122, F12: 123, NUM_LOCK: 144, SCROLL_LOCK: 145, SEMICOLON: 186, EQUALS: 187, COMMA: 188, DASH: 189, PERIOD: 190, FORWARD_SLASH: 191, GRAVE_ACCENT: 192, OPEN_BRACKET: 219, BACK_SLASH: 220, CLOSE_BRACKET: 221, SINGLE_QUOTE: 222 };
Kiểm tra trạng thái của nhiều phím
Một khó khăn của các sự kiện bàn phím trong javascript là chỉ có thể xác định được duy nhất một phím nhấn thông qua thuộc tính event.keyCode. Để có thể kiểm tra được trạng thái của nhiều phím được nhấn cùng lúc, ta phải lưu trạng thái của chúng lại khi sự kiện keyDown xảy ra và xóa trạng thái đó đi trong sự kiện keyUp.
var _keypressed = {}; function canvas_keyDown(e){ _keypressed[e.keyCode] = true; } function canvas_keyUp(e){ _keypressed[e.keyCode] = false; }
Giới hạn các phím được bắt
Sử dụng phương pháp trên, bạn cần lọc các phím cần sử dụng để đối tượng _keypressed không lưu các giá trị không cần thiết. Một cách đơn giản nhất là sử dụng mảng để lưu keyCode của các phím này và kiểm tra trong các sự kiện bàn phím:
const AVAILABLE_KEYS = [ Keys.UP_ARROW, Keys.DOWN_ARROW, Keys.LEFT_ARROW, Keys.RIGHT_ARROW ]; function canvas_keyDown(e){ if(AVAILABLE_KEYS.indexOf(e.keyCode)!=-1) { _keypressed[e.keyCode] = true; } } function canvas_keyUp(e){ if(_keypressed[e.keyCode]) { _keypressed[e.keyCode] = false; } }
Ví dụ: Di chuyển xe tăng
Trong ví dụ này tôi sẽ tạo một lớp Tank và vẽ theo hình dạng một chiếc xe tăng đơn giản. Tại trang html, tôi sẽ bắt các sự kiện keyDown và keyUp để di chuyển đối tượng này theo 8 tám hướng
function Tank(mapWidth, mapHeight){ this.mapWidth = mapWidth; this.mapHeight = mapHeight; this.radius = 20; this.speedX = 0; this.speedY = 0; this.power = 3; this.cx = mapWidth/2; this.cy = mapHeight/2; } Tank.prototype.draw = function(context){ context.beginPath(); context.fillStyle = "green"; context.arc(this.cx,this.cy,this.radius,0,Math.PI*2,true); context.closePath(); context.fill(); // gun var size = this.radius/2; var angle = Math.atan2(this.speedY,this.speedX);; context.beginPath(); context.fillStyle = "red"; context.rect(this.cx,this.cy - size/2,size*3,size); context.closePath(); context.fill(); // yellow circle context.beginPath(); context.fillStyle = "yellow"; context.arc(this.cx,this.cy,this.radius/2,0,Math.PI*2,true); context.closePath(); context.fill(); } Tank.prototype.move = function(){ this.cx += this.speedX; this.cy += this.speedY; this.left = this.cx - this.radius; this.top = this.cy - this.radius; this.right = this.cx + this.radius; this.bottom = this.cy + this.radius; } Tank.prototype.resetSpeed = function(){ this.speedX = 0; this.speedY = 0; } Tank.prototype.moveUp = function(){ this.speedY = -this.power; } Tank.prototype.moveDown = function(){ this.speedY = this.power; } Tank.prototype.moveLeft = function(){ this.speedX = -this.power; } Tank.prototype.moveRight = function(){ this.speedX = this.power; }
Xoay đối tượng trong canvas
Một vấn đề khi bạn di chuyển xe tăng là súng không thay đổi hướng và góc xoay cho phù hợp. Nhưng điều này giải quyết rất đơn giản, bởi vì đối tượng context của canvas hỗ trợ phương thức translate() và rotate() dùng để dịch chuyển và xoay canvas. Như vậy, tôi sẽ thực hiện dịch chuyển tâm xoay đến giữa đối tượng (xe tăng) và gọi rotate() trước khi vẽ nòng súng ra canvas.
Để lấy được góc xoay, ta biết được hai giá trị speedX và speedY chính là hướng di chuyển của đối tượng. Hai giá trị này tạo thành hai cạnh kề của một tam giác vuông và góc của súng cũng chính là góc α được tính bằng công thức tan(α) = speedY/speedX.
Như vậy ta có:
tan(α) = speedY/speedX.
=> α = atan(speedY/speedX)
hoặc atan2(speedY,speedX)
Như vậy ta sẽ vẽ súng tại điểm gốc tọa độ là chính giữa xe tăng. Bạn nên lưu lại trạng thái của context với phương thức save() và gọi restore() để phục hồi lại trạng thái ban đầu cho nó khi thực hiện thay đổi các thông số của nó.
var angle = Math.atan2(this.speedY,this.speedX) context.save(); context.translate(this.cx,this.cy); context.rotate(angle); context.beginPath(); context.fillStyle = "red"; context.rect(0,-size/2,size*3,size); context.closePath(); context.fill(); context.restore();
Mã nguồn hoàn chỉnh
Tank.js:
function Tank(mapWidth, mapHeight){ this.mapWidth = mapWidth; this.mapHeight = mapHeight; this.radius = 20; this.speedX = 0; this.speedY = 0; this.power = 3; this.cx = mapWidth/2; this.cy = mapHeight/2; } Tank.prototype.draw = function(context){ context.beginPath(); context.fillStyle = "green"; context.arc(this.cx,this.cy,this.radius,0,Math.PI*2,true); context.closePath(); context.fill(); // red rectangle var size = this.radius/2; var angle = Math.atan2(this.speedY,this.speedX); context.save(); context.translate(this.cx,this.cy); context.rotate(angle); context.beginPath(); context.fillStyle = "red"; context.rect(0,-size/2,size*3,size); context.closePath(); context.fill(); context.restore(); // yellow circle context.beginPath(); context.fillStyle = "yellow"; context.arc(this.cx,this.cy,this.radius/2,0,Math.PI*2,true); context.closePath(); context.fill(); } Tank.prototype.move = function(){ this.cx += this.speedX; this.cy += this.speedY; this.left = this.cx - this.radius; this.top = this.cy - this.radius; this.right = this.cx + this.radius; this.bottom = this.cy + this.radius; } Tank.prototype.resetSpeed = function(){ this.speedX = 0; this.speedY = 0; } Tank.prototype.moveUp = function(){ this.speedY = -this.power; } Tank.prototype.moveDown = function(){ this.speedY = this.power; } Tank.prototype.moveLeft = function(){ this.speedX = -this.power; } Tank.prototype.moveRight = function(){ this.speedX = this.power; }
Sample.html:
<html> <head> <script src="tank.js"></script> <script src="keys.js"></script> <script type="text/javascript"> const AVAILABLE_KEYS = [ Keys.UP_ARROW, Keys.DOWN_ARROW, Keys.LEFT_ARROW, Keys.RIGHT_ARROW ]; var _canvas; var _context; var _ball; var _keypressed = {}; function clear() { _context.clearRect(0, 0, _canvas.width, _canvas.height); } function init() { _canvas = document.getElementById("canvas"); _context = _canvas.getContext("2d"); _ball = new Tank(_canvas.width,_canvas.height); draw(); } function canvas_keyDown(e){ if(AVAILABLE_KEYS.indexOf(e.keyCode)!=-1) { _keypressed[e.keyCode] = true; doKeypress(); } } function canvas_keyUp(e){ if(_keypressed[e.keyCode]) { _keypressed[e.keyCode] = false; _ball.resetSpeed(); } } function doKeypress(){ if(_keypressed[Keys.UP_ARROW]) _ball.moveUp(); if(_keypressed[Keys.DOWN_ARROW]) _ball.moveDown(); if(_keypressed[Keys.LEFT_ARROW]) _ball.moveLeft(); if(_keypressed[Keys.RIGHT_ARROW]) _ball.moveRight(); _ball.move(); draw(); } function draw() { clear(); _ball.draw(_context); } window.onload = function(){ init(); _canvas.onkeydown = canvas_keyDown; _canvas.onkeyup = canvas_keyUp; } </script> </head> <body> <canvas id="canvas" width="300" height="200" tabindex="1" style="border: 1px solid;"></canvas> </body> </html>
YinYang’s Programming Blog
Topic thực sự rất cool! Dù là một HTML5 trainer (tự nhận ^^) anh cũng không thể chuẩn bị được các ví dụ như em. Game 2D hoặc những thứ liên quan tới đồ thị, biểu đồ.. chính là điều mà HTML5 được hướng đến để thay thế Flash. Silverlight với dòng ứng dụng dành cho enterprise vẫn có chỗ đứng. Vẫn theo dõi bài viết của em từng ngày ^^
Cảm ơn anh! Sở thích của em là làm game nhưng chưa có điều kiện và khó có thể theo đuổi được. Nhân tiện học HTML5 nên tập trung làm thử mấy game đơn giản. Mấy hôm nay công việc của em hơi bận nên lười viết bài. Hy vọng được anh nhận xét và ủng hộ.
xin chào anh!!! em đang làm đề tài tốt nghiệp điều khiển robot. Mới tìm hiểu về c# .E đang muốn thực hiện việc tạo 1 giao diện giống như game tank của Anh với sự tương tác trực tiếp với robot. Điều khiển robot thông qua giao diện điều khiển xe tank vậy đó. E mong anh chỉ e cách nhanh nhất để tìm hiểu.thank!
Vậy thì bạn có thể tìm hiểu GDI+ trên WinForms, chỉ cần nắm được một vài phương thức vẽ cơ bản là có thể làm được rồi.
nếu muốn thay chiếc xe tăng bằng 1 hình ảnh thì làm sao vậy, mình mới mò vào cái này nên k biết. Mong chỉ giáo.
cái Tank.prototype.draw thì .prototype là j vậy anh ?
Bạn có thể coi câu trả lời cho 1 comment tương tự tại : https://yinyangit.wordpress.com/2012/03/05/html5-canvas-game-xe-tang-d%C6%A1n-gi%E1%BA%A3n-part-2/
Thân!
Mình muốn chỉ cho nó bắt 1 phím thôi thì phải sửa lại như thế nào hả bạn !
Cách ngắn gọn hơn như sau:
trong thẻ
function doKeyDown(evt) {
switch(evt.keyCode) {
case 37 : moveLeft(); break;
case 38 : moveUp(); break;
case 39 : moveRight(); break;
case 40 : moveDown(); break;
case 32 : shoot(); break;
}
}
trong thẻ body thêm onKeyDown = “doKeyDown(event)
Pingback: HTML5 – Canvas: Game xe tăng đơn giản – part 1 | Rai Information
Chào anh!. Em đang tìm hiểu HTML5, em thấy bài viết của anh rất hay.
Em có xem phần vẽ súng và có thắc mắc a: context.rect(0,-size/2,size*3,size);
Tọa độ: 0,-size/2 thì sao lại là ở chỗ tầm giữa màn hình đấy đc a. Mong anh giải thích thêm đoạn này giúp e.
Em cảm ơn!
Pingback: C# – Kiểm tra tổ hợp phím, phân biệt KeyCode, KeyValue và KeyData | NGỌC TẤN KIẾN THỨC LẬP TRÌNH AN GIANG

markdown:
[Bàn phím là thiết bị không thể thiếu và là phương tiện rất quan trọng để thực hiện các chức năng của các ứng dụng tương tác với người dùng. Trong bài viết này, tôi sẽ hướng dẫn cách bắt sự kiện bàn phím trong canvas và dùng nó để điều khiển góc xoay và hướng di chuyển của đối tượng đồ họa.](https://yinyangit.wordpress.com/2012/02/29/html5-canvas-di-chuyen-doi-tuong-bang-ban-phim/preferences-desktop-keyboard-shortcuts/)
# Bắt sự kiện bàn phím
Để bắt sự kiện này, bạn có thể đăng kí trực tiếp cho đối tượng
**window**, tuy nhiên điều này sẽ gây ra những rắc rối khi trang của bạn có quá nhiều thành phần. Cách tốt nhất là đăng kí riêng cho canvas các hàm xử lý. Tuy nhiên, để canvas có thể focus được, bạn cần xác định thuộc tính **TabIndex **của nó:
<canvas id=”canvas” width=”300″ height=”200″
tabindex=”1″ style=”border: 1px solid;”></canvas>
Sau đó bạn đăng kí các sự kiện cần thiết cho canvas. Khi chạy trên trình duyệt, bạn cần phải click chuột vào canvas để nó nhận được focus trước khi thực hiện các thao tác bàn phím.
_canvas.onkeydown = canvas_keyDown; function canvas_keyDown(e){ alert(e.keyCode); }
Tham số event truyền vào hàm xử lý sẽ chứa các thuộc tính cần thiết để bạn xác định được phím nào được nhấn. Ở đây, bạn chỉ cần quan tâm đến thuộc tính keyCode lưu mã của phím được nhấn. Do các giá trị keyCode có kiểu số nên rất khó nhớ và kiểm tra, may mắn là tôi tìm được trang “
[Javascript Keycode Enums](https://gist.github.com/1185173)” liệt kê sẵn các keyCode dưới dạng enum của một đối tượng. Tôi sửa lại một chút để tiện sử dụng hơn:
var Keys = { BACKSPACE: 8, TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, PAUSE: 19, CAPS_LOCK: 20, ESCAPE: 27, SPACE: 32, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT_ARROW: 37, UP_ARROW: 38, RIGHT_ARROW: 39, DOWN_ARROW: 40, INSERT: 45, DELETE: 46, KEY_0: 48, KEY_1: 49, KEY_2: 50, KEY_3: 51, KEY_4: 52, KEY_5: 53, KEY_6: 54, KEY_7: 55, KEY_8: 56, KEY_9: 57, KEY_A: 65, KEY_B: 66, KEY_C: 67, KEY_D: 68, KEY_E: 69, KEY_F: 70, KEY_G: 71, KEY_H: 72, KEY_I: 73, KEY_J: 74, KEY_K: 75, KEY_L: 76, KEY_M: 77, KEY_N: 78, KEY_O: 79, KEY_P: 80, KEY_Q: 81, KEY_R: 82, KEY_S: 83, KEY_T: 84, KEY_U: 85, KEY_V: 86, KEY_W: 87, KEY_X: 88, KEY_Y: 89, KEY_Z: 90, LEFT_META: 91, RIGHT_META: 92, SELECT: 93, NUMPAD_0: 96, NUMPAD_1: 97, NUMPAD_2: 98, NUMPAD_3: 99, NUMPAD_4: 100, NUMPAD_5: 101, NUMPAD_6: 102, NUMPAD_7: 103, NUMPAD_8: 104, NUMPAD_9: 105, MULTIPLY: 106, ADD: 107, SUBTRACT: 109, DECIMAL: 110, DIVIDE: 111, F1: 112, F2: 113, F3: 114, F4: 115, F5: 116, F6: 117, F7: 118, F8: 119, F9: 120, F10: 121, F11: 122, F12: 123, NUM_LOCK: 144, SCROLL_LOCK: 145, SEMICOLON: 186, EQUALS: 187, COMMA: 188, DASH: 189, PERIOD: 190, FORWARD_SLASH: 191, GRAVE_ACCENT: 192, OPEN_BRACKET: 219, BACK_SLASH: 220, CLOSE_BRACKET: 221, SINGLE_QUOTE: 222 };
# Kiểm tra trạng thái của nhiều phím
Một khó khăn của các sự kiện bàn phím trong javascript là chỉ có thể xác định được duy nhất một phím nhấn thông qua thuộc tính event.keyCode. Để có thể kiểm tra được trạng thái của nhiều phím được nhấn cùng lúc, ta phải lưu trạng thái của chúng lại khi sự kiện keyDown xảy ra và xóa trạng thái đó đi trong sự kiện keyUp.
var _keypressed = {}; function canvas_keyDown(e){ _keypressed[e.keyCode] = true; } function canvas_keyUp(e){ _keypressed[e.keyCode] = false; }
# Giới hạn các phím được bắt
Sử dụng phương pháp trên, bạn cần lọc các phím cần sử dụng để đối tượng _
**keypressed** không lưu các giá trị không cần thiết. Một cách đơn giản nhất là sử dụng mảng để lưu keyCode của các phím này và kiểm tra trong các sự kiện bàn phím:
const AVAILABLE_KEYS = [ Keys.UP_ARROW, Keys.DOWN_ARROW, Keys.LEFT_ARROW, Keys.RIGHT_ARROW ]; function canvas_keyDown(e){ if(AVAILABLE_KEYS.indexOf(e.keyCode)!=-1) { _keypressed[e.keyCode] = true; } } function canvas_keyUp(e){ if(_keypressed[e.keyCode]) { _keypressed[e.keyCode] = false; } }
# Ví dụ: Di chuyển xe tăng
Trong ví dụ này tôi sẽ tạo một lớp Tank và vẽ theo hình dạng một chiếc xe tăng đơn giản. Tại trang html, tôi sẽ bắt các sự kiện keyDown và keyUp để di chuyển đối tượng này theo 8 tám hướng
function Tank(mapWidth, mapHeight){ this.mapWidth = mapWidth; this.mapHeight = mapHeight; this.radius = 20; this.speedX = 0; this.speedY = 0; this.power = 3; this.cx = mapWidth/2; this.cy = mapHeight/2; } Tank.prototype.draw = function(context){ context.beginPath(); context.fillStyle = "green"; context.arc(this.cx,this.cy,this.radius,0,Math.PI*2,true); context.closePath(); context.fill(); // gun var size = this.radius/2; var angle = Math.atan2(this.speedY,this.speedX);; context.beginPath(); context.fillStyle = "red"; context.rect(this.cx,this.cy - size/2,size*3,size); context.closePath(); context.fill(); // yellow circle context.beginPath(); context.fillStyle = "yellow"; context.arc(this.cx,this.cy,this.radius/2,0,Math.PI*2,true); context.closePath(); context.fill(); } Tank.prototype.move = function(){ this.cx += this.speedX; this.cy += this.speedY; this.left = this.cx - this.radius; this.top = this.cy - this.radius; this.right = this.cx + this.radius; this.bottom = this.cy + this.radius; } Tank.prototype.resetSpeed = function(){ this.speedX = 0; this.speedY = 0; } Tank.prototype.moveUp = function(){ this.speedY = -this.power; } Tank.prototype.moveDown = function(){ this.speedY = this.power; } Tank.prototype.moveLeft = function(){ this.speedX = -this.power; } Tank.prototype.moveRight = function(){ this.speedX = this.power; }
# Xoay đối tượng trong canvas
Một vấn đề khi bạn di chuyển xe tăng là súng không thay đổi hướng và góc xoay cho phù hợp. Nhưng điều này giải quyết rất đơn giản, bởi vì đối tượng
**context** của canvas hỗ trợ phương thức **translate()** và **rotate() **dùng để dịch chuyển và xoay canvas. Như vậy, tôi sẽ thực hiện dịch chuyển tâm xoay đến giữa đối tượng (xe tăng) và gọi rotate() trước khi vẽ nòng súng ra canvas.
Để lấy được góc xoay, ta biết được hai giá trị speedX và speedY chính là hướng di chuyển của đối tượng. Hai giá trị này tạo thành hai cạnh kề của một tam giác vuông và góc của súng cũng chính là góc
**α** được tính bằng công thức tan( **α**) = speedY/speedX.
Như vậy ta có:
tan(
α) = speedY/speedX.
=> α = atan(speedY/speedX)
hoặc atan2(speedY,speedX)
Như vậy ta sẽ vẽ súng tại điểm gốc tọa độ là chính giữa xe tăng. Bạn nên lưu lại trạng thái của context với phương thức save() và gọi restore() để phục hồi lại trạng thái ban đầu cho nó khi thực hiện thay đổi các thông số của nó.
var angle = Math.atan2(this.speedY,this.speedX) context.save(); context.translate(this.cx,this.cy); context.rotate(angle); context.beginPath(); context.fillStyle = "red"; context.rect(0,-size/2,size*3,size); context.closePath(); context.fill(); context.restore();
# Mã nguồn hoàn chỉnh
Tank.js:
function Tank(mapWidth, mapHeight){ this.mapWidth = mapWidth; this.mapHeight = mapHeight; this.radius = 20; this.speedX = 0; this.speedY = 0; this.power = 3; this.cx = mapWidth/2; this.cy = mapHeight/2; } Tank.prototype.draw = function(context){ context.beginPath(); context.fillStyle = "green"; context.arc(this.cx,this.cy,this.radius,0,Math.PI*2,true); context.closePath(); context.fill(); // red rectangle var size = this.radius/2; var angle = Math.atan2(this.speedY,this.speedX); context.save(); context.translate(this.cx,this.cy); context.rotate(angle); context.beginPath(); context.fillStyle = "red"; context.rect(0,-size/2,size*3,size); context.closePath(); context.fill(); context.restore(); // yellow circle context.beginPath(); context.fillStyle = "yellow"; context.arc(this.cx,this.cy,this.radius/2,0,Math.PI*2,true); context.closePath(); context.fill(); } Tank.prototype.move = function(){ this.cx += this.speedX; this.cy += this.speedY; this.left = this.cx - this.radius; this.top = this.cy - this.radius; this.right = this.cx + this.radius; this.bottom = this.cy + this.radius; } Tank.prototype.resetSpeed = function(){ this.speedX = 0; this.speedY = 0; } Tank.prototype.moveUp = function(){ this.speedY = -this.power; } Tank.prototype.moveDown = function(){ this.speedY = this.power; } Tank.prototype.moveLeft = function(){ this.speedX = -this.power; } Tank.prototype.moveRight = function(){ this.speedX = this.power; }
Sample.html:
<html> <head> <script src="tank.js"></script> <script src="keys.js"></script> <script type="text/javascript"> const AVAILABLE_KEYS = [ Keys.UP_ARROW, Keys.DOWN_ARROW, Keys.LEFT_ARROW, Keys.RIGHT_ARROW ]; var _canvas; var _context; var _ball; var _keypressed = {}; function clear() { _context.clearRect(0, 0, _canvas.width, _canvas.height); } function init() { _canvas = document.getElementById("canvas"); _context = _canvas.getContext("2d"); _ball = new Tank(_canvas.width,_canvas.height); draw(); } function canvas_keyDown(e){ if(AVAILABLE_KEYS.indexOf(e.keyCode)!=-1) { _keypressed[e.keyCode] = true; doKeypress(); } } function canvas_keyUp(e){ if(_keypressed[e.keyCode]) { _keypressed[e.keyCode] = false; _ball.resetSpeed(); } } function doKeypress(){ if(_keypressed[Keys.UP_ARROW]) _ball.moveUp(); if(_keypressed[Keys.DOWN_ARROW]) _ball.moveDown(); if(_keypressed[Keys.LEFT_ARROW]) _ball.moveLeft(); if(_keypressed[Keys.RIGHT_ARROW]) _ball.moveRight(); _ball.move(); draw(); } function draw() { clear(); _ball.draw(_context); } window.onload = function(){ init(); _canvas.onkeydown = canvas_keyDown; _canvas.onkeyup = canvas_keyUp; } </script> </head> <body> <canvas id="canvas" width="300" height="200" tabindex="1" style="border: 1px solid;"></canvas> </body> </html>
YinYang’s Programming Blog
Topic thực sự rất cool! Dù là một HTML5 trainer (tự nhận ^^) anh cũng không thể chuẩn bị được các ví dụ như em. Game 2D hoặc những thứ liên quan tới đồ thị, biểu đồ.. chính là điều mà HTML5 được hướng đến để thay thế Flash. Silverlight với dòng ứng dụng dành cho enterprise vẫn có chỗ đứng. Vẫn theo dõi bài viết của em từng ngày ^^
Cảm ơn anh! Sở thích của em là làm game nhưng chưa có điều kiện và khó có thể theo đuổi được. Nhân tiện học HTML5 nên tập trung làm thử mấy game đơn giản. Mấy hôm nay công việc của em hơi bận nên lười viết bài. Hy vọng được anh nhận xét và ủng hộ.
xin chào anh!!! em đang làm đề tài tốt nghiệp điều khiển robot. Mới tìm hiểu về c# .E đang muốn thực hiện việc tạo 1 giao diện giống như game tank của Anh với sự tương tác trực tiếp với robot. Điều khiển robot thông qua giao diện điều khiển xe tank vậy đó. E mong anh chỉ e cách nhanh nhất để tìm hiểu.thank!
Vậy thì bạn có thể tìm hiểu GDI+ trên WinForms, chỉ cần nắm được một vài phương thức vẽ cơ bản là có thể làm được rồi.
nếu muốn thay chiếc xe tăng bằng 1 hình ảnh thì làm sao vậy, mình mới mò vào cái này nên k biết. Mong chỉ giáo.
cái Tank.prototype.draw thì .prototype là j vậy anh ?
Bạn có thể coi câu trả lời cho 1 comment tương tự tại : https://yinyangit.wordpress.com/2012/03/05/html5-canvas-game-xe-tang-d%C6%A1n-gi%E1%BA%A3n-part-2/
Thân!
Mình muốn chỉ cho nó bắt 1 phím thôi thì phải sửa lại như thế nào hả bạn !
Cách ngắn gọn hơn như sau:
trong thẻ
function doKeyDown(evt) {
switch(evt.keyCode) {
case 37 : moveLeft(); break;
case 38 : moveUp(); break;
case 39 : moveRight(); break;
case 40 : moveDown(); break;
case 32 : shoot(); break;
}
}
trong thẻ body thêm onKeyDown = “doKeyDown(event)
Pingback: HTML5 – Canvas: Game xe tăng đơn giản – part 1 | Rai Information
Chào anh!. Em đang tìm hiểu HTML5, em thấy bài viết của anh rất hay.
Em có xem phần vẽ súng và có thắc mắc a: context.rect(0,-size/2,size*3,size);
Tọa độ: 0,-size/2 thì sao lại là ở chỗ tầm giữa màn hình đấy đc a. Mong anh giải thích thêm đoạn này giúp e.
Em cảm ơn!
Pingback: C# – Kiểm tra tổ hợp phím, phân biệt KeyCode, KeyValue và KeyData | NGỌC TẤN KIẾN THỨC LẬP TRÌNH AN GIANG

WARC-Truncated: length

X-ac: 1.dca _dca

X-hacker: If you're reading this, you should visit automattic.com/jobs and apply to join the fun, mention this header.

Server: nginx

Link: <http://wp.me/ptl4u-13C>; rel=shortlink

Vary: Cookie

Content-Type: text/html; charset=UTF-8