Skip navigation.

CURRICULUM VITAE

The truth is out there

Posts tagged with "Nghiên cứu"

Một ngày đẹp trời - HitTest 20 December 2006

, ,

HitTest 20 December 2006
Một ngày đẹp trời
Thật là một ngày may mắn, sau 2 tuần lễ vật lộn với cái đống game môi trường chết tiệt, giải quyết hàng trăm tình huống, cuối cùng phát hiện ra một điều thật là stupid, hitTest chỉ làm việc đúng trên stage với _root. Thế là công cốc, bao nhiêu giờ code cuối cùng phát hiện ra cứ load LO vào CoursePlayer là các sự kiện kéo thả, di chuyển sai bét nhè. Mình đành thử tự tính offset, scale nhưng tính mãi vẫn sai và công thức trở nên dài lê thê đọc hoa hết cả mắt, còn nói gì đến AI cho game nữa... chán quá quay ra ngồi viết báo cáo đề tài, tập Taichi trần thức với lại download trên mạng mấy cái animation về lưu trữ, rồi lại rách việc viết Blog cho CusnChi, phát hiện ra Cún bây giờ nổi tiếng phết vì Blog có gần 3000 lượt visit, mà search trên google ra ngay chứng tỏ mấy bài viết cho Cún có vẻ được nhiều người đọc (số lượt xem còn nhiều hơn Blog của bố).

Sáng nay đi làm, thấy vé xe được có 1 nước nghĩ rằng ngày hôm nay lại chán rồi, tình cờ lúc chiều viết mấy cái trắc nghiệm, search google Cunchi thế nào lại thành ra search hitTest, tìm được 1 bài của 1 cha bên nước nào ấy hóa ra cung đau khổ vì cái hitTest này, thế là đọc mà nhiều chứ quá đã ngại rồi, không ngờ giải pháp của nó lại đơn giản đến thế, lắp cái chạy ngay...hê hê hê...đã quá, mà thực ra cách này ngày xưa cũng đã dùng với clever là viết overload lên cai method đấy, lập trình AS lại không nghĩ ra, thế mà mất gần 2 tuần của mình, thế mới biết kỹ năng search của mình kém thật, và CunChi giúp bố đắc lực thật :-D.

Copy luôn ra đây để lúc nào quên còn đọc lại, với lại còn phải cám ơn chả nữa :-D


hitTest in loaded movies
10th January 2004

Boy do I feel foolish. Not only can I not believe that I never knew this, but I can’t believe I never had a problem with this. I only now just discovered that the x, y point fed to hitTest must be in terms of the main Stage, or global coordinates. How did this escape me for so many years and how did this only cause a problem now???

This revelation came about as I am redesigning my site. I’ve always kept the main content window in the upper left corner, due to the fact that I always loaded the experiments into a level, not a movie clip. I had to do this because many of my experiments refer to _root, and some of them would be messed up if loaded into a clip. So I kept loading into a level and kept the level at 0, 0.

Then, along came _lockroot. Now I can load my experiments into a clip, which can be anywhere on the stage. Assigning _lockroot=true to the clip keeps the clip’s _root contained to the clip. Great!

But once I did that, I found that a whole lot of my experiments still weren’t working right. I tracked it down to those which used hitTest. None of the tests were working right. So, after trying everything else, I turned to ASDG. Lo and behold, the hitTest point must be in terms of Stage (global) coords. Because my experiments sometimes just test _xmouse or _ymouse, or test the position of a clip against another clip, and the window containing the experiment’s local coords were now different than the global coords, it was always off. Because my experiment window had always been at 0, 0 before, I never ran into this problem. Wow.

Now, how to fix it? I didn’t really want to search through almost 600 files looking for hitTests. And even if I did, just using _root._xmouse wouldn’t help, because of _lockroot - _root._xmouse would still not be the global stage _xmouse. And in the case of testing a clip against the x, y coords of another clip. There’d be no easy way to change it. I’d have to go in and write a localToGlobal function in every single experiment that had a hitTest in it.

