ゲーム製作初心者の俺がマルチプラットフォームなゲーム作ってみるスレ

Check このエントリーをはてなブックマークに追加 Tweet

165 :VIPにかわりましてGEPPERがお送りします :2012/03/16(金) 08:22:02.63 ID:Pdq4mwoRo
おはようございます

朝からぐぬぬ・・・です
surfaceが表示出来ませんorz
単純に円を描画しようとしてるだけなんですが表示されない
これは記述方法を理解してないからなんでしょうね・・・

本を手に入れた意味ないっすねww

var maru = new Surface;
var sprite = new Sprite;
maru.drawCircle(32, 32, 32);
maru.fillCircle(32, 32, 32);
sprite.image = maru;

こうだと思ったんですが違うようです・・・
もっと調べてみましょうか
166 :VIPにかわりましてGEPPERがお送りします :2012/03/16(金) 08:24:12.97 ID:Pdq4mwoRo
>>164
むしろその方向の方が良さそうな気がしてきました・・・
いきなり理想に挑戦するのはやっぱり良く無いですね
理想への最適化は後回しにします
167 :VIPにかわりましてGEPPERがお送りします :2012/03/16(金) 08:47:43.94 ID:Pdq4mwoRo
すいません・・・ごめんなさい・・・
何をやっても何故か動かない!!!って混乱してたら同じ階層にenchant.jsを置いてませんでした本当にごめんなさい・・・
そりゃSurfaceも動かないですよね・・・ww
また1から色々試してみます


昨日から朝にかけて云々悩んだ時間は何だったんだろう・・・
168 :VIPにかわりましてGEPPERがお送りします(東京都) [sage]:2012/03/16(金) 11:55:37.17 ID:CWlzau3oo
気になったところ、確認せず投稿します。
var maru = new Surface;
var sprite = new Sprite;
は、
var maru = new Surface(32, 32);
var sprite = new Sprite(32, 32);
みたいに、大きさを指定しないと表示されないんじゃなかったっけ。
169 :VIPにかわりましてGEPPERがお送りします :2012/03/16(金) 15:30:15.04 ID:Pdq4mwoRo
>>168
あぁ書き忘れですねすいません

thisの使い方がイマイチ理解できませんねぇ
まぁthisを使わないでもコーディングは出来ますけどね
ただかっこ悪いコードになっちゃいますが
170 :VIPにかわりましてGEPPERがお送りします [sage]:2012/03/16(金) 15:43:20.26 ID:YsXrYOHvo
動けばええねん
カッコ悪くてええねん
171 :VIPにかわりましてGEPPERがお送りします :2012/03/16(金) 15:47:08.98 ID:Pdq4mwoRo
先ずは雛形ですね
ここからタッチ座標に合わせバーを動かすわけですか

