【AS】ActionScript技術交換スレ Part4

■ このスレッドは過去ログ倉庫に格納されています
2005/12/22(木) 01:22:31ID:Dj6CR8TB
ムービー内の詳しいASの組み方はもちろん、PerlやJava・PHPを介したCGI連携といった技術や、
XMLSocketを使用したオンラインゲームなど、ムービー以外の用途として活躍するActionScriptの技術交換スレです。
また、AS2.0/3.0の話、Flash Media ServerとかColdFusionやRemoting、コンポーネント等、
他スレでは話題に上がりづらいFLASH周りのコアな技術交換&雑談にもご利用下さい。

前スレ
http://pc8.2ch.net/test/read.cgi/swf/1071929938/

前々スレ
http://pc4.2ch.net/test/read.cgi/swf/1054659810/

前々々スレ
http://pc3.2ch.net/test/read.cgi/swf/1030886688/

※:なおこのスレでは「NowLoadingどうやるの?」みたいな
  初歩的な質問は受け付けませんのであしからず。
  その手の質問やそれに近いレベルの質問は↓でドゾー
ActionScript 誰かが物凄い勢いで解答するスレ 10
http://pc8.2ch.net/test/read.cgi/swf/1134826648/

参考サイトや参考スレは>>2-5以内。
2007/10/11(木) 21:17:21ID:OhoJXt7D
個人的には396は新手のブラクラだと思った

>>393
・ガベージコレクションはいつ呼び出されるか分からない
・普通に追加したイベントリスナーは参照してるのと同じ
・というかメモリの確保や解放はそもそもコストの高い操作
・サイズの大きいBitmapDataはメモリを大量に使うよ、一回計算してみれば?
個人的には同じBitmapDataを使い回して
中身を毎回BitmapData.fillRect()か何かで塗りつぶすコードに書き換えてみる事を勧める

ガベージコレクションを真面目に働かせるのが目的ならともかく
普通に動かすならオブジェクトの作りすぎは禁物

※以下独り言
ゲーム系の制作とWebアプリ系の制作は求められる技術がまるで違うにもかかわらず
AS系職人とかいう名前付けられて一緒くたにされて俺涙目
2007/10/11(木) 21:34:33ID:TvISlJWE
>>397
Test.as側からのHeavy.asに対する参照を外す際、
それを使ってHeavy.as内のBitmapDataを空っぽにすると
ちゃんと軽くなるってのを確かめる時につけたのがそのまんま残ってただけです。

>>398
ブロック崩しを作ってて、都合上ブロックの生成・削除を繰り返さないといけないことになってるんだけど、
それでちゃんと消してるはずなのにメモリが一向に減らないからどうなんだろうと思って、
ちょっと極端なプログラムを書いて試してみたんだ。

BreakBlock ┬ Block ― Sprite ― Bitmap ― BitmapData
        ├ Block …
        :
        └ Block …
って感じのつくりで、BreakBlockからのBlockへの参照を外せば、
Blockはその下のBitmapDataやらと一緒に消えてくれるかなと思ってたんだけど、
一向に消える気配がなくてどーすりゃええんよーと思ってたところ。

参照から外しても、その内部でイベントが働いたりしてると消えないのかなぁ
2007/10/11(木) 23:00:35ID:OhoJXt7D
>>399
Flash Player 9のガベージコレクションは参照を消せば直ちにメモリが解放されるわけじゃないよ
ガベージコレクションが動くまではずっとメモリに残りっぱなし。

そしてそのガベージコレクションの動くタイミングだけど、かなり遅いと思っていい。
厳密なタイミングが知りたいなら、
どこかで書いたような気がするけどSystem.totalMemoryが便利
まあ、AS3で本格的なゲームを作ろうと思ってる人なら一度目で見て実感するのがいいよ


俺が使った回避策としては
ブロックを削除するかわりにインスタンスをどこかに保存しておいて
生成する代わりに保存したインスタンスを再利用すれば面白いほど速くなると思うよ
この場合は変数の再初期化のし忘れに要注意だけどな

全部BitmapData.copyPixel()で描画するように書き直すのも最終手段としてはアリだな
2007/10/11(木) 23:19:41ID:hnfCfgZq
Test.asの
heavyArray[0] = null;
って、もしかして
heavyArray[heavyArray.length - 1] = null;
のつもり?
2007/10/12(金) 00:17:52ID:u518jYM4
頭を潰しているんだろ
pop
2007/10/12(金) 00:32:39ID:FMV0xOnK
>>400
丁寧にありがとうございます。
今のところ、システム的に全てを残すというものが難しいので、
もう少しいろいろと工夫してみようと思います。

