初めまして!僕はミニゲームを作ってみたいと考えてるんですが、まず何から始めていいかわかりません。どうか教えて下さい。よろしくお願いします!!

このQ&Aに関連する最新のQ&A

A 回答 (5件)

パソコンの月刊誌が置いてある本屋に行って、


電波新聞社のマイコンBASICマガジンを買ってきましょう。
いろいろな言語が、初心者向けに解説されています。
私も幼い頃(約17年前?)に読んでいましたよ。
今じゃこんな人...。
    • good
    • 0

ゲームを作ってみたいあなた、一人で?大勢で?


仲間を探すのもいいかもしれません
(一人より大勢の方がアイディアもたくさんでるでる)
サークルのホームページもいっぱいあります。
企画書作って送ってみては?
    • good
    • 0

まず、JavaScriptでのミニゲーム制作は、


C++や他の言語で作るのとは少しコツが違って
くると思います。
(私はゲーム会社で働いていますが、、、)

まずもって、以下の順番で考えてみてください。
(1)JavaScriptの基本的な文法等は理解していて、
 参考書をみれば、なんとか、簡単なことなら
 作成できる。
 YES→(3)へ NO→(2)へ
(2)JavaScriptの基本を勉強するため、非常に簡単そうな
 入門書を購入し、一度勉強してみましょう。
(3)「DHTML」と書かれた本を購入し、一度勉強してみま
 しょう。特にレイヤーを動かしたり、ドラッグしたり
 といった機能はゲーム作成において非常に強力に機能
 すると言えます。また、普段は使わないであろう、
 「マウスの座標の取得」なども「DHTML」の本であれば、
 まず間違いなく記述されています。
 「DHTML」と書かれた本を購入することにより、IEと
 NNの互換のとりかたなども学べるでしょう。
 NN6との互換の取り方はまだ、書籍には書かれてない
 ことも多いでしょうが、そう言う場合は、私にでも
 ご相談下さい。可能な限りお答えします。
(4)何度か他の人が作っているものを自分なりに制作してみ
 ましょう。
 たとえば、私のHPに、ミニゲームとも呼べないような
 ジグソーパズルがあります。この程度のものから、
 作ることを考えてみましょう。
 すでに作られているものを参考にして作るわけですから、
 わからなければ、それを作った人に聞けるわけです。
 これほど好都合なことはないといえるでしょう。
(5)自分のゲームをどんどん作っていきましょう。
 ここまでくれば、あなたは自分でルールを決めて、自分
 で作り始めても、それほど戸惑わなくなっているでしょう。
 それに、もしも困ったときは・・・???

        教えてGOO!!

黒蝶81でした。
 

参考URL:http://users.goo.ne.jp/kokucho81/
    • good
    • 0

まずは神経衰弱を作れ!



と、他人にお題を出された方が良いですか?(笑)
まずは作るゲームのお題を考えて、それを実現させるためにはどうしたら良いかという方向性でプログラミングの本を見ながらぼちぼちコーディングしてみては如何でしょう。
1本完成すればこつが掴めると思います。
    • good
    • 0

まず、ゲームをつくるためにはルールが必要ですよね?それをまず決めます。



それと平行して、プログラムで、それをどう達成できるか?という様に進めていくといいと思います。