enchant();
window.onload = function()
{
var game = new Game(320, 320);
game.fps = 24;
game.preload('bar.png');
game.onload = function()
{
var bar = new Sprite(1, 16);
bar_UP = 0;
bar_DOWN = 0;
bar.image = game.assets['bar.png'];
bar.frame = 2;
bar.addEventListener(Event.ENTER_FRAME, function(){});
bar.addEventlistener(Event.TOUCH_START, function(){});
bar.addEventlistener(Event.TOUCH_MOVE, function(){});
bar.addEventlistener(Event.TOUCH_END, function(){});
}
game.start();
}
172 :VIPにかわりましてGEPPERがお送りします :2012/03/16(金) 16:08:41.44 ID:7s5LwOJfo
さて、頭の中でまとめていますよぉ(`・ω・´)シャキーン

まず普通にbarを表示します
画面がタッチされたらその座標を取得します
今回は球を打ち返すバーなのでX座標は必要とせずY座標のみ使います
使うのはlocalYですかね?
タッチされたY座標とbar座標を比較してlocalY>=bar.yならばbar.y+=1します

取り敢えずここまで
173 :VIPにかわりましてGEPPERがお送りします :2012/03/16(金) 16:55:20.00 ID:7s5LwOJfo
動いたー≡≡≡c⌒っ゚Д゚)っズサー

enchant();

window.onload = function() {
var game = new Game(320, 320);
game.fps = 24;
game.preload('bar.png')
game.onload = function() {

var bar = new Sprite(1, 32);
bar.image = game.assets['bar.png'];
game.rootScene.addEventListener('touchstart', function(a) {
bar.x = a.localX;
bar.y = a.localY;
});
game.rootScene.addChild(bar);
};
game.start();
};

ここまで出来れば多分後はスイスイですね!
174 :VIPにかわりましてGEPPERがお送りします :2012/03/16(金) 17:41:56.59 ID:7s5LwOJfo
http://jsrun.it/Tanzo/hKyJ

前の書き込みのコードを公開しました
enchant.jsを調べているとプログラム自体に詳しい方がコードを解説している傾向があるようです
その為か、基礎の基礎ではなく少し手の込んだコードが公開されている事が多く、私や他の初心者さんはコードを読むのに苦労しますね
期待していたゼロから(ryも初心者は理解するのに難儀する内容です(パズルが好きな私はそれが楽しいのですがねww)
おそらく、enchant.jsで遊んでいる人間で最も単純なコードを公開しているのが私のようです

ソースコードを読むのに苦労している方は、かっこ悪いコードでよろしければ私のコードを参考にして下さい
一気に手の込んだコードを公開することは無いので徐々に一緒に学んで行きましょうね
http://jsdo.it/Tanzo ←ここの更新履歴を順に読んでいけば私と同じ順でコーディングが出来るようになるはずです

その内(VALD Conceptの目処が立ったくらい)にPDFでenchant.jsの指南書を作ってみようと思います
私が愛用してるGIMP(グラフィックスソフト)やAudacity(音声波形編集ソフト)の解説も一緒に載せましょうかね?
まぁ今後もおじさんの暇つぶしに付き合ってくれたら嬉しいと思います
175 :VIPにかわりましてGEPPERがお送りします :2012/03/16(金) 22:58:48.16 ID:7s5LwOJfo
PONGの制作を徐々に始めたいと思います
取り敢えずドラッグすると上下にバーが追従するものを作ってみました
相変わらず最適化はされてませんww

http://jsrun.it/Tanzo/hKyJ
176 :VIPにかわりましてGEPPERがお送りします :2012/03/16(金) 23:00:38.21 ID:7s5LwOJfo
間違えましたこっちですorz

http://jsrun.it/Tanzo/vJVp
177 :VIPにかわりましてGEPPERがお送りします :2012/03/17(土) 08:20:36.21 ID:KxxK/19Lo
おはようございます

実はバーの動作に納得行ってないんですね
パソコンからはスムーズに追従しますがスマホからはあまりスムーズとは言えません
ただ、動けばおk最適化は後回しって方針なので取り敢えずバーはこんな感じで行こうと思います

それとenchant.jsはSVGをサポートしてないみたいですね
て言うかAndroid2.xはSVGを標準サポートしてないみたいです
標準、つまりrootを取得すればSVGライブラリ追加でサポートは可能のようですが全てのユーザーさんにライブラリ導入は
現実的じゃないのでSVGは諦めようかと考えているところです

まぁ気合いでcanvasを使って描画しても良いですが、それをする余裕が欲しいですよね
私にはちょっとそんな余裕は無いです
探しては居ないですがGIMP辺りならScript-Fuにcanvasエクスポートが在りそうな気もしなくは無いですがね

ちなみにAndroid3.x以降なら標準でSVGをサポートしています
enchant.jsの開発者さんもSVGがサポートされてるAndroid4.xスマホが普及するのを待ってるのかも知れません

私的には先進技術をどんどん取り入れて貰いたい感じです
その先進技術が応用して面白く遊べるようならゲームとしての構想も湧いてきますからね
178 :VIPにかわりましてGEPPERがお送りします :2012/03/17(土) 10:56:38.47 ID:KxxK/19Lo
規制が解除されたら一度VIPへスレ立てでもしましょうかね
enchant.jsがもっと盛り上がれば良いと感じます
9leapのゲームもまだまだ少ない気がしますしね
179 :VIPにかわりましてGEPPERがお送りします :2012/03/17(土) 15:03:21.42 ID:KxxK/19Lo
ちょっとパソコンが傍に無いので色々とゲームと言うものについて考えてます

おじさんは今回タッチパネルディスプレイと言うものを与えられ、格闘ゲームの操作をタッチパネルディスプレイへ最適化し、操作を簡略化すると言う構想を打ち立てました

そうこう考えている内に在る事へ気が付きました
タッチパネルディスプレイは操作を簡略化しなければその特性を活かせないと言う事です

例えばタッチパネルディスプレイで私がテトリスとかぷよぷよみたいな落ちゲーを作るとしたら、やっぱり十字パッドは使いません
タップで回転、ドラッグ(フリック)で移動と言うように作るでしょう

そして私は思うわけです「今までのコントローラーの方が誤操作を少なく出来るな」と
しかし、十字パッドを採用すると画面が狭くなってしまいますしタッチパネルディスプレイの十字パッド自体あまり優れたものじゃないです

タッチパネルディスプレイと言うコントローラーデバイスは操作をシンプルかつ感覚的に出来ますが、逆に言えばそうせざる得ないコントローラーデバイスなんですね
この辺りがゲームクリエーターの発想を狭める要因となる気がおじさんはします

今までのゲームクリエーターが従来型のコントローラーへ縛られていた様に、これからのゲームクリエーターはタッチパネルディスプレイへの最適化に縛られてしまう不安があります
必ずしもタッチパネルディスプレイを選択する必要は無い事を皆さんも念頭に入れてくれたら嬉しく感じます

従来型コントローラーでしたらNScripterを使えば事実上マルチプラットフォームなゲームを作る事ができますしね
吉里吉里もどうやらマルチプラットフォームを目指しているようですし手法は一つでは無いんです
180 :VIPにかわりましてGEPPERがお送りします :2012/03/17(土) 15:12:41.39 ID:KxxK/19Lo
だからこそ私はパソコンを対象とした入力救済処置を取ったのです(キーボードによる選択)
別におじさんは最初からこれに気付いていたわけではありません
救済処置を設けた時は「そうした方が良いよな」と言う感覚的なものでした
今回少し考えてみて私自身の感覚の裏付けを取ったと言うのが真相です

少なくともタッチパネルディスプレイは自由度の高いコントローラーデバイスでは無い
適材適所を考慮して自ら発想の縛りを設けたくは無いものですね
181 :VIPにかわりましてGEPPERがお送りします(長屋) [sage]:2012/03/17(土) 17:01:28.61 ID:WOqWnkga0
AndroidやiPhoneにある加速認識装置を使ったリアルfps作ろうず
182 :VIPにかわりましてGEPPERがお送りします [sage]:2012/03/17(土) 17:48:52.72 ID:kFFD072bo
>>181
183 :VIPにかわりましてGEPPERがお送りします :2012/03/17(土) 18:44:26.81 ID:1xL6pP5ko
加速度にゲームは向かないとおじさんは思ってます
何故なら折角のハンズオンデバイスなのにゴロ寝プレイが出来ないからです
既に存在しますが加速度を利用するタイプのプログラムは実用系の”天球図”とかに向くと感じます

少なくともゲームであれば軽く振る程度の動作が限界でしょうね
例えば”砂金取りゲーム”とかww
動かしすぎると砂に混じった砂金が流れてしまうので優しく振って砂金を採取しましょう
しかし剰りにも丁寧にやり過ぎるとタイムオーバしちゃうので気を付けて下さい
残った砂金で全国ランキングが付けられます
目指せ小金持ち!

てな感じでww
184 :VIPにかわりましてGEPPERがお送りします :2012/03/18(日) 09:17:31.33 ID:mnBKlgyVo
おはようございます

あれぇ・・・?バーと同時にボールが表示できないですね・・・?
何故でしょう?
185 :VIPにかわりましてGEPPERがお送りします :2012/03/18(日) 09:23:38.36 ID:mnBKlgyVo
特に変なことはしてないはずなんですがね・・・?

var bar = new Sprite(1, 32);
bar.image = game.assets['bar.png'];
game.rootScene.addEventListener('touchstart', function(a) {
if (bar.y <a.localY){bar.y += 4;}
if (bar.y >a.localY){bar.y -= 4;}
});
game.rootScene.addEventListener('touchmove', function(a) {
if (bar.y <a.localY){bar.y += 4;}
if (bar.y >a.localY){bar.y -= 4;}
});
game.rootScene.addChild(bar);

game.rootScene.addEventListener('event.enter_frame', function() {
var ball = new Sprite(16, 16);
ball.image = game.assets['icon1.png'];
ball.frame = 2;
game.rootScene.addChild(ball);
});
186 :VIPにかわりましてGEPPERがお送りします :2012/03/18(日) 09:32:21.74 ID:mnBKlgyVo
もしかして画像の生成と画像の移動は別にしなきゃダメなのかな?

enter_frameでバーもボールも生成して
移動はtouchstartやtouchmoveに記述しなきゃダメなのかな?
ボールはフレームの定期処理だからenter_frameですよね
enter_frameにはバーを生成するだけの記述を置けば良いのかな?

微妙に融通効かないですね・・・ww
187 :VIPにかわりましてGEPPERがお送りします :2012/03/18(日) 09:51:53.24 ID:mnBKlgyVo
表示されました(・∀・)
画像をただ表示させるならenter_frame自体が要らないわけですね
Event系は本当に動かす時だけに使えば良いんですねぇ
188 :VIPにかわりましてGEPPERがお送りします :2012/03/18(日) 11:04:55.56 ID:mnBKlgyVo
うぉっっ!!!衝突判定のコーディングが凄く楽ですねコレ!!!
こんなの覚えちゃったら他の言語を使えなくなっちゃいますよ
189 :VIPにかわりましてGEPPERがお送りします :2012/03/18(日) 11:43:01.40 ID:mnBKlgyVo
当たり判定のPONGテストを公開しました
http://jsrun.it/Tanzo/7jZe
190 :VIPにかわりましてGEPPERがお送りします :2012/03/18(日) 13:22:34.12 ID:mnBKlgyVo
PONG test α2を公開しました
もうほぼ遊ぶことが可能です

http://jsrun.it/Tanzo/tBah

あとは得点付けたりすればPONGの雛形は完成ですね
なんだか今日はサクサク進みます(*´∀`*)
191 :VIPにかわりましてGEPPERがお送りします :2012/03/18(日) 15:02:08.95 ID:mnBKlgyVo
当たり判定がこんなに楽だとは思いませんでしたねぇ・・・
VALD Conceptは格ゲーですから当たり判定で苦戦するだろうなと予測してたんですが・・・
むしろ当たり判定の調整の方で苦戦しそうな感じですね
PONGも敵バーの調整で悩んでます
もっとカッコイイCOMにしたいんですがなかなかうまく行きません
まぁ動いてますし最適化は後回しってことで
192 :VIPにかわりましてGEPPERがお送りします :2012/03/18(日) 18:38:47.32 ID:mnBKlgyVo
予想より速くバイノーラルの音源も作らないといけなくなるようですね
久々にDTMですよ
まぁテスト版ですしAudacityでピッチ上げるだけの簡単音源にしましょうかね
シーケンサー使って正確に音階で作っても良いんですけどね
193 :VIPにかわりましてGEPPERがお送りします :2012/03/19(月) 18:52:31.85 ID:xl0B/o/Ko
仕事に体力を持って行かれGVimを立ち上げる気力が無いです・・・
まぁ明後日は仕事が休みなんでその時にPONGの開発を進めたいと思います