>>401
空のArray型にpush(一番下に追加)した後、すぐpop(一番下を削除)を繰り返すだけなので、
項目数は絶対に1つしかないです。
だから、この場合だと[0]でも[heavyArray.length - 1]でも同じ結果になります。
2007/10/14(日) 22:00:34ID:sRm1NK7O
てか、ブロック崩しの場合、画像はブロックの下のレイヤーだよね?
個々のブロックは真四角描いてBevelFilterでもかませときゃ
それっぽいのが出来そうだし。

どうしてもBitmapデータをブロック上に描きたいんだい!って場合は、
大きなひとつのBitmapDataから、一部を切り出してgraphicsの
bitmapFill+drawRectで描くShapeの派生クラスを作ったらどうかな。
少なくともBitmapのメモリの心配はなくなると思うよ。

自分Flex使いなので、派生クラスとか普段作らないヒトだったらゴメン
2007/10/15(月) 22:44:26ID:FkcAGeVT
>>404
どうやら、メモリが一向に減らなかった原因は
・BitmapDataにはガーベジコレクションが働かない(使わなくなったらdispose()で消さないといけない)。
・派生クラスをオブジェクトとして用いた時、その内部でTimerイベントなど、何らかのイベントが働いていると参照を外してもガーベジされない
だったみたいです。
一つの解決策を教えていただいて申し訳ありませんが、
とりあえずこれでメモリは問題なさそうなので、しばらくこれで様子を見てみようと思います。
2007/10/15(月) 23:19:26ID:gZWlglvB
>405
うん。イベントリスナは忘れずに外さないと。
慣れるまでは、イベントハンドラの最初にtraceを入れておいたほうがいい。
弱参照も、指定できるところはしておいたほうが無難。

BitmapDataオブジェクト自体、数を作らないように工夫したほうがいいよ。
Bitmapコンポーネント自体、BitmapDataを使い回しするように実装されてるわけだし、
dispose()をしてもすぐ消えるわけではないので。


2007/10/15(月) 23:46:21ID:FkcAGeVT
>>406
アレ、1つのBitmapに対応するようにBitmapDataが存在するように思ってたけど、
もしかして
bitmapData:BitmapData = new BitmapData(48, 24, true, 0x00000000);
bitmap1:Bitmap = new Bitmap(bitmapData);
bitmap2:Bitmap = new Bitmap(bitmapData);
ってできたりする・・・?
だとしたら漏れの思考ティウンティウン\(^o^)/
2007/10/16(火) 17:55:03ID:qFYFJp0p
>>407

できるよ。
その場合bitmapDataを更新すれば、全てのBitmapの表示が更新される。
2007/10/16(火) 21:58:22ID:vC2WbUkQ
>>408
ありがとう。
さっそく仕様変更してみたら、かなり軽くなった。

一つ気になる点は、
bitmapData1:BitmapData = new BitmapData(48, 24, true, 0xFFFF0000);
bitmapData2:BitmapData = new BitmapData(48, 24, true, 0xFFFF0000);
bitmap:Bitmap = new Bitmap(bitmapData1);
addChild(bitmap);
ってした後、イベントでbitmapの参照先をbitmapData2に変更したくなった場合、
一旦removeChild(bitmap);で外した後、
bitmap = new Bitmap(bitmapData2);
って上書きして、再度addChild(bitmap);で加えなおさないといけないのかな。

直接参照先を変更できるようなものがあるといいんだけど、
探しても見つからなかったし、特にこれで問題でないからこのままで動かしてるんだけど・・・。
大丈夫なのかしら
2007/10/16(火) 23:25:14ID:hnbB0n94
>>409
もしBitmap.bitmapDataプロパティをまだ知らないなら
LiveDocs辺りで調べておくといいと思う
2007/10/17(水) 12:30:10ID:U2Klb6Zs
>>410
あー、bitmapDataプロパティを変更してやれば、
入れ直さなくても参照先が変更されるのですね。
存在は知っていて、それに対してdrawRectやらの描画をすると、
参照先のBitmapDataに変更が効くのはわかってましたけど、
このプロパティを変えることで参照先を変更できるというのには気がつきませんでした。
2007/10/21(日) 20:22:33ID:MZ6bCI92
AS3始めたばっかりの初心者です
次のようなコードを書いてみたんですが
実行しても何も表示してくれません
イマイチ原因がわからないので誰かご教授してください
お願いします