Finally, I went to bed, where I do my best thinking. As usual, lying there trying to go to sleep, the solution came to me. Overwrite hitTest to include a localToGlobal conversion. here’s what I came up with:

MovieClip.prototype.oldHitTest = MovieClip.prototype.hitTest; MovieClip.prototype.hitTest = function(x, y, sf){ var obj = {x:x, y:y}; this._parent.localToGlobal(obj); return this.oldHitTest(obj.x, obj.y, sf); }
This saves the original hitTest function as “oldHitTest” in MovieClip.prototype. Then creates a new version. This takes the testing point and assigns it to an object. Then it runs localToGlobal on the point. “this._parent” refers to the timeline that the calling object is on. If that timeline’s coordinates are different than global, the object will now contain the converted global coordinates. We then use these coordinates to call “oldHitTest”, which will return true or false, and pass that back to the caller.

Seems to work, and saved me many hours.

This entry was posted on Saturday, January 10th, 2004 at 9:38 am and is filed under Flash. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

http://www.bit-101.com/blog/?p=499

4 Responses to “hitTest in loaded movies”
Vera Says:
January 10th, 2004 at 12:39 pm
That’s interesting. I also do my best thinking in bed, but it usually happens in the morning. I must be processing stuff all night long because when I wake up, the answer is staring at me.

Zoomfreddy Says:
January 14th, 2004 at 3:23 am
Something relative to hitTest… as the hitTest function evaluates values, you can use any reference for the hittest, not just _x, & _y properties, of course the shape/bounding box option can’t be used on this scenario, example:

