Java Scriptの解説

8.ゲームの作り方(その2)

ゲームに必要なマウスの操作について解説します。

1.マウスをクリックすると絵が変わる

クリックすると絵が変わります。もう一度クリックすると元に戻ります。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
<HTML>
<HEAD>
<TITLE>Java Script 例1</TITLE>
<SCRIPT LANGUAGE=”JavaScript”>
<!−−
cnt=new Array(8);
img0=new Image(48,48);img1=new Image(48,48);
img0.src="../game2/back1.gif";img1.src="../game2/peke1.gif";
var i;
cnt[0]=1,cnt[1]=1,cnt[2]=1,cnt[3]=1,cnt[4]=1,cnt[5]=1,cnt[6]=1,cnt[7]=1;
function disp(){
for (i=0; i<8; i++){
document.write"<A HREF='JavaScript:draw("+i+")'><IMG SRC='../game2/back1.gif' BORDER=0 WIDTH=48 HEIGHT=48></A>");}
document.write("<BR>"); }
function draw(n){
if (cnt[n]<0) {document.images[n].src=img0.src;}
if (cnt[n]>0) {document.images[n].src=img1.src;}
cnt[n]=cnt[n]*(-1)
}
//−−>
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=”JavaScript”>
<!−−
disp();
//−−>
</SCRIPT>
</BODY>
</HTML>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

例1表示 ここをクリックして下さい。例が表示されます。

<解説>
1)パラメータ
cnt=new Array(8);cnt[0]=1,cnt[1]=1,cnt[2]=1,...
cntを8個の配列にします。
画像を表示する場所が0から7まで8カ所あります。それぞれの場所でどちらの画像を表示するか決める変数 としてcntを使います。cnt[0]は0番目の場所,cnt[7]最後の7番目の場所に対応します。
2)function disp(){
document.write"<A HREF='JavaScript:draw("+i+")'><IMG SRC='../game2/back1.gif' BORDER=0 WIDTH=48 HEIGHT=48></A>");}
画像を8枚表示します。これは1行で書いて下さい。

<A HREF='JavaScript:draw("+i+")'>これが大事な部分です。
画像(back1)をクリックするとJavaScriptのdrawという関数が動きます。引数としてクリックされた場所の数字が渡されます。
3)function draw(n){
クリックされた場所が例えば3番目とすればcnt[3]は初期条件1ですからimg1の画像(絵)を表示して,
cnt[3]=−1とします。
もう一度,3番目がクリックされるとcnt[3]=−1ですので,img0(背景)が表示されてcnt[3]=1となります。
これでクリックされる毎に絵と背景が交互に表示されます。

これなどは,神経衰弱ゲームに応用できます。

2.マウスの矢印がきただけで絵が変わる

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
<HTML>
<HEAD>
<TITLE>Java Script 例2</TITLE>
<SCRIPT LANGUAGE=”JavaScript”>
<!−−
cnt=new Array(8);
img0=new Image(48,48);img1=new Image(48,48);
img0.src="../game2/back1.gif";img1.src="../game2/peke1.gif";
var i;
cnt[0]=1,cnt[1]=1,cnt[2]=1,cnt[3]=1,cnt[4]=1,cnt[5]=1,cnt[6]=1,cnt[7]=1;
function disp(){
for (i=0; i<8; i++){
document.write("<A HREF='JavaScript:' onMouseOver='draw("+i+")'><IMG SRC='../game2/back1.gif' BORDER=0 WIDTH=48 HEIGHT=48></A>");}
document.write("<BR>"); }
function draw(n){
if (cnt[n]<0) {document.images[n].src=img0.src;}
if (cnt[n]>0) {document.images[n].src=img1.src;}
cnt[n]=cnt[n]*(-1)
}
}
//−−>
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=”JavaScript”>
<!−−
disp();
//−−>
</SCRIPT>
</BODY>
</HTML>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

例2表示 ここをクリックして下さい。例が表示されます。

<解説>
1)例1との違い
<A HREF='JavaScript:' onMouseOver='draw("+i+")'>
この部分が例1と違います。onMouseOverとは,マウスがくればdraw関数を実行します。
マウスの矢印がきただけで,絵が変わります。

3.マウスでボタン操作して絵の移動

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
<HTML>
<HEAD>
<TITLE>Java Script 例3</TITLE>
<SCRIPT LANGUAGE=”JavaScript”>
<!−−
img0=new Image(48,48);img1=new Image(48,48);
img0.src="../game2/back1.gif";img1.src="../game2/peke1.gif";
var i;
var x=3;
function disp(){
for (i=0; i<8; i++){
document.write("<IMG SRC='../game2/back1.gif' BORDER=0 WIDTH=48 HEIGHT=48>");}
document.write("<BR>");
document.images[3].src=img1.src;
} function LEFT(fm){
if (x==0) {return;}
if (x>0) {
document.images[x-1].src=img1.src;
document.images[x].src=img0.src;
x=x-1;
}}
function RIGHT(fm){
if (x==7) {return ;}
if (x<7) {
document.images[x].src=img0.src;
document.images[x+1].src=img1.src;
x=x+1;
}}
//−−>
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=”JavaScript”>
<!−−
disp();
//−−>
</SCRIPT>
<FORM NAME="MyForm"> <=<INPUT TYPE="button" VALUE="左方向" onClick="LEFT(this)"> <INPUT TYPE="button" VALUE="右方向" onClick="RIGHT(this)">=></FORM>
</BODY>
</HTML>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

例3表示 ここをクリックして下さい。例が表示されます。

<解説>
1)function disp(){
document.images[3].src=img1.src;
8枚の背景を表示して,3番のところに絵を表示します。
2)function LEFT(fm){
左への移動
xは,絵の場所です。0から7番まであります。
1.if (x==0) {return;}
左端は0番ですから左端までくれば,ボタンが押されても何もしません。
2.if (x>0) {
xが1以上で,絵の移動をします。
document.images[x-1].src=img1.src;
document.images[x].src=img0.src;
例えば初期値x=3の状態からボタンが押されれば,2番の所に絵を表示して,3番目は背景に変えます。
x=x-1;
1個移動したので,xを1減じます。
3)function RIGHT(fm){
右への移動
if (x==7) {return ;}
右端は7番目ですので,x=7の時は何もしません。
if (x<7) {
document.images[x].src=img0.src;
document.images[x+1].src=img1.src;
例えば初期値x=3の状態からボタンが押されれば,3番目は背景に変えて,4番の所に絵を表示します。 x=x+1;

このようにして,ボタンが押されれば絵が右や左に移動します。



トップページ

趣味のトップページ

娯楽室の各部屋
Scriptの解説へ戻る

Scriptのゲーム Aplletの解説 Appletのゲーム Linuxの部屋 物置部屋