package {
import flash.display.*;
import flash.geom.*;

public class Etude extends Sprite {
public function Etude() {
addChild(new BgShape());
}
}
}
import flash.geom.*;
import flash.display.*;


class BgShape extends Shape {
public function BgShape(){
//タイル
var tile:BitmapData = new BitmapData(20,20,true,0xffffffff);
tile.fillRect( new Rectangle(0,0,10,10),0xffcccccc);
tile.fillRect( new Rectangle(10,10,10,10),0xffcccccc);

// 描画してるはずなのに?
graphics.beginBitmapFill(tile);
graphics.endFill();
}
}
2007/10/21(日) 20:30:13ID:CUQqP5yL
ちょっと今試せる環境にいないから外してるかもわからんけど

graphics.beginBitmapFill(tile);
//ここで四角形か何か図形を書く
graphics.endFill();

いちおう、ここじゃなく質問スレのほうがいいような希ガス
2007/10/21(日) 21:02:45ID:MZ6bCI92
>>413
うーん、図形は描画されても背景は白いままですね…
どうもスレ違いっぽいんで質問スレに行きます
ありがとうございました
2007/10/31(水) 22:32:24ID:/AgDGvI8
動画(flvとか)を再生するのはできるのですが,
これを1フレームごとに静止画として抽出して処理したいのですが
そもそも可能でしょうか?
2007/11/01(木) 00:10:12ID:nSqaJiY0
できる。

・・・が、詳しいやり方は忘れてしまった。
動画にフィルターかけて表示したりする手法に必須な処理のはずだから、
その関連で調べれば出る・・・のかな。

var bmpData:BitmapData = new BitmapData(400, 300);
bmpData.draw(video);
って感じでかけなかったっけ?
417415
垢版 |
2007/11/01(木) 22:07:31ID:q229Ncrz
なるほど。
BitmapData.drawメソッドを使えばできそうな感じですね。
今度実際にサンプル作って確認してみます。
2007/11/01(木) 23:06:38ID:eBxLNgsN
他ドメインの画像or動画はdrawできない制限があるけどな
419fausut
垢版 |
2007/11/01(木) 23:21:10ID:XUKW7+hN
はじめまして。
半月前くらいからFlashをやり始めて、
現在、FlashとPapervision3Dを使って、パノラマ画像の全方位参照できるものを
作ってます。
(こんな感じのです↓↓)
http://labs.blitzagency.com/?p=388
http://flashvr.sakura.ne.jp/sample.htm

全方位上下360度回転は出来たのですが、
上のサイトみたいに、ホットスポットがうまく付けることが出来ません。
Planeクラスを作って、それをMovieSceneに貼り付けは出来るんですが、
回転させると、パノラマ画像とホットスポットがずれてしまい、
うまく表示させることが出来ません。

うまく実装できる方法がありましたら、教えてください。
2007/11/02(金) 19:43:02ID:kfKAstev
パノラマ画像とホットスポットをDisplayObjectContainer3Dでまとめてないからじゃね?
ソース見てないしpv3d詳しくないから知らんけど
2007/11/02(金) 22:17:30ID:kfKAstev
それかカメラじゃなくてパノラマ自体を回してるだけとか
2007/12/22(土) 22:18:23ID:BPyKaVSz
質問スレが過疎ってるようなんでこっちに・・
TextField内の外部htmlテキストにロールオーバー・ロールアウトで、
asfunctionは実行可能な技があったら教えて下さいませ。
Flash Player 8 書き出し、アプリCS3です。
2007/12/22(土) 22:46:07ID:zCDEnwd8
>>422
質問の内容がよくわからないけど、
裏にmc置いてhitTestでいいんじゃない?
2007/12/22(土) 22:59:38ID:BPyKaVSz
>>416
漏れへのレスならドモです。

a hrefでリンクボタン化している文字列にだけ適用させて、
マウスオーバー、アウトでMCの表示を操作したいんですわ。
ちなみに外部テキストはRSSから拾ってるんで内容はRSS更新の都度変わります。

あームリかなぁ。。
現状は仰せの通りTextFieldの裏にMC配置、hitTestで妥協中・・
2007/12/31(月) 17:21:58ID:yUqwGUDc
リンク部分にカスタムタグ使ってるならStringで抽出してasfunction付のタグ
追加してやればいいんじゃない?
2008/01/03(木) 09:50:56ID:2SBefrL+
亀レスですがTHX。
普通にa hrefに仕込ませて、
あとはonRollOver、onRollOut使えばイケるんかな・・
すでにwebは公開しちゃったんだが、
時間ある時にやってみますわ。
427Now_loading...774KB
垢版 |
2008/01/03(木) 18:04:17ID:XroEtnCU
fschというshellでコンパイルを高速化しようとAdobe本家のwebから
DLを試みたのだけど、落とせない・・・本家で落とせないのでお手上げ。
どこかで落とせます?
2008/01/03(木) 18:56:50ID:sdBizuiN
>>427
Adobe Labsで落とせるよ。