本業あるのに沢山ゲーム作れる人ってすごいですね・・・
194 :VIPにかわりましてGEPPERがお送りします :2012/03/20(火) 22:12:40.29 ID:5GPb8Is/o
あれ?点数が増えないですねぇ・・・
なんでだろう?
195 :VIPにかわりましてGEPPERがお送りします :2012/03/21(水) 01:21:45.90 ID:lS57H/QVo
くそう・・・全く解決できません・・・orz

enchant();
window.onload = function() {
(中略)
var scene = PONG.rootScene;
var point = 0;
var label = new Label(point);
label.moveTo(20, 20);
scene.addChild(label);
(中略)
PONG.rootScene.addEventListener(Event.ENTER_FRAME, function() {
(中略)
if (ball.x <-32){
ball.x = 0;
ball.y = 0;
ball_moveX = 2;
ball_moveY = 2;
enemy_speed = 2;
point += 1;
(以下略)

これでいけるかと思ったんですがねぇ・・・
196 :VIPにかわりましてGEPPERがお送りします [sage]:2012/03/21(水) 12:22:10.98 ID:iMaJDVmno
jsしらねーけど

・point増えてんの?
 point += 1;の次の行にブレークポイント入れてpointが1,2と増えていくか見る
・Labelの文字変えるのどーやんの?
 point += 1;の次の行にブレークポイント入れてlabelの内容、っつーか表示したい文字(label.textとかあんじゃねーの?)が変わってるか確認する
  ・変わってなかった → pointいじる時毎回labelの内容も更新するとか // あるいはAddPoint(int, Label)みたいなpoint変えるときLabelも一緒に更新する関数作ってそこでだけポイントいじるとか
  ・変わってた
     → ・内容変わったlabel描き直してないから得点古いままなんじゃね?
         得点が増えたときに描き直すようにするとかゲーム画面更新する時一緒に更新するとか
197 :VIPにかわりましてGEPPERがお送りします :2012/03/21(水) 13:50:06.08 ID:aE5XODpDo
ん・・・つまり変数labelには+1されていっているけれど、レンダリングが更新されていないから表示は0のままってことですかね?
表示されている0を更新する必要があるわけですか・・・
ダメなようならソースコードすべてあげてみますね
198 :VIPにかわりましてGEPPERがお送りします(東京都) [sage]:2012/03/21(水) 15:29:23.64 ID:1JSWM1vLo
>>195
point += 1;
の直下にでも、
label.text = point;
だね。

new Label(point); について、Labelは、文字列を引数にとります。
この時点で、point は「0」だから、
new Label("0");
という意味になります。これが動かない理由ですね。
199 :VIPにかわりましてGEPPERがお送りします :2012/03/21(水) 18:46:33.77 ID:OP6zYcGvo
>>198
おぉ!有り難う御座います

実は今、会合という名の飲み会です
急に呼ばれましたorz
ウチの会社は理由を付けて飲み会をします
最低月1のペースで飲み会します(´Д`;)
下っ端戦闘員ですから面倒なの辛いのって大変です
まぁしょうがないです
これも仕事の内です
・・・給料出ないけど
200 :VIPにかわりましてGEPPERがお送りします :2012/03/21(水) 21:55:58.83 ID:OP6zYcGvo
あ〜帰りたい・・・
帰ってPONGコーディングしたいです・・・
ビールをピッチャーで飲まされました
無茶ぶり酷いです・・・

学生さん、社会人とはこんなもんです
ぶっちゃけ学生の先輩後輩関係なんて遊びですよ
社会に出ると仕事よりも寧ろ人間関係が大事なんです

私も何度か人間関係の要領が掴めず転職してます
確かに社会人は色々面倒臭いです
転職すると何となく悪い気がします
でもそれも人生経験です
何度も転職したって学べばいいんです
頑張ると言う言葉は嫌いでしょうが頑張りましょう一緒に
むくわれるかどうかまだ私には解らないですが一緒に頑張りましょう?
私も何度失敗しても諦めませんからね頑張りましょうね
201 :VIPにかわりましてGEPPERがお送りします :2012/03/22(木) 01:31:13.97 ID:cnIDPCMJo
ただいま

良いかい?俺と同じ世代、そしてゆとり教育重視世代に言いたいです
最近テレビでもネットでも「最近の若者は飲みに付き合わない」とよく聞きます
上司や年配ってのは格好付けて若者へお願いなんて絶対にしない
だけどここまで様々なメディアで聞くってことは遠まわしにお願いしてるんだよ年上は
命令なんかじゃないアレは確実にお願いだ
そんなお願いに付き合うのが若者の役目だよ
もちろん私だって面倒くさいですけどね聞いてあげましょうよ願いを

すいません今回は飲まされすぎて酔ってます
ごめんなさい寝ますおやすみなさい
202 :VIPにかわりましてGEPPERがお送りします [sage]:2012/03/22(木) 02:11:10.67 ID:KGoluo5u0
初期から見て応援してるんだが、時折気持ち悪いと思ってしまう書き込みを見かける
人の書き込みをそんな風に見る自分が嫌だ
203 :VIPにかわりましてGEPPERがお送りします [sage]:2012/03/22(木) 11:46:56.33 ID:r6GbWEC7o
本当に申し訳ない書いた記憶無いですorz
204 :VIPにかわりましてGEPPERがお送りします [sage]:2012/03/22(木) 12:23:07.22 ID:9Zi8XmzMo
酔ってる時なんてそんなもんだろ
気にすんな
205 :VIPにかわりましてGEPPERがお送りします :2012/03/22(木) 22:18:12.11 ID:MrCI/Zxho
すいませんでした

それで点数を増やすことに成功しました!
まさか一行足りないとは盲点でしたよ
206 :VIPにかわりましてGEPPERがお送りします :2012/03/25(日) 11:07:35.53 ID:NdnhugNXo
さてPONGに得点を追加しました
もう完全に遊ぶことが出来ますね
http://jsrun.it/Tanzo/jGOG

それではここから今度はSurfaceを使ったPONGの製作に移ろうと思いますが
バイノーラルverやってみたいと言う方が居ましたらバイノーラルを追加した
α4を制作したいと思います
207 :VIPにかわりましてGEPPERがお送りします :2012/03/25(日) 13:47:54.25 ID:NdnhugNXo
Surfaceの使い方が何となく解りました
Surfaceを描画するまでが面倒で後は普通にSpriteで扱えるんですね
208 :VIPにかわりましてGEPPERがお送りします [sage]:2012/03/28(水) 19:11:10.01 ID:qXpQygRKo
現在VALDのキャラ絵とかそう言うのをゆっくり作ってます
取り敢えずキャラをタッチで歩行するところまでやってみようかと
209 :VIPにかわりましてGEPPERがお送りします [sage]:2012/03/28(水) 23:21:10.97 ID:qXpQygRKo
こういう画像加工系はサクサク進められますね今までのノウハウがあるんで
ただMMDの扱いにまだまだ馴れてなくて感覚的に操作できないのが悔しいです
骨折したみたいになっちゃう><
210 :VIPにかわりましてGEPPERがお送りします [sage]:2012/03/28(水) 23:32:36.39 ID:qXpQygRKo
今どんなことをやってるかと言いますとMMDで4K2KサイズのBMPを出力してGIMPで切り取り縮小加工をしています
これを熊GIFの様にまとめてフレーム指定で動かそうかと考えているわけです
将来的にはディスプレイ解像度から、それに見合った解像度のキャラ画像を渡すって感じにしたいですね
211 :VIPにかわりましてGEPPERがお送りします [sage]:2012/03/31(土) 20:14:57.74 ID:NR0baFKIo
むむむ・・・思うようにMMDが使いこなせない・・・
まぁ馴れ何でしょうけどね・・・

あっ絵を描けないくせにIntuos5買っちゃいましたww
Bambooにしようと考えてましたが実際見るとIntuosの方が欲しくなっちゃいまして
RAW現像とかにも使えますし全く無駄では無いんですけどね
ゲームの背景は実写を元に加工して利用しようと考えてます
212 :VIPにかわりましてGEPPERがお送りします(チベット自治区) [sage]:2012/04/09(月) 04:44:45.40 ID:xPv10/Bso
お…おい…生きてるか
99.43 KB Speed:0   VIP Service 製作速報VIP(クリエイター) 更新 専用ブラウザ 検索 全部 前100 次100 最新50 新着レスを表示
名前: E-mail(省略可)

256ビットSSL暗号化送信っぽいです 最大4096バイト 最大50行
画像アップロードに対応中!(http://fsmから始まるひらめアップローダからの画像URLがサムネイルで表示されるようになります)


スポンサードリンク


Check このエントリーをはてなブックマークに追加 Tweet

荒巻@中の人 ★ VIP(Powered By VIP Service) read.cgi ver 2013/10/12 prev 2011/01/08 (Base By http://www.toshinari.net/ @Thanks!)
respop.js ver 01.0.4.0 2010/02/10 (by fla@Thanks!)