あまりに単純ですが、それくらいしか言えませんね(^^;
あと、ほかの人が作ったゲームを解体して考えるのもいいと思いますよ

参考URL:http://game.gr.jp/GameWeb/Display/index.cgi
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qページを再読み込み後、再読み込み前の状態に復元する方法が分からず困っております。

(多分)JavaScriptで分からない所がございましたので、ご教示いただける方がいらっしゃいましたら、よろしくお願いします。

【やりたいこと】
1. ボタンをクリックするとボタンにチェック(とりあえず色)をつけた上で、ページの再読み込みをしたいです。
2. ページの再読み込み後、ページの再読み込み前の状態に復旧したい(ページの再読み込み前にチェックしていたボタンの状態を保持しておきたい)です。

【状況】
1はできております。
ただし、1のページの再読み込み後、今までチェックしていたボタンが未チェック状態に戻ってしまいます。

【ソースコード】
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>title</title>
<script type="text/javascript">
<!--
var f=new Array(5);
f[0]=0;
f[1]=0;
f[2]=0;
f[3]=0;
f[4]=0;
f[5]=0;

function jump(b){
if (f[b]==0){
document.getElementById("form_check").elements[b].style.background='#dbed00';
document.getElementById("form_check").elements[b].style.color='#323232';
f[b]=1;
} else {
document.getElementById("form_check").elements[b].style.background='#d6d6d6';
document.getElementById("form_check").elements[b].style.color='#666666';
f[b]=0;
}
var text = "";
if (f[0] == 1) {
text += document.getElementById("form_check").a.value;
}
if (f[1] == 1) {
text += document.getElementById("form_check").b.value;
}
if (f[2] == 1) {
text += document.getElementById("form_check").c.value;
}
if (f[3] == 1) {
text += document.getElementById("form_check").d.value;
}
if (f[4] == 1) {
text += document.getElementById("form_check").e.value;
}
if (f[5] == 1) {
text += document.getElementById("form_check").f.value;
}
if (text) {
alert("チェックされているのは" + text + "です。\n「OK」で再読み込み実施。");
} else {
alert("何もチェックされていません。\n「OK」で再読み込み実施。");
}
}
-->
</script>
</head>

<body>
<form id="form_check" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<p><input type="submit" value="a" name="a" onclick="jump(0)" onkeypress="jump(0)" /></p>
<p><input type="submit" value="b" name="b" onclick="jump(1)" onkeypress="jump(1)" /></p>
<p><input type="submit" value="c" name="c" onclick="jump(2)" onkeypress="jump(2)" /></p>
<p><input type="submit" value="d" name="d" onclick="jump(3)" onkeypress="jump(3)" /></p>
<p><input type="submit" value="e" name="e" onclick="jump(4)" onkeypress="jump(4)" /></p>
<p><input type="submit" value="f" name="f" onclick="jump(5)" onkeypress="jump(5)" /></p>
</form>
</body>
</html>

どこかご教示いただけるようでしたら、ご教示いただければと思います。
以上、よろしくお願いします。

(多分)JavaScriptで分からない所がございましたので、ご教示いただける方がいらっしゃいましたら、よろしくお願いします。

【やりたいこと】
1. ボタンをクリックするとボタンにチェック(とりあえず色)をつけた上で、ページの再読み込みをしたいです。
2. ページの再読み込み後、ページの再読み込み前の状態に復旧したい(ページの再読み込み前にチェックしていたボタンの状態を保持しておきたい)です。

【状況】
1はできております。
ただし、1のページの再読み込み後、今までチェックしていたボタンが...続きを読む

Aベストアンサー

pick52さん、ご指摘ありがとうございます。ぼけてました。

仕様もちょっと勘違いしてたので、こんな感じでどうでしょ?

//hoge.php
<?
session_start();
$req_s=$_REQUEST["s"];
$ses_s=&$_SESSION["s"];
if(is_array($ses_s)) $key=array_search($req_s,$ses_s);
if (is_numeric($key)){
unset($ses_s[$key]);
}else{
$ses_s=array_merge($ses_s,$req_s);
}
if(is_array($ses_s)){
foreach($ses_s as $val){
$class[$val]="class='color0'";
}
}
//print_r($ses_s);//セッションの内容を確認
print <<<eof
<html>
<head>
<title>title</title>
<script type="text/javascript" src="hoge.js"></script>
<link rel="stylesheet" type="text/css" href="hoge.css" />
</head>
<body>
<form id="form_check" method="post" action="{$_SERVER['PHP_SELF']}">
<p><input type="submit" value="a" name="s" onClick="return jump(this);"{$class["a"]} /></p>
<p><input type="submit" value="b" name="s" onClick="return jump(this);"{$class["b"]} /></p>
<p><input type="submit" value="c" name="s" onClick="return jump(this);"{$class["c"]} /></p>
<p><input type="submit" value="d" name="s" onClick="return jump(this);"{$class["d"]} /></p>
<p><input type="submit" value="e" name="s" onClick="return jump(this);"{$class["e"]} /></p>
<p><input type="submit" value="f" name="s" onClick="return jump(this);"{$class["f"]} /></p>
</form>
</body>
</html>
eof;
?>


//hoge.css
.color0{
background-Color:#dbed00;
color:#323232;
}
p{
margin:0px;
padding:0px;
}

//hoge.js
function jump(obj){
var f=obj.form;
var c=obj.className;
obj.className=c=="color0"?"":"color0";
var text="";
for(var i=0;i<f.length;i++){
if(f[i].type=="submit" && f[i].name==obj.name && f[i].className=="color0"){
text+=(text==""?"":",")+f[i].value;
}
}
if (text) {
var flg=confirm("チェックされているのは" + text + "です。\n再読み込みしますか?");
} else {
alert("何もチェックされていません。");
var flg= false;
}
if(flg) return true;
obj.className=c;
return false;
}

pick52さん、ご指摘ありがとうございます。ぼけてました。

仕様もちょっと勘違いしてたので、こんな感じでどうでしょ?

//hoge.php
<?
session_start();
$req_s=$_REQUEST["s"];
$ses_s=&$_SESSION["s"];
if(is_array($ses_s)) $key=array_search($req_s,$ses_s);
if (is_numeric($key)){
unset($ses_s[$key]);
}else{
$ses_s=array_merge($ses_s,$req_s);
}
if(is_array($ses_s)){
foreach($ses_s as $val){
$class[$val]="class='color0'";
}
}
//print_r($ses_s);//セッショ...続きを読む

Qwebプログラミングを始めたいと考えていますが・・・

始めまして。
私は大学生なのですが、今後の就職のため、あるいは趣味の一つとしてプログラミングを学んでみたいと考えています。
趣味の一環として、ホームページを作る技術や知識はありますが、プログラミングの知識はVBやVBAをちょっとかじった事がある程度。

つまり、ほぼ何もわからない初心者なのですが、将来的にはPHPやjavaScriptなどに始まり、AJAXを組んでみたいと考えています。

初心者がまず、AJAXを組んでみたい、というのであれば、どのような事を勉強する必要があるでしょうか?
AJAXという事で、まずHTMLやCSS、javaやxmlくらいは最低限必要であると思うのですが、必要性のあることを教えていただければ幸いです。

また、そのようなものを学ぶにあたり、オススメできる、初心者向けで良い書籍や入門書などを紹介していただけたら更にうれしいです。

もしよろしければ、よろしくお願いしますm(__)m

Aベストアンサー

書籍を買わずとも、優良なサイトが御座いますよ。

HTML,JavaScript,Perl,CSS
http://www.tohoho-web.com/www.htm
java(WEBプログラム)
http://www.hellohiro.com/servlet.htm

以上、宜しくお願いします。

Qプルダウンメニューの見た目を変えたい!!!!!!!!……です。

はじめましてJackMINIと申します。

HP上で『プルダウンメニュー(オプションメニュー)を使いたい』と思うのですが、普通はメニューボタンの見た目がユーザー側の機種やブラウザに依存されてしまいますよね。
ですが、自分の作っているサイトのデザインにあまりに合わないので、その"メニューボタンの見た目"を変えたいのですが、出来る方法はありますでしょうか?
(プルダウンの使用目的は、コンテンツのINDEXページからその下層にある各ページに飛べるようにするためです。)

実際には、例えばオリジナルのセレクトボタン画像を作ってsrcでリンクさせたり、形はデフォルトのままでも下地やテキストの色を指定したり…といった形でサイトのデザインに合わせられると良いのですが…。

ちなみに、Mac OS9.x のiCabでも正常に動作するように作っているので、
フォームの<SELECT>タグ<OPTION>タグを使ったオプションメニューを使うつもりです。(…条件が厳しくてスミマセン)

もし無理なようでしたら、プルダウンと同じような機能で見た目をカスタマイズできる方法を教えていただけるとヒジョーに助かります。
ただ、FLASHは持っていないので使えません。m(__)m (…お金がないので)
HTMLとJavaScript(もしくはCSS)で可能でしたら、多少面倒だったり難解だったりしても構いませんので、何卒御教授お願い致します。

はじめましてJackMINIと申します。

HP上で『プルダウンメニュー(オプションメニュー)を使いたい』と思うのですが、普通はメニューボタンの見た目がユーザー側の機種やブラウザに依存されてしまいますよね。
ですが、自分の作っているサイトのデザインにあまりに合わないので、その"メニューボタンの見た目"を変えたいのですが、出来る方法はありますでしょうか?
(プルダウンの使用目的は、コンテンツのINDEXページからその下層にある各ページに飛べるようにするためです。)

実際には、例えばオリジナルの...続きを読む

Aベストアンサー

すみません、javascriptの部分修正します。
(==;
Operaだと、うまく動きますが、IEだと動きませんね、、。
テストOperaでしか、してませんでした。

function popAction()
{
// 親メニューのイメージを修正
// 選択されたアイテムそれぞれに対応するイメージを設定
//TABLE1.style="position:absolute; top:50px; left:10px;";
TABLE1.style.position = "absolute";
TABLE1.style.top = "50px";
TABLE1.style.left = "10px";

}
// メニュー選択時の処理
function OnBtnACtion(iIndex)
{
// メニューを再び隠す
//TABLE1.style="position:absolute; top:-100px; left:-100px;"
TABLE1.style.position = "absolute";
TABLE1.style.top = "-100px";
TABLE1.style.left = "-100px";

...残りは、前のと同じです。

すみません、javascriptの部分修正します。
(==;
Operaだと、うまく動きますが、IEだと動きませんね、、。
テストOperaでしか、してませんでした。

function popAction()
{
// 親メニューのイメージを修正
// 選択されたアイテムそれぞれに対応するイメージを設定
//TABLE1.style="position:absolute; top:50px; left:10px;";
TABLE1.style.position = "absolute";
TABLE1.style.top = "50px";
TABLE1.style.left = "10px";

}
// メニュー選択時の処理
function OnBtnACtion(iInde...続きを読む

Qスクロール領域の再読み込み OR 更新

xmlファイルから<item>(rss)を取得し、marqueeでスクロールさせています。
xmlファイルは定期的にファイルを更新し記事が増えていきます。
画面上でも定期的にxmlファイルを取得し最新記事を表示できるのですが、
最後までスクロールされず、途中で先頭からスクロールしはじめてしまいます。スクロール領域が最初に表示された記事の長さで固定になってしまっています。
画面を更新すれば、スクロール領域は直ります。

全体の更新しないで、部分的な更新はできますでしょうか?
このRSSを表示している部分だけの更新をしたいです。
もし、部分的な更新が出来れば
<marquee id="" direction="left" loop="1" onFinish="更新">
でループさせ、最新記事を取り、スクロールし続けることは可能でしょうか?

もしくは、marquee スクロール領域を再度読み直す方法はありますでしょうか?
お分かりの方いらっしゃいましたら、教えてください。
宜しくお願い致します。

下記ソースは、RSSを表示し定期的に最新記事を追加しているものです。
<script type='text/javascript'>
var title='';
var description='';
var hoge='';
var xmlDoc=loadXML('sample.rss');
var cNodes = xmlDoc.getElementsByTagName("item");
for(j=0;j<cNodes.length;j++)
{
title = cNodes[j].getElementsByTagName("title")[0].childNodes[0].nodeValue;
description = cNodes[j].getElementsByTagName("description")[0].childNodes[0].nodeValue;
hoge += '<font ';
hoge += 'face="IPAMonaPGothic"';
hoge += 'color="#e8edf2"';
hoge += 'style="font-size:20px;">';
hoge += title;
hoge += description;
hoge += '</font>';
}
$("document").ready(function()
{
$('test').append(hoge);
})
setInterval('update()', 60000);
function update(){
var title='';
var description='';
var hoge='';
var xmlDoc=loadXML('sample.rss');
var cNodes = xmlDoc.getElementsByTagName("item");
for(j=0;j<cNodes.length;j++)
{
title = cNodes[j].getElementsByTagName("title")[0].childNodes[0].nodeValue;
description = cNodes[j].getElementsByTagName("description")[0].childNodes[0].nodeValue;
hoge += '<font ';
hoge += 'face="IPAMonaPGothic"';
hoge += 'color="#e8edf2"';
hoge += 'style="font-size:20px;">';
hoge += title;
hoge += description;
hoge += '</font>';
}
$('test').empty();
$('test').append(hoge);
}
</script>
<div id='test'>
</div>

xmlファイルから<item>(rss)を取得し、marqueeでスクロールさせています。
xmlファイルは定期的にファイルを更新し記事が増えていきます。
画面上でも定期的にxmlファイルを取得し最新記事を表示できるのですが、
最後までスクロールされず、途中で先頭からスクロールしはじめてしまいます。スクロール領域が最初に表示された記事の長さで固定になってしまっています。
画面を更新すれば、スクロール領域は直ります。

全体の更新しないで、部分的な更新はできますでしょうか?
このRSSを表示している...続きを読む

Aベストアンサー

基本的にNo3様のご意見に賛成なのですが…

HTMLのmarqueeは、ブラウザによって属性値の指定方法が違うみたいでよくわからない。
(そもそも独自拡張だし…)

以下は、スクロール部分のサンプル的に。
文字列をセットした状態でmarqueeを呼び出せば、表示をスクロールさせ、終わったところで指定した関数(stringSet)を再度呼び出す仕組み。
stringSetは配列内の文字列を順にセットしてmarqueeを呼び出しています。

*表示の体裁はCSSで指定。ただし、外枠(marqueeScreen)の幅はpxで指定するものと
 仮定しています。(emとかだとうまく動きません:ちゃんと換算すればOKだけど…)
*文字列の前後に20px分の余白を設けています。速度などとあわせて適当に数値を変えれば
 変わります。

<html>
<head>
<style type="text/css">
div#marqueeScreen {
width: 300px; background-color:#777; padding:8px;
position:relative; white-space:nowrap; overflow:hidden;
}
div#marqueeScreen .marquee {
color:#fff; position:absolute; font-weight:600;
}
</style>

<script type="text/javascript">
window.onload = stringSet;

function stringSet() {
if (!this.count) {
this.count = 0;
this.str = [
"テストの文字だよ~~",
"Marqueeは動くので一見は面白そう、でもちらちらするから嫌い。",
"今回はCSSとかいろいろ調べなければならなかった(←無知だなぁ>自分)",
"テストの文字はこれで最後だよ・・・"
];
var e = document.getElementById('marqueeScreen');
var es = e.currentStyle || document.defaultView.getComputedStyle(e, '');
this.width = parseInt(es.width.replace('px',''));
this.elm = e.getElementsByTagName('SPAN')[0];
}
if (this.count < this.str.length) {
this.elm.innerHTML = this.str[this.count++];
marquee(this.width + 20, this.elm.offsetWidth + 20);
} else { alert('END'); }
}

function marquee(p, ep) {
var elm = document.getElementById('marqueeScreen');
elm = elm.getElementsByTagName('SPAN')[0];
p = p - 2, elm.style.left = p;
if (p + ep > 0) {
setTimeout("marquee(" + p + ", " + ep + ")", 30);
} else {
setTimeout(stringSet, 100);
}
}
</script>
</head>

<body>
<div id="marqueeScreen">
<span class="marquee"></span>
</div>
</body>
</html>

基本的にNo3様のご意見に賛成なのですが…

HTMLのmarqueeは、ブラウザによって属性値の指定方法が違うみたいでよくわからない。
(そもそも独自拡張だし…)

以下は、スクロール部分のサンプル的に。
文字列をセットした状態でmarqueeを呼び出せば、表示をスクロールさせ、終わったところで指定した関数(stringSet)を再度呼び出す仕組み。
stringSetは配列内の文字列を順にセットしてmarqueeを呼び出しています。

*表示の体裁はCSSで指定。ただし、外枠(marqueeScreen)の幅はpxで指定するものと
 ...続きを読む

Q読み込み開始から読み込み終了まで処理中表示する方法

ページを読み込み開始してから読み込み終了までの間に「処理中」と画面に表示したいと思い、http://oshiete.goo.ne.jp/qa/2753468.htmlを参考に下記のソースを書かさせていただいました。

【ソース】
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>title</title>
<script type="text/javascript">
<!--
window.onload=function(){
document.getElementById("loading").style.display="none";
}
// -->
</script>
</head>
<body>
<div id="loading">ロード中</div>
<?php
// 本当はここでphpを用い、大量のデータベースアクセスを行っていて、処理に時間がかかっています。
flush();
sleep(2);
?>
本文です<br />
</body>
</html>

ただし、上記をブラウザで閲覧した所、最初に砂時計アイコンが表示され、その後しばらくして「本文です」と表示されましたが、「ロード中」という表示はされませんでした。

これをページ読み込み時に「ロード中」とブラウザ上に表示させ、しばらくたった後、「ロード中」を消した上で「本文です」と表示させたいと思ったのですが、どのように書けば良いか分からなかった為、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。

以上、宜しくお願いします。

ページを読み込み開始してから読み込み終了までの間に「処理中」と画面に表示したいと思い、http://oshiete.goo.ne.jp/qa/2753468.htmlを参考に下記のソースを書かさせていただいました。

【ソース】
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Conte...続きを読む

Aベストアンサー

きっちりやるならやはりajaxで処理する方がよいでしょう

viewdata.php
<script>
function createXMLHttpRequest(){
if( window.XMLHttpRequest ){
return new XMLHttpRequest();
}else if( window.ActiveXObject ){
try{
return new ActiveXObject( "Msxml2.XMLHTTP" );
}catch(e){
return new ActiveXObject( "Microsoft.XMLHTTP" );
}
}
return null;
}
function getData( serverURL, objID ){
var ajax = createXMLHttpRequest();
ajax.open( "GET", serverURL );
ajax.onreadystatechange=function(){
if(( ajax.readyState == 4 ) && ( ajax.status == 200 )){
if(objID!=""){
var obj = document.getElementById( objID );
obj.innerHTML = ajax.responseText;
}
}
}
ajax.send( '' );
}
window.onload=function(){
document.getElementById("hoge").innerHTML="loading ..."
getData("loaddata.php","hoge");
}
</script>
<div id="hoge"></div>

//loaddata.php
<?
sleep(3);
?>
success!

きっちりやるならやはりajaxで処理する方がよいでしょう

viewdata.php
<script>
function createXMLHttpRequest(){
if( window.XMLHttpRequest ){
return new XMLHttpRequest();
}else if( window.ActiveXObject ){
try{
return new ActiveXObject( "Msxml2.XMLHTTP" );
}catch(e){
return new ActiveXObject( "Microsoft.XMLHTTP" );
}
}
return null;
}
function getData( serverURL, objID ){
var ajax = createXMLHttpRequest();
ajax.open( "GET", serverURL );
ajax.onreadystatec...続きを読む


人気Q&Aランキング

おすすめ情報