ttp://labs.adobe.com/wiki/index.php/Flex_Compiler_Shell
429Now_loading...774KB
垢版 |
2008/01/03(木) 23:07:16ID:XroEtnCU
>Adobe Labsで落とせるよ。

まさにそのURLにあるサイトで落とせなかったんですよ。
>1. Download the fcsh ZIP file and view the license agreement.
ってところで、クリックするとダウンロード時のダイアログは出るのに
いつまでたってもDLが開始されないのですよ。
プログレスバーも出てこない・・・・
2008/01/03(木) 23:25:05ID:Kf90Hx3M
Flex3 SDKには最初から同梱されてなかったっけか
431Now_loading...774KB
垢版 |
2008/01/04(金) 00:52:51ID:jKMS17te
>Flex3 SDKには最初から同梱されてなかったっけか
それが、入ってなかったです・・・。
取り扱ってるソースセットがだんだん大きくなってきて、
コンパイルから実行までのTurnAroundが長くなりつつあったので
なんとしてもfschを導入したいのですが・・・
2008/01/04(金) 03:38:32ID:sWC8/piO
>>431
今は落とせたよ。
2008/01/04(金) 09:28:11ID:A+aJDRXV
どうしても落とせなかったら別のブラウザでもう一度やってみたら?
434Now_loading...774KB
垢版 |
2008/01/04(金) 14:53:23ID:Z6beYMw+
あ、おいらも落とせない。なにこれ。
Adobeのサイト運営者に連絡してみては?
linux上のFireFox経由からでも落とせなかった。
DLの認識はしてるっぽいけどね。
435Now_loading...774KB
垢版 |
2008/01/04(金) 18:05:33ID:jKMS17te
アドビに直接連絡したところ、zipファイルをメールで転送していただきました。

おかげさまでfcshを起動することができました・・・なんですが、
mxmlc だとか手打ちでコンパイルできるのですが、
fcsh上で動作するmakeってないのでしょうか?
なにせコマンドプロンプトでvc++付属のnmake.exeでMakefileを記述
していたため、fcsh上だと途端に不便なのですよ・・・
436435
垢版 |
2008/01/04(金) 18:24:42ID:jKMS17te
仕方ないので、nmakeの実行結果をリダイレクトして、
makeが実行するコマンドライン文字列を
取得して、それをコピってfcshにペーストすることでなんとか対処。
んー、バタ臭い。

それにしても、超速ですね。
こういうの、C++だとか他のコンパイル言語にも適応ないんでしょうか?
一応、ccacheだとかdistccがあるけど、ここまで速くはならんかったですよ
2008/01/04(金) 22:48:03ID:bJZZX5i5
バタ臭くはねーだろw
2008/01/06(日) 00:13:49ID:eUwtc7YK
ActionScriptでassert()に相当するものってないものだろうか?
google先生に聞いてもイマイチ分からなかったもので。
2008/01/06(日) 15:26:50ID:T9xfIm/y
>>438
if (!式) throw new Error("メッセージ");

2008/01/06(日) 15:46:24ID:eUwtc7YK
>>439

さんくす。でもAS3にはプリプロセッサの機能がないみたいだから、
やっぱり毎回、if()で条件式書く必要があるんでしょうか?
2008/01/06(日) 19:56:55ID:T9xfIm/y
>>440
ごめん、意味がわからない・・・。
2008/01/07(月) 00:01:44ID:ChOFqAmF
>ごめん、意味がわからない・・・。
例えばRelease時にはassert()は不要だから外してしまいたいのだけど
AS3にはプリプロセッサがないから、それができないのでしょうか?
という意味っす
2008/01/07(月) 02:11:12ID:p0jssUz7
>>442
>毎回、if()で条件式書く必要があるんでしょうか?
>assert()は不要だから外してしまいたいのだけど

何がしたいのかよくわからないけど、
最初からReleaseには書かなきゃいいんじゃない?

ifが同じ条件なら#includeとか。
2008/01/08(火) 13:22:38ID:egD4ofxn
見事なまでに話がかみ合ってないなw