if(this.hitTest(_root.someArray([0], _root.some_mc._alpha)){
trace(”works!!!”)
}

is this useful?… yes, i used it once to make a game.
is this the a correct way to code? I don’t think so

fredo Says:
January 15th, 2004 at 2:11 pm
if(this.hitTest(_root.someArray([0], _root.some_mc._alpha)){
trace(”works!!!”)
}

WTF!! That’s insane!!

Antonio Says:
February 8th, 2004 at 12:49 pm
I have a little trouble when i try to public the .fla of 040129, flash say to my self that
“**Error** S?mbolo=planet, capa=Layer 1, fotograma=1:L?nea 1: No se ha podido cargar la clase ‘com.bit101.BilliardBall’.

Total de errores de ActionScript: 1 Errores comunicados: 1″

i only pretend to talk it to you.
Thank for do all this wonderfull thing…i stay hours in front of mi monitor watching your works.

Sorry about my english.
Tags: | Edit Tags



Wednesday 20 December 2006 - 04:43PM (ICT) Edit | Delete | Permanent Link | 0 Comments

TÌM THÊM ĐƯỢC MẤY BÀI VỀ REPLACE
Không hiểu sao thàng Action Script không hỗ trợ hàm Replace, khi cần xử lý ngày tháng tiếng Việt trong trường đăng nhập, mình định viết hàm này nhưng không hiểu sao lại mở google ra search, ra một đống, chả biết dùng thằng nào hơn, thôi cứ viết ra 3 hàm gần nhất để lúc nào tiện tham khảo, mình thì mình dùng thằng đầu tiên.


CÁCH 1
String.prototype.replace = function(p_str:String,p_repl:String) {
var s:String = this.toString();
var position:Number;
while((position = s.indexOf(p_str)) != -1) {
position= s.indexOf(p_str);
s = s.substring(0,position)+p_repl+s.substring(position+p_str.length,s.length)
}
return s
}

//var str = "March Wed"
//trace(str.replace("March","Tháng Ba"));

var str=Date().toString();
str=str.replace("Mar","Tháng Ba, ngày mùng");
str=str.replace("Wed","Thứ tư,");
trace(str);
//trace(Date().replace("Mar","Tháng Ba"));

function ConvertVN(O) {
var str = O;
str=str.replace("Mar","Tháng Ba, ngày mùng");
str=str.replace("Wed","Thứ tư,");;
return(str);
}

//trace(ConvertVN(Date()));

Ngay=ConvertVN(Date());

CÁCH 2
function searchAndReplace(holder, searchfor, replacement) {
temparray = holder.split(searchfor);
holder = temparray.join(replacement);
return (holder);
}

//myreplaced = searchAndReplace("The quick sliver fox jumped over the lazy rown dog", "brown", "orange");
myreplaced = searchAndReplace(Date(), "Mar", "thứ ba");
trace(myreplaced);
//traces "The quick sliver fox jumped over the lazy orange dog"


CÁCH 3
Actionscript 2.0 has serious shortcomings with regard to String functions. Luckily I’ve not been the only-one frustrated by this, and lot’s of people have already done lot’s of work to overcome Macromedia’s shortcomings. Earlier I found this “String Functions Macromedia forgot“, and posted about how I made it in to a Toolkit instead of extending the String prototype. Today I wrote a function that is a small alteration of the String fullreplace function that might be very useful for you too.

What the fullreplace function does is too replace in a given String s occurrences of a sub-string matchwhat with a String replacewith. I was trying to use this function in the context of a text search functionality. In my Flash application I gave people the opportunity to search for a certain string. And have that string highlighted in the text results. Function fullreplace did not completely have the intended results.

For example;

When searching for “daan”, a search result “… Daan Roosegaarde …” would be displayed as; “… daan Roosegaarde …”. Of course I would have preferred this to be; “… Daan Roosegaarde …”

I called my function fullEmphasize. The function searches ignoring case, but replaces the matchwhat string with an emphasized version of the matchwhat that preserves the upper- and lowercases of the searchresult.

// used by fullEmphasize function, this function returns
// an array of the lowercase string split by the lowercase
// word we’re replacing
public static function rawfind(s:String ,match:String):Array
{


var sources = s.toLowerCase();
match = match.toLowerCase();
return sources.split(match);

}

// Emphasize all occurences of `matchwhat` with “”+matchwhat+”
public static function fullEmphasize(s:String, matchwhat:String):String
{


var returnstring = “”;
var matches = rawfind(s,matchwhat); var atindex = 0;
var endat = matches.length - 1;

for(var i=0; i<matches.length; i++)
{


var matchedword = matches; returnstring += s.substr(atindex, matchedword.length);

if(i < endat)
{


atindex += matchedword.length;
returnstring += “”+s.substr(atindex,matchwhat.length)+””;

}

atindex += matchwhat.length;

}

return returnstring;

}


Thí nghiệm ảo và các bài giảng điện tử là gì (kèm ví dụ minh họa) - Monday, October 02, 2006 vào 23:58

, , ,

Thí nghiệm ảo và các bài giảng điện tử là gì (kèm ví dụ minh họa) - Monday, October 02, 2006 vào 23:58



1/ THÍ NGHIỆM ẢO VÀ BÀI GIẢNG ĐIÊN TỬ



Thí nghiệm ảo và các bài giảng điện tử là những thuật ngữ ngày càng trở nên quen thuộc với chúng ta, với sự phát triển mạnh mẽ của công nghệ thông tin và truyền thông, cùng với Internet và học tập điện tử, thí nghiệm ảo và bài giảng điện tử trở nên một thành phần thiết yếu trong giáo dục hiện đại.
Phạm vi của thí nghiệm ảo và bài giảng điện tử, không chỉ giới hạn trong lĩnh vực giáo dục & đào tạo mà mở rộng trong mọi ngành, mọi lĩnh vực của đời sống từ quảng bá sản phẩm, dịch vụ trên web, đến trong các hình thức huấn luyện đa phương tiện dùng trong doanh ngiệp, dịch vụ tư vấn, chăm sóc khách hàng, làm việc cộng tác...
Để có một cái nhìn khái quát và cụ thể chúng ta hãy tìm hiểu xem thế nào là thí nghiệm ảo và bài giảng điện tử, khả năng ứng dụng và cách để chúng ta có thể xây dựng được một phần mềm thực hiện tính năng thí nghiệm ảo và bài giảng điện tử:



Bài giảng điện tử : là tập hợp những tài nguyên số dưới hình thức các đối tượng học tập, xâu chuỗi với nhau theo một cấu trúc nội dung, định hướng theo chiến lược giáo dục của nhà thiết kế, bài giảng điện tử còn được gọi là khóa học hay cua học.
Thí nghiệm ảo: Là tập hợp các tài nguyên số đa phương tiện dưới hình thức đối tượng học tập, nhằm mục đích mô phỏng các hiện tượng vật lý, hóa học, sinh học...xảy ra trong tự nhiện hay trong phòng thí nghiệm, có đặc điểm là có tính năng tượng tác cao, giao diện thân thiện với người sử dụng và có thể mô phỏng những quá trình, điều kiện tới hạn khó xảy ra trong tư nhiện hay khó thu được trong phòng thí nghiệm. Thí nghiệm ảo giúp giảm thiểu việc học chay, dậy chay thường gặp do thiếu phương tiện, điều kiện thí nghiệm giúp người học chủ động học tập phù hợp với tinh thần người học là trung tâm của giáo dục hiện đại.
Thực và ảo: Bài giảng điện tử giống bài giảng truyền thống đều nhằm giải quyết một hay một số mục tiêu học tập cụ thể, tuân thủ nhưng nguyên tắc sư phạm. Tuy nhiên có nhiều nét đặc thù là bài giảng truyền thống hường được có nhấn mạnh vai trò của người thầy, bài giảng điện tử là hình thức học tập khai thác các tính năng hỗ trợ của công nghệ thông tin nên vai trò của người thầy dường như “mờ” đi, chủ yếu qua các phương tiện giao tiếp điện tử như diễn đàn, chat, công cụ làm việc nhóm, audio, video confference...
Thời gian và địa lý cũng bị xóa nhòa, người học tự học theo nhu cầu và năng lực của mình và được hỗ trợ bởi các công cụ hỗ trợ học tập...
Trong việc thiết kế bài giảng điện tử cũng có nhiều vai trò (14) so với thiết kế bài giảng truyền thống, cách thiết kế cũng khác biệt với thiết kế bài giảng truyền thống. Với bài giảng điện tử, người học được phép tự chọn một lộ trình học tập phù hợp nhất với khả năng của mình, do vậy bài giảng điện tử có thể hỗ trợ hình thức học tập thích nghi đòi hỏi phải thiết kế một cách cẩn thận và cần nhưng chương trình đặc biệt để chạy được những bài giảng thiết kế kiểu này (phần mềm quản trị học tập, trình điều khiển khóa học...).
Thí nghiệm ảo cũng giống với bài giảng điện tử, ngoài ra, một ưu điểm của thí nghiệm ảo trên máy tính là có thể giả lập những tình huống, điều kiện tới hạn, khó xảy ra trong thế giới thực giúp người học nắm được bản chất của vấn đề. Tuy nhiên, thí nghiệm ảo không thể thay thế được kinh nghiệm thực tiễn, hãy thử tưởng tượng phi công lái máy bay hạ cánh khi chỉ toàn thực tập trên mô hình ảo, hay một bác sĩ phẫu thuật mỗ tim trong khi lại chỉ toàn kinh nghiệm với dao mổ ảo trên máy tính.
Quan hệ giữa thí nghiệm ảo và bài giảng điện tử: Thí nghiệm ảo và bài giảng điện tử gắn bó chặt chẽ với nhau, không thể tách rời, thí nghiệm ảo giúp tăng hiệu quả giáo dục, huấn luyện của bài giảng điện tử qua tính năng tương tác cao với người tiến hành thí nghiệm, với hệ thống trong khi bài giảng điện tử giúp xâu chuỗi các thí nghiệm ảo theo một trình tự logic, mang tính giáo dục. Thí nghiệm ảo cùng với bài giảng điện tử giúp áp dụng được cả 3 yếu tố giáo dục hiện đại trong phần mềm dạy học như HỌC + THỰC HÀNH + KIỂM TRA ĐÁNH GIÁ, cần thiết hiệu quả học tập đạt được cao.
Trò chơi giáo dục: Theo quan điểm giáo dục hiện đại, không có sự phân biệt giữa một đơn vị học tập điện tử (đối tượng học tập hay Learning Object còn gọi là LO) với một thí nghiệm ảo, hay một đơn vị kiểm tra đánh giá, vì thực chất các đơn vị này đều có tính năng tương tác người học, khả năng đánh giá tiến độ người học theo mức độ đáp ứng các yêu cầu đề ra, cũng trên quan điểm như vậy, thí nghiệm ảo về thực chất không khác một game giáo dục... tuy nhiên để làm được điều này cần đảm bảo tính chất độc lập, hay mỗi thí nghiệm ảo phải có khả năng hoạt động độc lập như một đối tượng học tập, được thiết kế để giải quyết một hay một số mục tiêu (nhiệm vụ học tập cụ thể).Trò chơi giáo dục giúp tăng hiệu quả học tập qua việc khuyếnh khích người học chủ động học tập thể hiện tinh thần "học mà chơi, chơi mà học"
Multimedia: Tính năng và sự hỗ trợ của công nghệ đa phương tiện là yếu tố quan trọng nâng cao hiệu quả của thí nghiệm ảo và bài giảng điện tử. Hãy thử tưởng tượng một chương trình Tivi show mà không có tiếng, hay một game trò chơi mà không hoạt hình (animation)... một châm ngôn xưa “trăm nghe không bằng một thấy” là minh họa cho trường hợp này, nhờ các tính năng multimedia, sự buồn chán của việc đọc text trên Internet được giảm thiểu, không còn giới hạn 20 dòng trên một trang màn hình nữa vì với một đoạn hoạt hình kèm theo âm thanh sẽ giúp người học tiếp thu bài học nhanh chóng và dễ nhớ hơn.
Một yếu tố cần tính đến là những hoạt cảnh và âm thanh thường tốn nhiều bandwidth, sử dụng những công nghệ nén đi kèm với Macromedia, cùng với sự cải tiến không ngừng về bandwidth của hạ tầng Internet, rào cản này có thể vượt qua được.
Đề minh họa cho những vấn đề đã nêu ở trên, chúng ta cùng xem một vài thí nghiệm ảo có mô phỏng hiện tượng tự nhiên (các thí nghiệm một phần lấy từ bộ phần mềm môi trường và thực tập ảo khoa học và công nghệ vật liệu). Ở đây sử dụng các component được chúng tôi xây dựng trên công nghệ Macromedia để xây dựng thí nghiệm, các tính năng đa phương tiện, khả năng tương tác và vận hành đa nền (PC, Web) đều được thực hiện, các thí dụ mang tính minh họa.

Component là sự nâng cấp từ những đoạn phim thông minh (smart movie clip) hay những đoạn phim có thể lập trình được với ngôn ngữ lập trình hành động Action Script, component có tính đóng gói, giao diện thiết kế, khả năng lập trình và tái sử dụng ... những tính năng ưu việt này giúp cho nhà thiết kế thí nghiệm ảo nhanh hơn và thuận tiện hơn, dễ bảo dưỡng, phân phối, giảm chi phí thiết kế thí nghiệm.




2/ MỘT SỐ THÍ NGHIỆM ẢO MINH HỌA (một phần lấy từ 2 bộ phần mềm môi trường và khoa học vật liệu)



Ở đây giới thiệu ba thí nghiệm ảo:




2.1/ Thí nghiệm 1: về hiện tượng thiên nhiên, sấm và sét hay sự phóng điện của các đám mây:








Hình thí nghiệm N0 1




Giao diện là một khung cảnh thiên nhiên tươi đẹp, với ông mặt trời tỏa sáng, một ngọn đồi và cây cối xanh tươi. Trên bầu trời có 1 đám mây ban đầu lững lờ trôi với vận tốc ban đầu là V1, kích thước đám mây là S1 (ở đây mô phỏng 2 chiều nên coi kích cỡ các đám mây tỉ lệ với diện tích của chúng). Có 2 hộp hiện thị phía trên màn hình mô tả diện tích và tên của các đám mây, người học tìm hiểu từng đám mây bằng cách di chuyển con trỏ chuột trên mỗi đám mây để hiện tên và diện tích của nó trên hộp hiển thị.
Đối tượng thí nghiệm: ở đây là các đám mây: Có sẵn một đám mây bay lững lờ trên bầu trời, người tiến hành thí nghiệm có thể tự tạo thêm các đám mây mới.
Tương tác người tiến hành thí nghiệm: Người học có thể thao tác trên các đám mây qua các tương tác kéo thả, mỗi đám mây sinh ra đều có 1 vấn tốc ban đầu và hướng bay xác định (là một giá trị ngẫu nhiên). Bằng việc kéo thả, người học có thể di chuyển các đám mây đến các vị trí khác nhau trên màn hình hay chủ động tạo ra một vụ va chạm giữa 2 đám mây với nhau (bấm lên đám mây, giữ chuột kéo đến vị trí mới, nhả chuột).
Tương tác giữa các đối tượng thí nghiệm: Mỗi đám mây là một đối tượng thí nghiệm, mỗi đám mây có một số thuộc tính như : tên, kích thước, vận tốc, hướng chuyển động, và tên của đối tượng mà nó va chạm, ở đây các đối tượng có tương tác là các đám mây và bản sao của chúng mà thôi.

Ông mặt trời là một nút bấm đặc biệt, bằng cách bấm lên biểu tượng ông mặt trời, người học chủ động tạo ra một đám mây mới với những thuộc tính xác định. Bằng cách chủ động tạo ra va chạm qua việc kéo thả hay để cho các đối tượng thí nghiệm tự va chạm nhau trong khi chuyển động ngẫu nhiên, người học có thể tạo ra một tương tác giữa 2 đối tượng thí nghiệm ảo (đám mây và các bản sao của nó)
Điều gì sẽ xảy ra khi xuất hiện tương tác (va chạm): Trước hết 2 đám mây sẽ nhập vào nhau, đám mây lớn sẽ “nuốt” đám mây bé, tia sét xuất hiện kèm theo tiếng sấm, mưa sẽ rơi, sau đó chỉ còn lại một đám mây, một chu trình kế tiếp sẽ xảy ra và chỉ đám mây nào lớn nhất còn tồn tại cuối cùng.

Việc lập trình cầu kỳ hơn sẽ kiểm soát cả giới hạn của các đám mây, mây sẽ chỉ bay trên bầu trời và khi va chạm nhau, sự biến mất của một đám mây này sẽ kèm theo sự năng và lớn hơn của đám mây kia (năng hơn thì bay thấp xuống và mầu sẫm hơn) sau sấm sét và mưa, đám mây sẽ nhẹ hơn, sáng hơn và bay cao hơn...Nhưng trong giới hạn mô tả về hiện tượng sấm sét thì mức độ mô phỏng như trên là vừa đủ, mô phỏng các hiện thực thì càng tốn nhiều thời gian và công sức thiết kế, lập trình.Nhưng trong một mô phỏng cơ bản này ta đã nhìn thấy mọi khía cạnh của thí nghiệm ảo được thể hiện, từ sự tương tác người học đến đối tượng thí nghiệm, đến tương tác giữa các đối tượng thí nghiệm với nhau, đến sự tích hợp multimedia (âm thanh và hoạt hình)...




Hoạt động :



1/ Tìm hiểu xem điều gì xảy ra khi 2 đám mây gặp nhau?



2/ Tìm hiểu xem điều gì xảy ra khi một đám mây mới được sinh ra?



3/ Tìm hiểu một đám mây sẽ bay đi đâu?



4/ Làm thế nào để sinh ra sấm sét khi 2 đám mây bay ở 2 độ cao khác nhau?







2.2/ Thí nghiệm thứ 2 : Một khâu trong chu trình thức ăn, cá ăn mồi, ở đây chúng ta minh họa rõ thêm về vai trò của các thành phần component trong khi xây dựng thí nghiệm ảo.












Hình thí nghiệm N0 2




Các đối tượng thí nghiệm: ở đây là một bể cá, để mục đích mô phỏng, chúng tôi làm thành bề dầy và có mầu khác với mầu nước.
- Đối tượng cá giống như thí nghiệm 1 có các thuộc tính trong đó quan trọng là : loại cá, loại mồi nó sẽ ăn, hướng và tốc độ bơi. Đối tượng cá sẽ di chuyển trong giới hạn của bình chứa nó (ở đây chưa phân biệt nước và không khí).
- Đối tượng thứ 2 là mồi ăn cho cá: có các thuộc tính là tên mồi ứng với loại cá sẽ ăn loại mồi này.
Lưu ý ở đây là trong bể có 4 loại cá ứng với 4 loại mồi khác nhau nhưng khi thiết kế chỉ sử dụng một component cá và một component môi cá. Mỗi component có nhiều giao diện khác nhau nhưng đều chia sẻ các tính chất và phương thức chung của lớp mà nó đại diện ví dụ như lớp cá là tên, loại mồi, hướng và tốc độ di chuyển thì mồi là tên, loại mồi và loại cá sẽ ăn mồi đó.
Việc xây dựng component là một công việc phức tạp, tốn công sức nhưng lại được hưởng lợi ích khi sử dụng nó trong thiết kế thí nghiệm ảo do nó có giao diện thiết kế sống “live” giúp người thiết kế trực quan được trạng thái của bản sao đối tượng trên khung thiết kế cũng như giảm thiểu nỗ lực bảo dưỡng và chia sẻ giữa các dự án...
Các tương tác ở đây gồm:








Hình : Live preview của UI




Tương tác giữa người tiến hành thí nghiệm: Lên bình chứa, người tiến hành thí nghiệm có thể di chuyển bình chứa (tất nhiên là chưa tính đến việc di chuyển cá đồng thời do thí nghiệm này chỉ mang tính minh họa, chưa có đối tượng nước)
Đối tượng cá: người tiến hành thí nghiệm có thể di chuyển từng bản sao đối tượng cá bằng cách kéo thả trong và ra ngoài phạm vi bình chứa, sau khi di chuyển cá lại tiếp tục hướng bơi với vận tốc ban đầu của nó





Hình Đối tượng cá




Đối tượng mồi, người tiến hành thí nghiệm có thể di chuyển đối tượng mồi bằng cách kéo thả, mỗi loại mồi tương ứng với mỗi loại cá





Hình Đối tượng mồi





Tương tác giữa các đối tượng: Khi cá va chạm với thành bình, nó sẽ đổi hướng bơi ngược lại, do thành bình giới hạn và các chỉ bơi theo 1 phương xác định nên nếu thả cá trong bình, nó sẽ bị giam trong đó và sẽ bơi quanh quẩn với cùng tốc độ.
Nếu người tiến hành thí nghiệm di chuyển cá ra khỏi phạm vi bình chứa thì cá sẽ bơi mất khỏi màn hình do nó được tự do không còn bị giới hạn
Khi ca va chạm với mồi, nó sẽ kiểm tra tính chất của mồi là loại mồi gì và nếu chén được, nó sẽ chén và mồi biến mất. Mỗi loại cá chỉ ăn một loại mồi ví dụ cá chép chén mồi châu chấu, cá mè chén giun...cá sẽ bỏ qua khi gặp mồi không phải sơ thích của nó.
Để đơn giản, mồi không di chuyển, có 2 mồi được đặt sẵn cùng phương loài cá ăn nó, còn 2 mồi thì không, người tiến hành thí nghiệm có thể thí nghiệm kéo thả 2 con mồi (hoặc cá) trùng với nhau để xem nó có phải là loại mồi mà cá ưa thích không?



Hoạt động :



1/ Tìm hiểu xem cá nào ăn loại mồi nào?



2/ Tìm hiểu xem điều gì xảy ra khi cá bơi gặp thành bình?



3/ Điều gì xảy ra khi cá bơi ra khỏi phạm vi bình chứa?



4/ Nếu để tự nhiên, cuối cùng trong bình cá sẽ còn gi?








2.3/ Thí nghiệm 3: Đo nhiệt độ của các vật thể: Trên khung hình là một căn phòng ảo, với các đối tượng








Hình thí nghiệm N0 3




Đối tượng: Nhiệt kế thay đổi nhiệt độ theo nhiệt độ đối tượng mà nó được đặt lên
4 cục đá, ở nhiệt độ 00C, bình nước ở nhiệt độ 200C và ấm đun nước ở 300C, một bếp đun nước khi bật sẽ cháy và đun nước lên nhiệt độ sôi (1000C), một hòn bi thép có nhiệt độ 600C.

Công cụ: có thêm công cụ hỗ trợ là hình con trỏ, và hình bàn tay có thể cầm nắm các vật để di chuyển
Tương tác người tiến hành thí nghiệm: Sử dụng con trở hay bàn tay cầm nắm để di chuyển các vật thể (cái bình, cục nước đá, nhiệt kế, bình nước, ấm nước), bấm để bật tắc các tính năng trên vật thể như bấm để bật lửa (nút đen trên đĩa dưới ấm nước), bấm để nghe lời thoại giải thích về trạng thái của vật thể (bấm nút đen trên bình nước, ấm nước…). Với hòn bi sắt, người tiến hành thí nghiệm có thể cầm ném hay thả nó xuống nền nhà, nó sẽ nảy lên khi chạm nền nhà hay tường vì có thuộc tính khối lượng và độ đàn hồi định trước (bỏ qua va chạm với các vật thể khác).




Tương tác đối tượng với nhau: Khi nhiệt kế được đặt trên vật thể nào, hay va chạm với vật thể nào đang di chuyển thì nó lập tức thể hiện nhiệt độ của vật thể, ấm đun nước nếu đặt trên lửa (bật lửa hay chịu tác dụng của lửa) thì nước sẽ được đun lên đến nhiệt độ sôi.
Ở nhiệt độ phòng, nhiệt kế chỉ nhiệt độ 250C và khi chạm tay người nó chỉ nhiệt độ cơ thể là 370C



Hoạt động :



1/ Tìm hiểu xem điều gì xảy ra khi cầm nhiệt kế đo nhiệt độ từng đối tượng?



2/ Ném hòn bi sắt, kiểm tra xem điều gì xảy ra khi hòn bi va chạm vào nhiệt kế?



3/ Dùng nhiệt kế đo nhiệt độ của ấm nước, bật lửa lên thì điều gì sẽ xảy ra, cầm nhiệt kế bỏ ra ngoài phạm vi ấm nước thì điều gì sẽ xảy ra, bỏ tay ra khỏi nhiệt kế điều gì sẽ xảy ra?



4/ Bấm vào những nút đen trên các vật thể thì sẽ xảy ra điều gi?



ThS. Vũ Anh Minh





Việc thiết kế các thí nghiệm ảo khó và tốn nhiều công sức, để biết thêm thông tin, liên hệ với chúng tôi theo địa chỉ minh_va@yahoo.co.uk.



Liên hệ mua CD phần mềm, xem thông tin tại địa chỉ:



http://www.itims.edu.vn/thinghiemao/muacd.htm





Tôi không có diều kiện dùng thử CD phần mềm GD bảo vệ môi trường của bạn. Nhưng tôi xem qua phần giới thiệu trên trang web thì tôi thấy phần mềm khá bổ ích, cần thiết.( Nếu tôi không nhầm thì đây là bộ phần mềm GD BVMT đầu tiên ở VN do người mình làm thì phải.). Các phần Flash của các bạn khá ấn tượng. Nhưng nếu các bạn đầu tư thêm một chút cho phần giao diện (về font, hình đồ họa) thì phần mền sẽ hấp dẫn người sử dụng hơn. Đặc biệt là đối tượng học sinh. Còn phần nội dung, hi vọng các bạn sẽ phát triển thêm nhiều chủ đề về GD MT nữa không chỉ cho đối tượng học sinh mà cho cả đối tượng sinh viên nữa.

Chúc phần mềm của các bạn sớm được ứng dụng vào trong thực tế.
allnameicanget@yahoo.com
Download Opera, the fastest and most secure browser
December 2009
S M T W T F S
November 2009January 2010
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31