>>442
とりあえずCのプリプロセッサ使えばいいんじゃね?
flexならmakeなりバッチなりで使えるし
flashならこんな手があるようだ
http://d.hatena.ne.jp/sunflat/20060604
2008/01/09(水) 03:30:11ID:0AGNb5vj
Cコンパイラなんて入れてないとか
プリプロセッサ使うためにわざわざ入れたくないという場合はこれがお勧め

http://mcpp.sourceforge.net/download-jp.html
2008/01/09(水) 04:01:07ID:JDzhgSvh
mcppの存在を初めて知った。
AS3と言わず、様々な言語でのプリプロセスに使えて良さげ。
しかし、これはfschでのキャッシュとの相性はどうなんだろ。
2008/01/09(水) 05:32:55ID:0AGNb5vj
>>446
fcshの仕組みがまだよくわからないからはっきりとはいえないけど
コード書き換えるとプリプロセスからやり直しだからキャッシュして速度をかせぐコンパイラと
プリプロセッサの相性はあまりよくないと思われ
2008/01/09(水) 19:27:32ID:JDzhgSvh
やはり言語仕様としてプリプロセッサを定義してもらわないと
厳しいのかな。
449Now_loading...774KB
垢版 |
2008/01/10(木) 09:21:56ID:Y6DSWrNp
あんまり難しくなられるとしんぢゃう…
何でも屋的にはほどほどでいてくれないと餅は餅屋になちゃーう
450Now_loading...774KB
垢版 |
2008/01/18(金) 18:14:42ID:iI/vs/sE
age
451Now_loading...774KB
垢版 |
2008/02/06(水) 04:06:12ID:wTqM5oR4
swfをde-compileされてAction Scriptを外からのぞかれたくない場合、
swcにしちゃうのが一番簡単なのかな?
2008/02/10(日) 11:32:50ID:OhaQ+E4/
そんなに見られたらいやかい。
2008/02/12(火) 18:50:41ID:bIgMkCvR
Action Scriptでしかないのにね
2008/02/12(火) 20:55:26ID:uiFXZTD8
ロジックをサーバサイドにおいたらいいよ
455お絵かきツール
垢版 |
2008/02/24(日) 16:19:48ID:/GA8A9WJ
attachBitmapで作ったビットマップのところにdraw()を使って、
描画した絵をphpに送りたいのですがうまくいきません。
だれか教えてください。
2008/02/24(日) 17:42:02ID:v+7M8Fra
getPixelで全部走査してみたら?
2008/02/25(月) 14:28:28ID:lOgBWgll
AS3.0 〜 PHP 〜 MySQL で速めのターン制オンライン対戦ゲーを作れないかと思っている俺は無謀?
通信テストしたらクライアントからDBまで往復で0.1秒前後みたいなんだけど。
2008/02/25(月) 18:11:08ID:Qtcgkvh9
別に問題ないかと。ターン制ならDBは待合専用にして、
ソケットでも使ってメッシュ型にした方がいんじゃねとは思うけど。
ブラウザ上でって縛りなら話は別。
459457
垢版 |
2008/02/26(火) 10:24:15ID:sf6f8TZn
>>458
ブラウザ上、DB一個なんだけど。
趣味で作るものだからどうってこたないんだけど。
2008/02/26(火) 11:29:37ID:alw0rdJ9
好きにしろ
461Now_loading...774KB
垢版 |
2008/03/17(月) 00:00:12ID:vbO1C9Zj
age
2008/06/29(日) 20:27:56ID:0r8rahFa
ActionScript Thread
http://www.libspark.org/htdocs/as3/thread-files/document/

AS3はシングルスレッドって書いてあるけれど
昔からonEnterFrameを使えば複数処理を走らせることができるよね?
今までのonEnterFrameでの複数処理実行に対し
さまざまな機能追加したものが今回のスレッドライブラリだ、という説明なら理解できるが
2008/06/30(月) 07:42:01ID:LDJKP/qS
>>462
で、どうしたの?
2008/06/30(月) 10:11:53ID:mTTuTRy9
>>463
>>462
2008/06/30(月) 18:19:04ID:DSl1AWvc
>>462
onEnterFrame使っても「同時に」複数処理は動いてないはず。
2008/06/30(月) 18:26:04ID:DSl1AWvc
ごめん、>>465はあんまり意味のない米だった。

onEnterFrame使えば今まででも擬似的にマルチスレッドっぽくなるけど、ややこしかった。
でもSparkのThread使えば、よりマルチスレッドっぽい文法を導入して、
簡単に擬似マルチスレッドできるよ、ってことじゃね。
2008/07/01(火) 07:09:13ID:FYN8cE/y
>>462のURLの先を読めば>>466の解釈が出来ると思うんだが、

>さまざまな機能追加したものが今回のスレッドライブラリだ、という説明なら理解できるが

ずばりそういう説明だと思うし、いまいち>>462の理解出来ない点が良くわからないなぁ…

468462
垢版 |
2008/07/01(火) 09:11:23ID:kXo7xDYW
初めくだりで、『処理の流れがひとつしかない「シングルスレッド」』と書いてあり
今まで複数処理実行ができなかった的な説明なので
おかしくないかな、という問題提議ですが。
レス感謝。>>466
2008/07/01(火) 10:49:42ID:qoWvNkaw
>>468
寧ろ、貴方の表現の方がおかしい。なんで「できなかった的」って過去形にしちゃうかな。

「AS3はシングルスレッド」で間違いない。
今までも、Thread使っても、複数同時処理はできない。
「できなかった」じゃなくて今でも「できない」。onEnterFrameを使おうがThreadを使おうが。
あくまでもThreadは 『「マルチスレッド」を擬似的に実現』 してるだけ。

だから、あの記述はそんなにおかしなものでもないと思うよ。
2008/07/01(火) 11:09:34ID:kXo7xDYW
あくまで擬似的なマルチスレッドであって
VMは一つなのだから結局はシングルスレッドだというのは理解しています。
onEnterFrameを用いようとも、今回のThreadクラスを用いようとも。

上記URLの初めの説明の、今まで非同期処理が入るととたんにコードが複雑になる理由として
「処理の流れがひとつしかないシングルスレッド」の箇所が引っかかったのです。

説明するのであれば、「処理の流れがひとつしかない」は不要でしょう。
擬似的なマルチスレッドという点から考えても、(結局は処理の流れは一つ)
今までもonEnterFrameで複数処理を走らせることができたという点から考えてもです。

でもあえて上記URLでは「処理の流れがひとつしかない」と書いてあることに、
もしかしたら今までの自分の認識が何か間違っていたのだろうか
とも考えたわけで>>462のような書き込みをしました。
おしまい
2008/07/02(水) 00:45:06ID:pCQJxhQD
ん?
>今までもonEnterFrameで複数処理を走らせることができたという点から考えてもです。
これは複数走らせることができているわけではなく、あくまでもonEnterFrame毎に「処理の流れが一つ」流れているだけでは?
俺の理解が間違ってる??
2008/07/02(水) 01:03:59ID:lqMaOJ5K
>>462 はAS1/2とAS3をごっちゃで考えてるんじゃないかなと思った。
AS1/2の頃は複数のMCにonEnterFrameを書けるから複数処理で、AS3でも同じように
onEnterFrameを書けると勘違いしてわざわざこんなライブラリ使う必要ないんじゃねってことでは?

・・・なんか自分自身も根本的に間違ってる気がする。
2008/07/04(金) 01:28:47ID:zSaXjz38
今までだと「処理の流れを書く方法」が整備されておらず、長い処理を分割して
フレームやタイマーでちょっとずつ処理してくような書き方(たとえばロード完了の
フラグがたつまでループするとか)をそれぞれユーザーが行っていく必要があったが、
スレッドライブラリを使うことによりそういった処理を統一的に一本の糸(処理)
として書くことができて、さらに複数の糸が並行的に協調していくことができる。

あくまで複数の「処理の流れ」を書けるということで、同時に複数実行されるわけ
ではないが、大きな流れの中で複数の流れを共存させられる仕組みなのだ。

というようなことなんじゃないかと使ったことがない俺が想像。
2008/07/04(金) 01:30:36ID:zSaXjz38
>説明するのであれば、「処理の流れがひとつしかない」は不要でしょう。

「複数の処理の流れを書くのはとても面倒」くらいだったらよかったかな
2008/07/05(土) 12:00:03ID:kFmI/yft
どもども。

言いたかったことは >>473-474 であってます。ちょっと説明が足りなかったですね。
何も無しに自分でマルチスレッド (処理の流れが複数ある) 風に書くのは面倒でした、
ということです。
2008/08/08(金) 01:01:44ID:ROBQ1V9T
>>471
あってる。
単に>>462がマルチタスクとマルチスレッドを混同してるだけじゃないか?
2008/08/08(金) 02:20:40ID:ROBQ1V9T
あーマルチタスクというのも微妙に違うか。
ただ>>473みたいなのってシングルスレッドの書き方なんよ。
それをマルチスレッド風って言うのは違和感あるな、何かと勘違いしてんじゃね、と。
スレ違いスマン
2008/08/08(金) 13:12:24ID:+JNcBkGE
>>476-477
例えばCなんかでマルチスレッドになるコードをどう頑張って書いても、
PCがシングルコアだった場合は結局内部でマルチスレッド"風"にしかならないわけだし、
コードという抽象化された部分でマルチスレッド風ということに何ら問題はないでしょ
むしろマルチタスクなんて全然関係ない物持ち出しちゃう方が理解が浅いんじゃないかと
2008/08/08(金) 13:16:31ID:Hs3Wdwpv
一ヶ月以上前のしかも解決してる話に何を言ってるんだお前は…
2008/08/09(土) 03:40:38ID:WCYGOC8H
>>478-479
ごめん。自分の勘違いを蒸し返されるのって普通つらいよな。
>>470で終わらそうとしているのに気づくべきだった。
周りがせっかく空気読んでくれたのに俺だけ読んでなくて悪かった。すまぬ。
2008/08/09(土) 14:27:25ID:qlQTPazH
えーと、何この人・・・?
誰と戦ってるの?
2008/08/09(土) 23:10:43ID:8A/T0baG
くやしさ
2008/08/09(土) 23:39:10ID:EvTypVxL
>>480
×自分の勘違い
○お前の勘違い
2008/08/19(火) 16:37:54ID:y7n7hB7Q
ゲーム製作技術板のこことか荒れてて笑える^H^H^H参考になるかもだ。

タスクシステム総合スレ part2
http://pc11.2ch.net/test/read.cgi/gamedev/1196711513/
485Now_loading...774KB
垢版 |
2008/08/28(木) 21:30:37ID:dU4YTjY2
Flashでゲーム作ろうと思って詳しい方に質問にきました。
自分でも勉強しますが、先に詳しい方にお聞きしたいので、
とりあえず質問させていただきます。

Flashって10万個の枝先を持つ木構造とか安定して扱えるでしょうか?
ゲーム開始と共に、ファイルを読み込んで現実的な時間で木構造を作り、
ゲーム中でも結構頻繁に木にアクセスすることになるのですが、
技術的に可能かどうかの見積もりがつきません。
気になるのはスピードが遅くならないかとか処理が怪しくならないかなどです。

また木構造をファイルに保存、読み出ししたり高速化したりなどは可能でしょうか?
Gameの状態管理に便利なクラスなどはそろっているのでしょうか?
2008/08/28(木) 23:03:42ID:46T/5/Z1
そもそも10万ぐらいは余裕じゃねの?AS3。
2008/08/28(木) 23:21:40ID:EMs5WXi3
>>485
クラスはそろってないし、ファイルの保存もできないよ。
俺はそのプロジェクトではFlashは選ばないな。
2008/08/29(金) 01:04:38ID:THGFNZ/l
計算と描画を分けて処理することに慣れていれば何とかなる
表示上は10万個だけど、実際は1つのビットマップデータとして扱う

とりあえず使えればいい程度のFlashだったら
素人でもちょっと勉強すればできるかもしれないが、
スクリプトの処理効率を良くするアルゴリズムとかを考えだすと
それなりの知識と経験が必要。
2008/08/31(日) 19:24:12ID:iSzyBDuA
>>485
AS3で木構造を作るだけなら自前で実装すればどうにでもなる。
基本的にJavaみたいにユーティリティクラスが全部用意されてるわけではないので、
必要なアルゴリズムは全部自前で実装できるくらいの実力は必要。

処理が怪しくなったり不安定になったりする事はないと思うが、
AS3はシングルスレッドな上、基本的に1フレームごとに呼び出しから抜けなきやならない
(長時間ブラウザに処理を返さないでループを回し続けると例外を投げる)
ので、ノードのデータ量が大きかったり複雑だったりする場合は
うまく処理を複数フレームに分割してやる必要あり。

ちなみに、XMLの読み込みだけならFlashで扱うクラスが既にある。
バイナリファイルの読み込みまでならFlash単体でもどうにかなるけど、
ファイルへの書き込みがやりたいならAIRを使わなきゃダメ。
(Flash単体のデータの永続化はSharedObjectでやるのが普通)
2008/08/31(日) 19:54:16ID:aoIWgm/k
FlashPlayer10でサポートされるんじゃなかったっけ
ファイル読み書き
2008/09/02(火) 14:13:51ID:FYk/JUfR
>>485
Flashplayer10からローカルファイルの読み書き対応
492Now_loading...774KB
垢版 |
2008/09/08(月) 18:03:57ID:vh+I3ufY
詳細なお返事ありがとうございます。
>基本的にJavaみたいにユーティリティクラスが全部用意されてるわけではないので、
>必要なアルゴリズムは全部自前で実装できるくらいの実力は必要。
教科書に載ってるような基本的なクラスの実装、技術的には難しくなくても
時間かかりそうだし、自分で用意するとなると信頼性も低下しますね。

>Flashplayer10からローカルファイルの読み書き対応
情報サンクスです。
10の普及率を考えると悩むところです。
4MBテキストの読み書きが出来ないと話にならないので、
10以前のバージョンではだめなのでしょうが。
やはり普及率が。
他の言語も検討してみます。
オブジェクト指向寄りで教科書に載っているクラスは一通りそろっていてできたら配布が用意。
理想を言えば記述の容易なスクリプト系、リッチな壁画もできる言語。
まあ理想なので条件全部そろってなくてもいいのですが、そういう言語探してみます。
2008/09/08(月) 19:21:54ID:MKRMzHnB
煽りじゃなくて普通に疑問に思ったんだけど、木構造程度のテストプログラムもすぐに書けない人が
そんなの扱うゲームなんて作れるの?いくらASを触るのが初めてでも、
ゲーム作ろうなんて人なら1時間もあればそれくらい書けると思うんだけど。
教科書に載ってるクラスってのも意味不明だし。
2008/09/08(月) 21:57:46ID:5lQkOCBf
職業プログラマだとコンピューターサイエンス系の知識がかなり怪しい人も結構多いよ。
それに単に二分木書くだけなら1時間もいらんだろうしやってみろってのには同意だが
実用になるレベルで操作アルゴリズムまで書くのは意外に面倒だろ。
495Now_loading...774KB
垢版 |
2008/09/16(火) 01:30:41ID:xZGRcoh4
>493
>494
お返事遅れました。
親身なお返事ありがとうございます。
実は私プロでなくアマグラマーでして、同人ゲームを作ろうと思っています。
>一時間もあれば
やっぱり得意な方は早いのですね。
プログラム遅くて、早く作れる自信ないです(涙)
上手い方を相棒にしたほうがいい気がしてきました。

そこでお一つ、製作中のゲームアイディア見て欲しいのです。
仕様書(もどき)までは出来ているので、お時間があれば一つお読みいただければと。
最初に作ろうと思っているのはもじぴったんに"34"の新規ギミックを追加したソフト。
提供するのは土台だけ、ステージはユーザが作ってね。というゲームです。

SRCというゲームを見習って、ギミックをどう使うかはステージ製作者にお任せというゲームです。
仕様書8割まで完成しているので見ていただけたら幸いです。
ttp://www14.atwiki.jp/c21coterie/pages/76.html
後、「使用書が変だよ」って部分あったらご指摘いただけたらと思います。
496Now_loading...774KB
垢版 |
2008/09/16(火) 01:32:23ID:xZGRcoh4
他にも幾つか企画だけならありまして。

RPGで戦ってレベルアップに飽き飽きという方におくるカジュアルゲームソフト。
戦わないでレベルアップするゲーム。
携帯の録音機能で音を集めて、音データでキャラを強化しよう。
というゲームです。
企画書段階。
ttp://www14.atwiki.jp/c21coterie/pages/83.html


他に対艦アクションゲームとかマリオギャラクシーのパクリゲーとか
後、書ている途中なのだとか、色々とアイディアはあるのです。
同人ゲームなんて一人で作れるわけもないですし、
やはり一時間で作れるとなれば、得意な方に参加して欲しい。
一緒に作ってくださる方を探しています。
ソフトの出来次第では小金を稼いで参加者に分配もできたらと考えています。
2008/09/16(火) 16:20:31ID:6Uw91KOG
一人で簡単なゲームすら作れてないところに妄想企画だけでまともなスタッフが集まると思ってるの?バカなの?
同人ゲームなんて一人でつくれるよ。一人で作れる規模でやればいい。絵や音なんて下手でもいいし、フリー素材でもいっぱいある。
重要なのは、どんなものでもいいから一つでも成果物を完成させること。

とりあえずこれ以上はスレ違いなのでゲー製作板あたりに行け。
2008/09/16(火) 23:24:00ID:yqrvtL5+


>実は私プロでなくアマグラマーでして、同人ゲームを作ろうと思っています。

面倒なことは他人にやらせて、自分は楽しいとこだけという思想がすでにアマではなく、むしろプロ(企業的)っぽい

■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況