JavaScript を自ら学ぶ人のための質問スレッドです。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
前スレ
+ JavaScript の質問用スレッド vol.125 +
https://mevius.5ch.net/test/read.cgi/tech/1518940081/
(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです)
+ JavaScript の質問用スレッド vol.126 +
■ このスレッドは過去ログ倉庫に格納されています
2018/06/02(土) 14:31:23.04ID:B1JKBGEy
763デフォルトの名無しさん
2019/01/02(水) 16:12:12.28ID:/JRa6BYE >>762
・・・
emscripten_sleep: function(ms) {
Module['setAsync'](); // tell the scheduler that we have a callback on hold
Browser.safeSetTimeout(_emscripten_async_resume, ms);
},
・・・
}
・・・
emscripten_sleep: function(ms) {
Module['setAsync'](); // tell the scheduler that we have a callback on hold
Browser.safeSetTimeout(_emscripten_async_resume, ms);
},
・・・
}
764デフォルトの名無しさん
2019/01/02(水) 16:28:37.28ID:/JRa6BYE 以下の前提がある時、
callback = {{{ makeGetValueAsm('___async_cur_frame', 8, 'i32') }}};
{{{ makeDynCall('vi') }}}(callback | 0, (___async_cur_frame + 8)|0);
の部分が、何を意味するのか分かる人いない?
---------------------------------------
var Module = {};
Module["asm"] = (function(global, env, buffer) {
"use asm";
var HEAP8 = new global.Int8Array(buffer);
var HEAP16 = new global.Int16Array(buffer);
var HEAP32 = new global.Int32Array(buffer);
var HEAPU8 = new global.Uint8Array(buffer);
・・・・
}
var dynCall_vi = Module["dynCall_vi"] = function() { return Module["asm"]["dynCall_vi"].apply(null, arguments) };
function makeDynCall(sig) {
if (!EMULATED_FUNCTION_POINTERS) {
return 'dynCall_' + sig;
} else {
return 'ftCall_' + sig;
}
}
callback = {{{ makeGetValueAsm('___async_cur_frame', 8, 'i32') }}};
{{{ makeDynCall('vi') }}}(callback | 0, (___async_cur_frame + 8)|0);
の部分が、何を意味するのか分かる人いない?
---------------------------------------
var Module = {};
Module["asm"] = (function(global, env, buffer) {
"use asm";
var HEAP8 = new global.Int8Array(buffer);
var HEAP16 = new global.Int16Array(buffer);
var HEAP32 = new global.Int32Array(buffer);
var HEAPU8 = new global.Uint8Array(buffer);
・・・・
}
var dynCall_vi = Module["dynCall_vi"] = function() { return Module["asm"]["dynCall_vi"].apply(null, arguments) };
function makeDynCall(sig) {
if (!EMULATED_FUNCTION_POINTERS) {
return 'dynCall_' + sig;
} else {
return 'ftCall_' + sig;
}
}
765デフォルトの名無しさん
2019/01/02(水) 16:46:37.75ID:+DxIoQKP 三重波括弧についてはEmscripten独自のマクロみたいだね
多分だけどビルド時に当該箇所が置換されるんだと思う
https://github.com/kripken/emscripten/blob/52479350e642453bf74ceca108fca8e1f43b30d5/src/parseTools.js#L11-L12
マクロ展開後がどうなるか分からないからこれ以上は分からない
多分だけどビルド時に当該箇所が置換されるんだと思う
https://github.com/kripken/emscripten/blob/52479350e642453bf74ceca108fca8e1f43b30d5/src/parseTools.js#L11-L12
マクロ展開後がどうなるか分からないからこれ以上は分からない
766デフォルトの名無しさん
2019/01/02(水) 18:09:44.66ID:/JRa6BYE [何をやってるかの自分なりの推定]
例えば、main() 関数の中で、emscripten_sleep(n) を使うと、setTimeout() を使って、
emscripten_async_resume() 関数を、n(ms) 後に起動するようにしておく。そして、
その段階では、main() の後の処理を全て素通りして、main() 関数から return する。
これは、if 文で、label という名称の local 変数の値で場合わけして、goto で色々な
ラベルに飛んでいるような感じ。でも、JS には、goto 文がないので、関数の処理全体を
大体 while(1) 文のブロック中に入れてしまって、必要な時に break する事で、while
ブロックの次の場所に飛ぶようにしてある。そして、そこで label 変数の値で場合分けして、
何らかの処理を行う。実は、この時、main() 関数に割り当てられた識別番号をどこかの
グローバル変数 g_k に残しておく。この識別番号は、0 から割り振られた小さな値で、
どこかの配列 g_func_s[]には、色々な関数の先頭アドレスが入っており、main もその中の
1つとして入っている。例えば、main に割り振られた識別番号が 5 なら、g_funs[5] で
main の関数アドレスが取得できるようになってるらしい。
次に、n(ms) の時間が経過すると、emscripten_async_resume() が呼び出される。この時点では、
main() 関数は実行を終えてしまっているので、何とかして、もう一度 main() 関数を起動しなおして、
上手く、emscripten_sleep() の直後の行にまで戻りたい。そこで、g_k に残された番号を頼りに、
g_func_s[g_k] の関数を起動しなおす。g_func_s[g_k] には、main 関数の先頭アドレスが入ってい
るので、main 関数を再起動することは出来ることは出来る。
で、main をもう一度起動して、なんとかして、emscripten_sleep() の直後の行にまで進む。
これは、変数「label 」に上手く値を入れることで、何とかしているんだと思う。
この時、スタック・ポインタの値も、元に戻す。
STACKTOP が、スタック・ポインタで、HEAP32[] が、CPU 全体のアドレス空間みたいなもの。
大体、HEAP32[STACKTOP] と書くことで、該当のスタックの近くにアクセスできるらしい。
例えば、main() 関数の中で、emscripten_sleep(n) を使うと、setTimeout() を使って、
emscripten_async_resume() 関数を、n(ms) 後に起動するようにしておく。そして、
その段階では、main() の後の処理を全て素通りして、main() 関数から return する。
これは、if 文で、label という名称の local 変数の値で場合わけして、goto で色々な
ラベルに飛んでいるような感じ。でも、JS には、goto 文がないので、関数の処理全体を
大体 while(1) 文のブロック中に入れてしまって、必要な時に break する事で、while
ブロックの次の場所に飛ぶようにしてある。そして、そこで label 変数の値で場合分けして、
何らかの処理を行う。実は、この時、main() 関数に割り当てられた識別番号をどこかの
グローバル変数 g_k に残しておく。この識別番号は、0 から割り振られた小さな値で、
どこかの配列 g_func_s[]には、色々な関数の先頭アドレスが入っており、main もその中の
1つとして入っている。例えば、main に割り振られた識別番号が 5 なら、g_funs[5] で
main の関数アドレスが取得できるようになってるらしい。
次に、n(ms) の時間が経過すると、emscripten_async_resume() が呼び出される。この時点では、
main() 関数は実行を終えてしまっているので、何とかして、もう一度 main() 関数を起動しなおして、
上手く、emscripten_sleep() の直後の行にまで戻りたい。そこで、g_k に残された番号を頼りに、
g_func_s[g_k] の関数を起動しなおす。g_func_s[g_k] には、main 関数の先頭アドレスが入ってい
るので、main 関数を再起動することは出来ることは出来る。
で、main をもう一度起動して、なんとかして、emscripten_sleep() の直後の行にまで進む。
これは、変数「label 」に上手く値を入れることで、何とかしているんだと思う。
この時、スタック・ポインタの値も、元に戻す。
STACKTOP が、スタック・ポインタで、HEAP32[] が、CPU 全体のアドレス空間みたいなもの。
大体、HEAP32[STACKTOP] と書くことで、該当のスタックの近くにアクセスできるらしい。
767デフォルトの名無しさん
2019/01/02(水) 18:50:37.56ID:/JRa6BYE function dynCall_vi(index,a1) {
index = index|0;
a1=a1|0;
FUNCTION_TABLE_vi[index&15](a1|0);
}
var FUNCTION_TABLE_vi = [b2,b2,b2,b2,_main__async_cb,b2,_vfprintf__async_cb,
_fflush__async_cb_2,_fflush__async_cb_1,_fflush__async_cb_3,
_fflush__async_cb,___fflush_unlocked__async_cb,___fflush_unlocked__async_cb_4,
_printf__async_cb,b2,b2];
index = index|0;
a1=a1|0;
FUNCTION_TABLE_vi[index&15](a1|0);
}
var FUNCTION_TABLE_vi = [b2,b2,b2,b2,_main__async_cb,b2,_vfprintf__async_cb,
_fflush__async_cb_2,_fflush__async_cb_1,_fflush__async_cb_3,
_fflush__async_cb,___fflush_unlocked__async_cb,___fflush_unlocked__async_cb_4,
_printf__async_cb,b2,b2];
768デフォルトの名無しさん
2019/01/02(水) 19:52:48.79ID:2lhCREwi 単純にスタックを切り替えて該当処理を再開できるようにしてるだけじゃん
769デフォルトの名無しさん
2019/01/03(木) 00:47:27.22ID:8NinKkm9770デフォルトの名無しさん
2019/01/03(木) 01:00:48.19ID:8NinKkm9 >>768
asm.js は、JSの「subset」とされる。だから、JSでサポートされてないことは、
asm.jsでも本質的には出来ない。JSは、
・sleep()関数が存在せず、wait()関数も今のところサポートされているブラウザが
かなり限定されるので、原則的には、関数の途中で無限ループ以外では停止する
ことは出来ない。
・関数callを使わずに、アセンブラの単純な(大域) jmp のようなことは
出来ない。だから、スタックポインタだけを元に戻しても、命令ポインタ(IP)
を元に戻すことが難しい。
・LLVMでも、原則的にはコードは個別の関数としてだけ作ることが出来て、
関数の外にコードを書くことはおそらく出来ない。
・ただし、LLVMの場合は、longjmp やスタックポインタなどのサポートが
色々と有るのでそのあたりを利用すれば何らかの方法があるかもしれない。
・だから、Emscriptenのemsripten_sleep()は、非常に高度なことをやっており、
「待ちたい時」は、いったんそれまでの呼び出し連鎖の全ての関数を逆に戻って、
「システム」にまで戻る。原則的には、全ての関数は、なんらかのイベント
からスタートしているので、これは、イベント・ハンドラの処理をいったん
終了して、ブラウザに制御を戻すような事になる。
・一定時間が経過すると、設定しておいたresume用のハンドラがシステムによって
起動されるので、そのタイミングで、呼び出し連鎖の全ての関数を再度、
「再起動」する。この仕組みを使わないと「EIP」を元に戻すことが出来ない
ためである。なお、スタックポインタについては、独自のグローバル変数を元に戻す
だけで済む。スタック自体は、巨大な「配列」をCPUのメモリー空間のように
して、スタックポインタに該当する変数を配列の添え字としてアクセスするような
事をしている。
asm.js は、JSの「subset」とされる。だから、JSでサポートされてないことは、
asm.jsでも本質的には出来ない。JSは、
・sleep()関数が存在せず、wait()関数も今のところサポートされているブラウザが
かなり限定されるので、原則的には、関数の途中で無限ループ以外では停止する
ことは出来ない。
・関数callを使わずに、アセンブラの単純な(大域) jmp のようなことは
出来ない。だから、スタックポインタだけを元に戻しても、命令ポインタ(IP)
を元に戻すことが難しい。
・LLVMでも、原則的にはコードは個別の関数としてだけ作ることが出来て、
関数の外にコードを書くことはおそらく出来ない。
・ただし、LLVMの場合は、longjmp やスタックポインタなどのサポートが
色々と有るのでそのあたりを利用すれば何らかの方法があるかもしれない。
・だから、Emscriptenのemsripten_sleep()は、非常に高度なことをやっており、
「待ちたい時」は、いったんそれまでの呼び出し連鎖の全ての関数を逆に戻って、
「システム」にまで戻る。原則的には、全ての関数は、なんらかのイベント
からスタートしているので、これは、イベント・ハンドラの処理をいったん
終了して、ブラウザに制御を戻すような事になる。
・一定時間が経過すると、設定しておいたresume用のハンドラがシステムによって
起動されるので、そのタイミングで、呼び出し連鎖の全ての関数を再度、
「再起動」する。この仕組みを使わないと「EIP」を元に戻すことが出来ない
ためである。なお、スタックポインタについては、独自のグローバル変数を元に戻す
だけで済む。スタック自体は、巨大な「配列」をCPUのメモリー空間のように
して、スタックポインタに該当する変数を配列の添え字としてアクセスするような
事をしている。
771デフォルトの名無しさん
2019/01/03(木) 01:14:16.10ID:8NinKkm9 >>770
[補足]
・データ用のスタックポインタは、単純にSTACKTOPという名称のJSの
グローバル変数によって模倣するとする。
・CPUの全アドレス空間は、HEAP32[] という32BIT整数の配列で
模倣するとする。
・その結果、スタック変数(local auto 変数)は、HEAP32[STACKTOP + ofs/4]
のような形式でアクセスできるようになる。
・通常のCPUでは、関数を呼び出した親のコードのアドレスが、スタック上に保存
されたあと、命令ポインタ IP の値が、呼び出し先の関数の先頭アドレスに修正される。
・JSの関数呼び出しも、ブラウザの内部的な変数に「戻りアドレス」が保存されて、
ある意味ではこれとよく似たことは行われていると考えてよい。
・しかし、このスタックは、HEAP32[] や、STACKTOP とはまったく独立した
ブラウザの内部的な領域にある。
・つまり、この「戻り値アドレス」は、HEAP32[]の中には入ってない。
・だから、STACKTOP を元に戻したところで、CPUの場合のように単純にはいかない。
・その結果、関数呼び出し連鎖を全て cancel する動作と、全て call し直して元に戻す
という動作は、STACKTOP の動作とは別に行わなくてはならない。
・ラベル名やラベル番号を指定した大域 goto 命令みたいなものが有れば話は別なのだが、
多分、JS にはそれがないためである。
[補足]
・データ用のスタックポインタは、単純にSTACKTOPという名称のJSの
グローバル変数によって模倣するとする。
・CPUの全アドレス空間は、HEAP32[] という32BIT整数の配列で
模倣するとする。
・その結果、スタック変数(local auto 変数)は、HEAP32[STACKTOP + ofs/4]
のような形式でアクセスできるようになる。
・通常のCPUでは、関数を呼び出した親のコードのアドレスが、スタック上に保存
されたあと、命令ポインタ IP の値が、呼び出し先の関数の先頭アドレスに修正される。
・JSの関数呼び出しも、ブラウザの内部的な変数に「戻りアドレス」が保存されて、
ある意味ではこれとよく似たことは行われていると考えてよい。
・しかし、このスタックは、HEAP32[] や、STACKTOP とはまったく独立した
ブラウザの内部的な領域にある。
・つまり、この「戻り値アドレス」は、HEAP32[]の中には入ってない。
・だから、STACKTOP を元に戻したところで、CPUの場合のように単純にはいかない。
・その結果、関数呼び出し連鎖を全て cancel する動作と、全て call し直して元に戻す
という動作は、STACKTOP の動作とは別に行わなくてはならない。
・ラベル名やラベル番号を指定した大域 goto 命令みたいなものが有れば話は別なのだが、
多分、JS にはそれがないためである。
772デフォルトの名無しさん
2019/01/03(木) 01:41:07.74ID:8NinKkm9 JSも、全てのコードを一つの関数の中に収めてしまって、
continue label 文や break label 文を使えば、好きなラベルに
jmp 出来る気がする。
もしそうだとすれば、関数の戻り値のラベル番号も、独自スタック
HEAP32[STACKTOP + ofs/4] に保存し、関数 call は、
JS の関数 call を使わずに、continue label / break label
を用い、関数から戻るときは、HEAP32[] から、戻り値の
ラベル番号を取得して、そのラベルに continue label または、
break label を使って jmp すれば、もっとすっきり実装してしまえる
かも知れない。
continue label 文や break label 文を使えば、好きなラベルに
jmp 出来る気がする。
もしそうだとすれば、関数の戻り値のラベル番号も、独自スタック
HEAP32[STACKTOP + ofs/4] に保存し、関数 call は、
JS の関数 call を使わずに、continue label / break label
を用い、関数から戻るときは、HEAP32[] から、戻り値の
ラベル番号を取得して、そのラベルに continue label または、
break label を使って jmp すれば、もっとすっきり実装してしまえる
かも知れない。
773デフォルトの名無しさん
2019/01/03(木) 03:01:45.80ID:fco1PFrc sleepは全然複雑じゃない
CPUを例に出すのは大間違いsleepしてもその間に別の処理が走るわけではないのだから
スタックの切り替えだなんだのは必要ないしやっていない
ただ処理ループを一旦抜けてsetTimeoutで待って再開してるだけ
CPUを例に出すのは大間違いsleepしてもその間に別の処理が走るわけではないのだから
スタックの切り替えだなんだのは必要ないしやっていない
ただ処理ループを一旦抜けてsetTimeoutで待って再開してるだけ
774デフォルトの名無しさん
2019/01/03(木) 05:08:32.78ID:Hc/0Zpss > CPUを例に出すのは大間違いsleepしてもその間に別の処理が走るわけではないのだから
JavaScriptでsleepを実装すると「その間に別の処理が走ってしまうから」
それを妨害するのが大変なんでしょ
JavaScriptでsleepを実装すると「その間に別の処理が走ってしまうから」
それを妨害するのが大変なんでしょ
775デフォルトの名無しさん
2019/01/03(木) 09:28:46.87ID:NOMEwXEr 公式のsleep(2000)の実装例
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/async_function
てかマジでグダグダ言う前にMDNとか読めよドアホ>>770
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/async_function
てかマジでグダグダ言う前にMDNとか読めよドアホ>>770
776デフォルトの名無しさん
2019/01/03(木) 10:15:21.62ID:Hc/0Zpss777デフォルトの名無しさん
2019/01/03(木) 10:25:31.04ID:NOMEwXEr >>776
おまえがsleepを分かってないことは分かった
おまえがsleepを分かってないことは分かった
778デフォルトの名無しさん
2019/01/03(木) 10:48:05.95ID:NOMEwXEr >>770
どうもアホがいて空回りしそうだから先に言っておく
> 原則的には、関数の途中で無限ループ以外では停止する
> ことは出来ない。
これがasync/awaitで構文的に緩和されてる。
勿論それでもシングルスレッドだから、
実行中のコンテキスト(スタック等)の切換は行わなければならないが、
async/awaitをサポートした時点でそれはJSエンジン側の仕事になってる。
emscripten自体はasync/awaitの標準化以前から存在するから、
その部分が結果的にポリフィル的になっているのは致し方ない。
どうもアホがいて空回りしそうだから先に言っておく
> 原則的には、関数の途中で無限ループ以外では停止する
> ことは出来ない。
これがasync/awaitで構文的に緩和されてる。
勿論それでもシングルスレッドだから、
実行中のコンテキスト(スタック等)の切換は行わなければならないが、
async/awaitをサポートした時点でそれはJSエンジン側の仕事になってる。
emscripten自体はasync/awaitの標準化以前から存在するから、
その部分が結果的にポリフィル的になっているのは致し方ない。
779デフォルトの名無しさん
2019/01/03(木) 10:52:03.35ID:fco1PFrc >>774
妨害してないよ
正確にはビジーループに変換されるsleepもあるけど動作には関係ない
なぜなら複数スレッドの処理が実際の1スレッドで動くよう変換されるわけではないから
むしろメインスレッドをブロックしないためにsetTimeoutが使われてる
その間に別のJSが動こうとそれは世界が違う話なので関係ない
妨害してないよ
正確にはビジーループに変換されるsleepもあるけど動作には関係ない
なぜなら複数スレッドの処理が実際の1スレッドで動くよう変換されるわけではないから
むしろメインスレッドをブロックしないためにsetTimeoutが使われてる
その間に別のJSが動こうとそれは世界が違う話なので関係ない
780デフォルトの名無しさん
2019/01/03(木) 11:20:52.45ID:NSJq2GPH >>778
async, await はダメだよ。
停止せずに素通りしてしまうから。
戻ってくることは出来るけど、async 修飾したその関数にだけしか
戻って来れないので、sleep には使えない。
async, await はダメだよ。
停止せずに素通りしてしまうから。
戻ってくることは出来るけど、async 修飾したその関数にだけしか
戻って来れないので、sleep には使えない。
781デフォルトの名無しさん
2019/01/03(木) 11:27:05.78ID:NOMEwXEr782デフォルトの名無しさん
2019/01/03(木) 11:37:39.37ID:NOMEwXEr ただそれ以前に、emscriptenは要するにC++→JS変換してくれるわけで、
sleepも当然サポートされていてそれなりに変換されてるだけだろ。
馬鹿なら馬鹿なりにそれを有り難く使えばいいだけだと思うが。
お前らのオレオレ実装よりは数段マシだと思うぜ。
sleepも当然サポートされていてそれなりに変換されてるだけだろ。
馬鹿なら馬鹿なりにそれを有り難く使えばいいだけだと思うが。
お前らのオレオレ実装よりは数段マシだと思うぜ。
783デフォルトの名無しさん
2019/01/03(木) 15:03:04.04ID:NSJq2GPH 現実世界では、天才だといわれてきたが。
784デフォルトの名無しさん
2019/01/03(木) 16:46:36.63ID:fco1PFrc いくら天才でも正しい前提知識を持ってないんじゃ仕方ない
785デフォルトの名無しさん
2019/01/03(木) 17:47:55.93ID:gRBMU2bw 10000ms指定したらUIが10秒止まるクソ関数が作れるなんて聞いた事ないし
簡単に作れちゃったら困る
簡単に作れちゃったら困る
786デフォルトの名無しさん
2019/01/03(木) 18:21:47.24ID:NOMEwXEr 簡単に作れるけどな
787デフォルトの名無しさん
2019/01/03(木) 18:56:01.52ID:NSJq2GPH788デフォルトの名無しさん
2019/01/03(木) 18:56:36.55ID:NSJq2GPH >>786
なら、作って欲しい。
なら、作って欲しい。
789デフォルトの名無しさん
2019/01/03(木) 19:11:23.28ID:NOMEwXEr ggrks
790デフォルトの名無しさん
2019/01/03(木) 19:19:13.19ID:NSJq2GPH >>789
何度ググっても出てこない。
何度ググっても出てこない。
791デフォルトの名無しさん
2019/01/03(木) 19:40:17.29ID:fco1PFrc どういうときにどう上手く行かないのかを言ってくれないとな
792デフォルトの名無しさん
2019/01/03(木) 20:06:11.56ID:NOMEwXEr そんな知能なさそうだし。
sleepなんて昔から話題としては出尽くしていて、ググレばいくらでも出てくる。
それを出てこないと言いきる辺り、つまりはコードクレクレ君で、コピペプログラマ以下だろ。
(ググったコードについても読めないからコピペすら出来ない)
sleepなんて昔から話題としては出尽くしていて、ググレばいくらでも出てくる。
それを出てこないと言いきる辺り、つまりはコードクレクレ君で、コピペプログラマ以下だろ。
(ググったコードについても読めないからコピペすら出来ない)
793デフォルトの名無しさん
2019/01/03(木) 21:50:51.86ID:eJU/mZfW また数学首席くんが妄想してんの?
いい加減自分が向いてないって気づけば良いのに。
いい加減自分が向いてないって気づけば良いのに。
794デフォルトの名無しさん
2019/01/03(木) 22:48:54.84ID:NOMEwXEr こいつはスルースキル特化型だな。
俺はスルースキル・モンスターと呼んでいるが、最近このタイプは増えてきている。
危険な兆候だよ。
俺はスルースキル・モンスターと呼んでいるが、最近このタイプは増えてきている。
危険な兆候だよ。
795デフォルトの名無しさん
2019/01/03(木) 22:52:45.12ID:Hc/0Zpss じゃあお前の職業は、スキースキル・ハンターで
796 ◆QZaw55cn4c
2019/01/04(金) 09:17:15.97ID:ry6hJENG >>794
「スルースキル・モンスター」を説明してください
「スルースキル・モンスター」を説明してください
797デフォルトの名無しさん
2019/01/04(金) 09:53:39.24ID:GK4v5jr/ canvas の width や、グラフィック描画時の座標指定が、ブラウザの拡大率を
100%にしても、実際の画面のピクセル座標とは違っている。
<meta name="viewport" content="width=device-width, initial-scale=1">
を指定しても駄目だった。ぴったり同じにする方法ある?
100%にしても、実際の画面のピクセル座標とは違っている。
<meta name="viewport" content="width=device-width, initial-scale=1">
を指定しても駄目だった。ぴったり同じにする方法ある?
798デフォルトの名無しさん
2019/01/04(金) 15:04:48.00ID:GK4v5jr/ Chromeで拡大率100%の時、HTML 内の JS で、
value = window.devicePixelRatio;
console.log( "window.devicePixelRatio = " + value );
とすると、1.25 と表示される。
HTML の <div> tag の style を css で width: 100px; などとしたものを
Chrome で 100% の拡大率で表示したものを、ScreenShot をとって調べてみると、
125 dot 程度になっていた。
使用OSは、Win7 で、確か、文字を大きめに表示する設定にしてある。
value = window.devicePixelRatio;
console.log( "window.devicePixelRatio = " + value );
とすると、1.25 と表示される。
HTML の <div> tag の style を css で width: 100px; などとしたものを
Chrome で 100% の拡大率で表示したものを、ScreenShot をとって調べてみると、
125 dot 程度になっていた。
使用OSは、Win7 で、確か、文字を大きめに表示する設定にしてある。
799デフォルトの名無しさん
2019/01/04(金) 15:50:35.77ID:XP0z3+7N canvasの内部的な座標とcanvasのelement的な座標の比で調整するのじゃダメなんかい
800デフォルトの名無しさん
2019/01/04(金) 16:11:48.10ID:fcxyg7i+ そもそもピクセルが正方形とも限らないわけで
デバイス、ドライバ、OSが順に抽象化したあと更にブラウザが抽象化したものが
Webアプリからは見えるのでそこをどうこうしようとするのはナンセンス
それでもどうしてもどうにかしたいというのなら
devicePixelRatioやrenderedPixelWidthを元にその文だけCanvasをCSSで縮小してみるとか
デバイス、ドライバ、OSが順に抽象化したあと更にブラウザが抽象化したものが
Webアプリからは見えるのでそこをどうこうしようとするのはナンセンス
それでもどうしてもどうにかしたいというのなら
devicePixelRatioやrenderedPixelWidthを元にその文だけCanvasをCSSで縮小してみるとか
801デフォルトの名無しさん
2019/01/04(金) 16:50:58.90ID:GK4v5jr/ 色々試して、以下のようにすると、ほぼ 1px = 物理 1 pixel になった。
こんな方法でよい?
<style>
#div0 {
transform: scale(0.8); // 1.0 / 1.25
transform-origin: top left;
}
</style>
<div id="div0">
実際に表示したいタグ達
</div>
こんな方法でよい?
<style>
#div0 {
transform: scale(0.8); // 1.0 / 1.25
transform-origin: top left;
}
</style>
<div id="div0">
実際に表示したいタグ達
</div>
802デフォルトの名無しさん
2019/01/05(土) 01:10:26.21ID:A90WoquU それでいいけど
単純にwidthを表示の1.25倍にしたらどうなるのかな
単純にwidthを表示の1.25倍にしたらどうなるのかな
803デフォルトの名無しさん
2019/01/05(土) 08:40:55.94ID:7vIhmJH5 canvas の putImageData() で、引数が7つのタイプの場合の引数の意味が分からない。
context.putImageData(imgData,x,y,dirtyX,dirtyY,dirtyWidth,dirtyHeight);
http://www.webtech360.com/detail/html5-canvas-draw-pictures-and-manipulate-pixels-3555.html
↑の図で合ってる? 日本人の感覚だと、この図では、「dirtyAaaa」という言葉
と合ってるようには思えないんだけど。
context.putImageData(imgData,x,y,dirtyX,dirtyY,dirtyWidth,dirtyHeight);
http://www.webtech360.com/detail/html5-canvas-draw-pictures-and-manipulate-pixels-3555.html
↑の図で合ってる? 日本人の感覚だと、この図では、「dirtyAaaa」という言葉
と合ってるようには思えないんだけど。
804デフォルトの名無しさん
2019/01/05(土) 09:24:30.49ID:7vIhmJH5 >>802
実験してみると、
HTML tag の width と、css(style) の width の二種類の意味が違っていて、
<canvas width=aaa style="width:bbb;">
とした場合、
aaa = 論理的な横方向のドット数;
bbb = 物理的な横方向のドット数;
の意味になるらしく、canvas の色々な描画関数で渡す x 座標を log_x とすると、
原則的には、
phys_x = canvas_phys_left + (log_x / aaa * bbb);
のように座標変換された後に画面に表示されるらしい。
JavaScript だと、
canvas = (getElementById("ID名") などで DOM 要素を取得);
canvas.width = 論理的な横方向のドット数;
canvas.style.width = 物理的な横方向のドット数;
と書けるようだ。
ただし、>>801 のやり方だと、canvas の左上の座標が(0,0)で
ない場合にも、canvas の左上の位置を自動的に調整(縮尺)してくれるが、
今回のやり方だと、それは自分で調整しなくてはならない。
実験してみると、
HTML tag の width と、css(style) の width の二種類の意味が違っていて、
<canvas width=aaa style="width:bbb;">
とした場合、
aaa = 論理的な横方向のドット数;
bbb = 物理的な横方向のドット数;
の意味になるらしく、canvas の色々な描画関数で渡す x 座標を log_x とすると、
原則的には、
phys_x = canvas_phys_left + (log_x / aaa * bbb);
のように座標変換された後に画面に表示されるらしい。
JavaScript だと、
canvas = (getElementById("ID名") などで DOM 要素を取得);
canvas.width = 論理的な横方向のドット数;
canvas.style.width = 物理的な横方向のドット数;
と書けるようだ。
ただし、>>801 のやり方だと、canvas の左上の座標が(0,0)で
ない場合にも、canvas の左上の位置を自動的に調整(縮尺)してくれるが、
今回のやり方だと、それは自分で調整しなくてはならない。
805デフォルトの名無しさん
2019/01/05(土) 09:26:31.72ID:7vIhmJH5 >>804
あ、確か逆さまだったと思う。
だから、
誤: <canvas width=aaa style="width:bbb;">
正: <canvas width=bbb style="width:aaa;">
が確か正しい。
あ、確か逆さまだったと思う。
だから、
誤: <canvas width=aaa style="width:bbb;">
正: <canvas width=bbb style="width:aaa;">
が確か正しい。
806デフォルトの名無しさん
2019/01/05(土) 09:27:38.04ID:7vIhmJH5 >>805
だから、確か、
canvas.width = 物理的な横方向のドット数;
canvas.style.width = 論理的な横方向のドット数;
だったと思う。
だから、確か、
canvas.width = 物理的な横方向のドット数;
canvas.style.width = 論理的な横方向のドット数;
だったと思う。
807デフォルトの名無しさん
2019/01/06(日) 18:47:08.41ID:RK31I1jj つ チラ裏
808デフォルトの名無しさん
2019/01/06(日) 22:56:13.91ID:EEI9V+3n webページでフォーム入力した項目を確認のために埋め込まれたような形で一旦表示させたいんですけど、こういうのはJavaScriptで実装するんですかね?
どうググったら、ここら辺の情報取得できますかね?
自分、pythonしかできなくて、フロントエンド的なところは全然わからないです。。。
どうググったら、ここら辺の情報取得できますかね?
自分、pythonしかできなくて、フロントエンド的なところは全然わからないです。。。
809デフォルトの名無しさん
2019/01/06(日) 23:16:51.05ID:QwoLvlkS javascript使う
vue.jsとか使えば楽
vue.jsとか使えば楽
810デフォルトの名無しさん
2019/01/06(日) 23:31:44.52ID:pcr+etW3811デフォルトの名無しさん
2019/01/06(日) 23:38:17.77ID:TbUKTpaD812デフォルトの名無しさん
2019/01/06(日) 23:53:49.41ID:QwoLvlkS フロントでvaildateしてユーザーに伝えたいという意味と解釈したけど違った?
813デフォルトの名無しさん
2019/01/07(月) 00:28:47.48ID:nb8eFh2w814デフォルトの名無しさん
2019/01/07(月) 00:47:13.54ID:IMoYk5nw >>813
あるサイトと同様のものをJavaScriptで得たい場合、F12を押してコードを見るのが一番早い。
つっても2chなんてゴミなので、参考にするならもうちょっとましなサイトの方がいいが。
DBと照合したいのならサーバーサイドで、君の場合はPythonでやった方がいいと思うよ。
あるサイトと同様のものをJavaScriptで得たい場合、F12を押してコードを見るのが一番早い。
つっても2chなんてゴミなので、参考にするならもうちょっとましなサイトの方がいいが。
DBと照合したいのならサーバーサイドで、君の場合はPythonでやった方がいいと思うよ。
815デフォルトの名無しさん
2019/01/07(月) 00:51:51.70ID:nb8eFh2w816デフォルトの名無しさん
2019/01/07(月) 02:05:35.08ID:52D4hsE6 > あるサイトと同様のものをJavaScriptで得たい場合、F12を押してコードを見るのが一番早い。
そうとは限らない。今のJavaScriptは圧縮などかけられてるから
見た所で意味不明というものがたくさんある
そうとは限らない。今のJavaScriptは圧縮などかけられてるから
見た所で意味不明というものがたくさんある
817デフォルトの名無しさん
2019/01/07(月) 02:07:20.52ID:52D4hsE6818デフォルトの名無しさん
2019/01/07(月) 06:08:04.91ID:fwjV5x3t javascriptの出番なし
819デフォルトの名無しさん
2019/01/07(月) 11:09:06.87ID:pzLLoDSE jsいらんだろ
820デフォルトの名無しさん
2019/01/07(月) 12:01:38.74ID:52D4hsE6 >>819
それはある意味真実。HTMLとCSSだけで殆どのことができますっていうのが理想
それはある意味真実。HTMLとCSSだけで殆どのことができますっていうのが理想
821デフォルトの名無しさん
2019/01/07(月) 12:31:11.69ID:lmbNEshB >>803
dirty の意味は、汚染されている事。
つまり、Canvas のデータの事だろ
一度でも、Canvas に描いたものは汚染されるから、JavaScript のデータには戻せない。
ブラウザのセキュリティ機構をパスしていない
dirty の意味は、汚染されている事。
つまり、Canvas のデータの事だろ
一度でも、Canvas に描いたものは汚染されるから、JavaScript のデータには戻せない。
ブラウザのセキュリティ機構をパスしていない
822デフォルトの名無しさん
2019/01/07(月) 12:51:53.95ID:iRM6IrG4 ちょっとググった限りでは、refreshしないといけない部分だからdirty rectangleと言われるようになった感じ?
823デフォルトの名無しさん
2019/01/08(火) 01:00:58.27ID:o7vKw7lQ dirty bitとかのdirtyと同じ
ただ「描き込みがされる、変更がされる」という意味なだけ
ただ「描き込みがされる、変更がされる」という意味なだけ
824デフォルトの名無しさん
2019/01/08(火) 02:56:28.08ID:Wrr+1l7l 汚ねぇ花火だなのdirtyと一緒?
825デフォルトの名無しさん
2019/01/12(土) 07:29:22.71ID:7un73cLT どうやったら習得できるんでしょうか?
授業だけでは全然習得できませんでした
jQueryをコピペするだけしかできません
教科書書き写せって言われたのでしていますが
タイピング練習している気分で、1行1行
何かいてるか理解できていません
読めないから見るのも嫌になってます
初心者の時に何やってたか教えてください
授業だけでは全然習得できませんでした
jQueryをコピペするだけしかできません
教科書書き写せって言われたのでしていますが
タイピング練習している気分で、1行1行
何かいてるか理解できていません
読めないから見るのも嫌になってます
初心者の時に何やってたか教えてください
826デフォルトの名無しさん
2019/01/12(土) 09:25:53.56ID:Ybdj3XEu >>825
> 授業だけでは
> 教科書書き写せって言われたのでしていますが
どこでどういう風に習ったんだ?
JavaScriptは比較的簡単な言語ではあるが、
授業で習った程度で出来るようになると思っている時点で大間違いだぞ。
ズブの初心者が数時間で出来るようになるのなら、専門職として成立しないだろ。
> 授業だけでは
> 教科書書き写せって言われたのでしていますが
どこでどういう風に習ったんだ?
JavaScriptは比較的簡単な言語ではあるが、
授業で習った程度で出来るようになると思っている時点で大間違いだぞ。
ズブの初心者が数時間で出来るようになるのなら、専門職として成立しないだろ。
827デフォルトの名無しさん
2019/01/12(土) 09:56:20.35ID:Ybdj3XEu あと、どこを目指している?
Webデザイナになりたいのなら、そんなもんで構わないとも思うが。
Webデザイナになりたいのなら、そんなもんで構わないとも思うが。
828デフォルトの名無しさん
2019/01/12(土) 10:13:31.48ID:8njw2BgM コピペして必要になったら理解するための勉強すればいいんじゃね
それだと基礎ができてねえとか言われるしクソコードになるけど
基礎勉強していてもどうせクソコードと言われるんだしな
それだと基礎ができてねえとか言われるしクソコードになるけど
基礎勉強していてもどうせクソコードと言われるんだしな
829デフォルトの名無しさん
2019/01/12(土) 15:57:47.77ID:xa1AucJl 詐欺プログラミングスクールの何週間でプロに、とか3ヶ月でマスター全部ウソだから。
宗教ビジネスとかに近いやり口だよアレ。規制・逮捕・投獄すればいいのに。
宗教ビジネスとかに近いやり口だよアレ。規制・逮捕・投獄すればいいのに。
830デフォルトの名無しさん
2019/01/12(土) 16:28:36.05ID:gZqMJwxN >>825
読めないし意味がわからないのは当たり前だし
それをどうこうする方法もない
新しいことを学ぶというのは非常に困難なことだと理解しろ
数学や国語だって頭の柔らかい子供がきっちり何百年もかけて練られた
体系立てられた教育で10年以上もかけてやっと習得できるものなんだぞ
つまりざっと1000時間は必要ということだ
もちろん1000時間かけても分からない人も居る
でも自分の頭を信じて、わからないものが分かるようになれると信じて
いやいや苦しいながら1000時間頑張る以外無いんだよ
とりあえずチュートリアル的なサイトを最初はコピペから一通りやる
そのときにちょっと改変してみたりしてどう結果が変わるのかから
それがどういう意味をもつ行為だったのか、そこがどういう効果をもつ部分だったのかを理解していく
意味が分からないことが100出てきたら、ググり倒してなんとかそれを99にするよう必死に努力する
多少程度分かるようになってきたらもう一度MDNのような網羅的に載っているとこをみて自分が知らない知識を仕入れる
構文やAPIは別に暗記する必要はない こういうことに使えるものがあるということをできるだけ知っておく
その繰り返し つまり基礎と応用を行ったり来たりして
段階的にではなくまんべんなく少しずつ積み重ねていき、ある時からはその穴を埋めていく
基礎はだいたいわかったと思ったら、ググって他人の書いたコードを見る
そうすると自分の知らない書き方や機能が使われていて、しかも非常に読みにくい
でもそれに慣れていく
もう一度MDNを全部隅から隅まで必ず読む
JS再入門をやってみる それで中級者
各構文の詳細をきっきり理解し、スコープチェーンやプロトタイプチェーンといった概念を学び
今まで何となく書いてきたものの真意を理解する
構文やAPIを仕様書を直接見て理解できるようにする
基本的な仕様書を一通り必ず読む それで上級者
そっからは自分の好きなコミュニティに所属して深掘りする
読めないし意味がわからないのは当たり前だし
それをどうこうする方法もない
新しいことを学ぶというのは非常に困難なことだと理解しろ
数学や国語だって頭の柔らかい子供がきっちり何百年もかけて練られた
体系立てられた教育で10年以上もかけてやっと習得できるものなんだぞ
つまりざっと1000時間は必要ということだ
もちろん1000時間かけても分からない人も居る
でも自分の頭を信じて、わからないものが分かるようになれると信じて
いやいや苦しいながら1000時間頑張る以外無いんだよ
とりあえずチュートリアル的なサイトを最初はコピペから一通りやる
そのときにちょっと改変してみたりしてどう結果が変わるのかから
それがどういう意味をもつ行為だったのか、そこがどういう効果をもつ部分だったのかを理解していく
意味が分からないことが100出てきたら、ググり倒してなんとかそれを99にするよう必死に努力する
多少程度分かるようになってきたらもう一度MDNのような網羅的に載っているとこをみて自分が知らない知識を仕入れる
構文やAPIは別に暗記する必要はない こういうことに使えるものがあるということをできるだけ知っておく
その繰り返し つまり基礎と応用を行ったり来たりして
段階的にではなくまんべんなく少しずつ積み重ねていき、ある時からはその穴を埋めていく
基礎はだいたいわかったと思ったら、ググって他人の書いたコードを見る
そうすると自分の知らない書き方や機能が使われていて、しかも非常に読みにくい
でもそれに慣れていく
もう一度MDNを全部隅から隅まで必ず読む
JS再入門をやってみる それで中級者
各構文の詳細をきっきり理解し、スコープチェーンやプロトタイプチェーンといった概念を学び
今まで何となく書いてきたものの真意を理解する
構文やAPIを仕様書を直接見て理解できるようにする
基本的な仕様書を一通り必ず読む それで上級者
そっからは自分の好きなコミュニティに所属して深掘りする
831デフォルトの名無しさん
2019/01/12(土) 16:39:55.64ID:9/u5urH+ >>830
長い
長い
832デフォルトの名無しさん
2019/01/12(土) 17:08:51.58ID:XDHakXaX >>825
初心というか、新しいことを始めるときにはだいたいこんな感じ。
1) 適当に検索して必要な部品をコピペする
2) コピペ同士の整合性確保と自分の美意識に従って整形する
3) 時間が許す限り 2 を繰り返す
4) 試験する
整形するところで、たとえば未知の関数ならその役割や必要なパラメータを理解する必要があるし。
コピペを適当に順序を組み替えてみると予期しないエラーが生じることもあるから、その原因を調べることで理解が深まったりするし。
要は好奇心が自分を動かしてるんだろうな。そりゃ打ち込みだけなら眠くなるだけだわ。
初心というか、新しいことを始めるときにはだいたいこんな感じ。
1) 適当に検索して必要な部品をコピペする
2) コピペ同士の整合性確保と自分の美意識に従って整形する
3) 時間が許す限り 2 を繰り返す
4) 試験する
整形するところで、たとえば未知の関数ならその役割や必要なパラメータを理解する必要があるし。
コピペを適当に順序を組み替えてみると予期しないエラーが生じることもあるから、その原因を調べることで理解が深まったりするし。
要は好奇心が自分を動かしてるんだろうな。そりゃ打ち込みだけなら眠くなるだけだわ。
833デフォルトの名無しさん
2019/01/12(土) 19:02:39.47ID:7un73cLT たくさんのレスありがとうございました。
ちょっとやる気出てきました
が、道のりは険しそうですね
webの専門学校の授業でhtmlとcssを学び
ページは作れるようになったものの
javascriptはよくわからないまま授業が終わり
今はphpを覚えさせられてる段階です
3ヶ月ぐらいです
授業は教科書一冊を前から順番に終わらせた感じですが
先生はcssで出来るなら無理にjavascriptを使わなくて良いって言ってました
先生も他の言語が得意みたいで、あまりjavascriptは詳しそうな感じではなかったです
jQueryはどんなライブラリがあるのかを知り、
それを確実にコピペができることが大事って言われたのですが
コードが読めないjQueryをコピペするのはあまり面白くありませんでした
目指してるのはwebアプリとかゲームとか個人で作りたいです
javascript(Vue.js)とphp(laravel)を覚えてアプリを作ろうと考えています
将来グーグルアプリやアップルストアに置いたりしたいです
MDNは先生もおすすめしていますが
難しすぎるのと、同時に画面表示すると作業しにくいので本を書き写しています
まだ寝るまで時間あるので引き続き書き写ししようと思います
クラスで取り残されてて、あんまり質問できない空気なので
意見もらえて勉強になりました
ちょっとやる気出てきました
が、道のりは険しそうですね
webの専門学校の授業でhtmlとcssを学び
ページは作れるようになったものの
javascriptはよくわからないまま授業が終わり
今はphpを覚えさせられてる段階です
3ヶ月ぐらいです
授業は教科書一冊を前から順番に終わらせた感じですが
先生はcssで出来るなら無理にjavascriptを使わなくて良いって言ってました
先生も他の言語が得意みたいで、あまりjavascriptは詳しそうな感じではなかったです
jQueryはどんなライブラリがあるのかを知り、
それを確実にコピペができることが大事って言われたのですが
コードが読めないjQueryをコピペするのはあまり面白くありませんでした
目指してるのはwebアプリとかゲームとか個人で作りたいです
javascript(Vue.js)とphp(laravel)を覚えてアプリを作ろうと考えています
将来グーグルアプリやアップルストアに置いたりしたいです
MDNは先生もおすすめしていますが
難しすぎるのと、同時に画面表示すると作業しにくいので本を書き写しています
まだ寝るまで時間あるので引き続き書き写ししようと思います
クラスで取り残されてて、あんまり質問できない空気なので
意見もらえて勉強になりました
834デフォルトの名無しさん
2019/01/12(土) 19:42:31.64ID:Ybdj3XEu >>833
> 同時に画面表示すると作業しにくいので本を書き写しています
今すぐ2画面にして、片方でMDNを見ながらもう片方でコーディングする癖を付けろ。
今なら2万円くらいで出来るはず。
そして今すぐゲーム作成に着手しろ。(詳細後述)
> (略) 3ヶ月ぐらいです
ズブの素人からか?ならそんなもんだ。
君が特に頭が悪いって事ではない。
> コードが読めないjQueryをコピペするのはあまり面白くありませんでした
これはもうやらなくていい。時間の無駄だ。
> 目指してるのはwebアプリとかゲームとか個人で作りたいです
> javascript(Vue.js)とphp(laravel)を覚えてアプリを作ろうと考えています
Webで言う「アプリ」は「ドキュメント」と対比されるもので、
上記jQueryを使うのは主に「ドキュメント」であり、つまり君にはjQueryの知識は不要だ。
そして、「アプリ」と言われるのは実はHTML主体のアプリ(ECサイト/掲示板/社内クライアント(勤怠管理等))であって、
これら向けのフレームワークがvueであり、またサーバーサイドの知識も有った方がいいからPHPもありだが、
君の目標のcanvasアプリでは、はっきり言ってvueやPHPの知識はいらない。
君の専門学校は一般的なHTML/CSS/JavaScript/PHPの講習をしており、これ自体は悪くない。
しかし君にはjQueryもvueもPHPも必要なく、今現在のHTML/CSS/JavaScriptだけで出来る。
だから今すぐゲーム作りに着手しろ。最初は○×ゲームやオセロ等で構わない。
プログラミングなんて手段でしかないから、結局のところ、モチベーションが上がらないと上達もしない。
写経の際にいじくり倒して快感を得られるタイプなら写経も効果あるが、
君の場合はそうではないのだから、写経は時間の無駄だ。
一応の知識は揃っているはずだから、君は今すぐ君がやりたいこと、例えばゲームを試しに作ってみることだ。
そうすれば、今の自分に何が足りないか分かるだろうし、そこを先生に聞けばいいんだよ。
折角金払って専門学校に行っているのだから、先生をうまく活用した方がいい。
> 同時に画面表示すると作業しにくいので本を書き写しています
今すぐ2画面にして、片方でMDNを見ながらもう片方でコーディングする癖を付けろ。
今なら2万円くらいで出来るはず。
そして今すぐゲーム作成に着手しろ。(詳細後述)
> (略) 3ヶ月ぐらいです
ズブの素人からか?ならそんなもんだ。
君が特に頭が悪いって事ではない。
> コードが読めないjQueryをコピペするのはあまり面白くありませんでした
これはもうやらなくていい。時間の無駄だ。
> 目指してるのはwebアプリとかゲームとか個人で作りたいです
> javascript(Vue.js)とphp(laravel)を覚えてアプリを作ろうと考えています
Webで言う「アプリ」は「ドキュメント」と対比されるもので、
上記jQueryを使うのは主に「ドキュメント」であり、つまり君にはjQueryの知識は不要だ。
そして、「アプリ」と言われるのは実はHTML主体のアプリ(ECサイト/掲示板/社内クライアント(勤怠管理等))であって、
これら向けのフレームワークがvueであり、またサーバーサイドの知識も有った方がいいからPHPもありだが、
君の目標のcanvasアプリでは、はっきり言ってvueやPHPの知識はいらない。
君の専門学校は一般的なHTML/CSS/JavaScript/PHPの講習をしており、これ自体は悪くない。
しかし君にはjQueryもvueもPHPも必要なく、今現在のHTML/CSS/JavaScriptだけで出来る。
だから今すぐゲーム作りに着手しろ。最初は○×ゲームやオセロ等で構わない。
プログラミングなんて手段でしかないから、結局のところ、モチベーションが上がらないと上達もしない。
写経の際にいじくり倒して快感を得られるタイプなら写経も効果あるが、
君の場合はそうではないのだから、写経は時間の無駄だ。
一応の知識は揃っているはずだから、君は今すぐ君がやりたいこと、例えばゲームを試しに作ってみることだ。
そうすれば、今の自分に何が足りないか分かるだろうし、そこを先生に聞けばいいんだよ。
折角金払って専門学校に行っているのだから、先生をうまく活用した方がいい。
835デフォルトの名無しさん
2019/01/12(土) 20:05:20.01ID:Ybdj3XEu ちなみに、今時のPCで2画面出力出来ないのはほぼあり得ないし、
TVが有ればHDMI端子がないのもほぼあり得ない。
そして、線をつなげば割と自動認識していきなり2画面になるという安直さ。
まあ、TVが有ればやってみ。
TVが有ればHDMI端子がないのもほぼあり得ない。
そして、線をつなげば割と自動認識していきなり2画面になるという安直さ。
まあ、TVが有ればやってみ。
836デフォルトの名無しさん
2019/01/12(土) 20:59:34.69ID:7un73cLT 詳しくありがとうございます
クラスではipadを見ながらやってるって人がいて
うらやましいと思ってましたが、2画面って方法があるんですね
勉強のためにバイトやめてしまったので今お金がないです(T_T)
お金でき次第買います
今すぐ、ゲーム作りですか?
見た目を用意するのはhtmlで出来そうですが
参考書でも買わないと作れないですね
作りたいゲームはあると言えばあるので
明日本屋で見て、できそうならやってみます
クラスではipadを見ながらやってるって人がいて
うらやましいと思ってましたが、2画面って方法があるんですね
勉強のためにバイトやめてしまったので今お金がないです(T_T)
お金でき次第買います
今すぐ、ゲーム作りですか?
見た目を用意するのはhtmlで出来そうですが
参考書でも買わないと作れないですね
作りたいゲームはあると言えばあるので
明日本屋で見て、できそうならやってみます
837デフォルトの名無しさん
2019/01/12(土) 22:20:16.81ID:Ybdj3XEu >>836
> クラスではipadを見ながらやってるって人がいて
それと同等にはなる。
スマホだとさすがにきついと思うから、安物でいいからモニタを買った方がいい。
つか、専門学校なら最初から2画面にしとけよ、とは思うが。(君が悪いわけではないが)
> 見た目を用意するのはhtmlで出来そうですが
それでいい。
見た目だけ、例えばオセロならまず盤面をHTMLで用意するところから始める。
次に、クリックしたら石をおくようにする。つまりはクリックしたところにクラスを加えるだけだが。
そしたら、後は、「挟んだ石は自動的にひっくり返る」ようにすれば、手動での対戦は出来るようになる。
そして後はCPUで適切な手を考えられるようにすれば、CPUとの対戦が出来るようになる、というわけだ。
これ読んで大体「オセロなら出来そうだ」と思えるか?
なら、もう十分だから、アイデアもあるようだし、それに取りかかった方がいい。
やらないと上達しない。やる為には、自分がやりたいことをやるのが一番いい。
本を買う必要は無いとも思うが、まあ思うようにやればいい。
> クラスではipadを見ながらやってるって人がいて
それと同等にはなる。
スマホだとさすがにきついと思うから、安物でいいからモニタを買った方がいい。
つか、専門学校なら最初から2画面にしとけよ、とは思うが。(君が悪いわけではないが)
> 見た目を用意するのはhtmlで出来そうですが
それでいい。
見た目だけ、例えばオセロならまず盤面をHTMLで用意するところから始める。
次に、クリックしたら石をおくようにする。つまりはクリックしたところにクラスを加えるだけだが。
そしたら、後は、「挟んだ石は自動的にひっくり返る」ようにすれば、手動での対戦は出来るようになる。
そして後はCPUで適切な手を考えられるようにすれば、CPUとの対戦が出来るようになる、というわけだ。
これ読んで大体「オセロなら出来そうだ」と思えるか?
なら、もう十分だから、アイデアもあるようだし、それに取りかかった方がいい。
やらないと上達しない。やる為には、自分がやりたいことをやるのが一番いい。
本を買う必要は無いとも思うが、まあ思うようにやればいい。
838デフォルトの名無しさん
2019/01/13(日) 10:01:03.08ID:ZUrC3wug ただゲームを作りたいというだけなのに練習にしろ本番にしろ
HTML/CSS/JSのセットを学ぶ必要性はない
Google Blockyやプチコンのようなもので学んだほうが良い
HTML/CSS/JSのセットを学ぶ必要性はない
Google Blockyやプチコンのようなもので学んだほうが良い
839デフォルトの名無しさん
2019/01/13(日) 10:14:09.92ID:/M42Y9uV HTML/CSS/JSのセットを学ぶことは無駄にはならんよ。
今後のGUIの主流になりつつあるから。
ただ、ゲームを作りたいだけならオーバースペックだ、というだけで。
今後のGUIの主流になりつつあるから。
ただ、ゲームを作りたいだけならオーバースペックだ、というだけで。
840デフォルトの名無しさん
2019/01/13(日) 10:32:25.08ID:/M42Y9uV あとその手の「初心者でも子供でも簡単に出来る」って奴は大概すぐポシャるので俺は勧めないね。
scratchが一時期言われてたけど、今全く聞かないでしょ。
何故プロがそれらを使わないのかを理解出来ないうちは、所詮その程度って事だよ。
専門学校はプロ養成予備校みたいな位置づけだし、今ならHTML/CSS/JavaScriptで妥当だ。
当人は「学ばないと出来ない」という感覚なのか、出来ない理由を探しているから、
そうではなく、出来るところから始めろ、というだけ。
JavaScriptはコミュニティが腐っているが、言語としてはまあまあだよ。
そこで上達出来るかは本人次第だ。
とはいえ、初心者だと雑音を雑音と認識することも難しいから、難儀な話ではあるが。
scratchが一時期言われてたけど、今全く聞かないでしょ。
何故プロがそれらを使わないのかを理解出来ないうちは、所詮その程度って事だよ。
専門学校はプロ養成予備校みたいな位置づけだし、今ならHTML/CSS/JavaScriptで妥当だ。
当人は「学ばないと出来ない」という感覚なのか、出来ない理由を探しているから、
そうではなく、出来るところから始めろ、というだけ。
JavaScriptはコミュニティが腐っているが、言語としてはまあまあだよ。
そこで上達出来るかは本人次第だ。
とはいえ、初心者だと雑音を雑音と認識することも難しいから、難儀な話ではあるが。
841デフォルトの名無しさん
2019/01/14(月) 14:10:49.06ID:qAC/hIw5 このスレはじめてきたけど、上の方でjQueryをやたら推してる人って頭おかしいの?
842デフォルトの名無しさん
2019/01/14(月) 14:47:13.30ID:WA0+I2lc jQuery推しがおかしいかおかしくないかはどうでも良くて
それに論理的に反論できないならば、言ってることは正しいってことさ
それに論理的に反論できないならば、言ってることは正しいってことさ
843デフォルトの名無しさん
2019/01/14(月) 14:50:15.30ID:qAC/hIw5 えっ、jQueryおじさんが反論を理解できていないだけじゃないの?
844デフォルトの名無しさん
2019/01/14(月) 15:20:39.58ID:WA0+I2lc それは違うな。
845デフォルトの名無しさん
2019/01/14(月) 16:57:53.59ID:MmdBprG3 >>843
そうだよ
そうだよ
846デフォルトの名無しさん
2019/01/14(月) 17:36:34.87ID:WA0+I2lc jQueryのシェアがまた伸びてた。73.7%。5ヶ月連続で毎月0.1%増えてる。
0.1%増加なんて僅かだと思うかもしれないが、
Reactの現在のシェア(増加ではない)が0.2%、Vueが0.2%、Angularが0.4%
https://w3techs.com/technologies/history_overview/javascript_library/all
0.1%増加なんて僅かだと思うかもしれないが、
Reactの現在のシェア(増加ではない)が0.2%、Vueが0.2%、Angularが0.4%
https://w3techs.com/technologies/history_overview/javascript_library/all
847デフォルトの名無しさん
2019/01/14(月) 18:16:36.57ID:ft32dWPM848デフォルトの名無しさん
2019/01/14(月) 21:49:08.71ID:E+94DXGY shadow-root(attachShadow)って何ができるの?
ふつーに要素を作るんじゃなくて使うってことは何かできることがあると思って
ふつーに要素を作るんじゃなくて使うってことは何かできることがあると思って
849デフォルトの名無しさん
2019/01/15(火) 19:19:49.80ID:Mzm8zFRT jQuery使わない人の声だけがでかいのはわかる
javascriptフレームワークなんて誰も使ってない
javascriptフレームワークなんて誰も使ってない
850デフォルトの名無しさん
2019/01/15(火) 19:25:43.57ID:URfldHzA 声がでかいのはjQueryバカだが。
851デフォルトの名無しさん
2019/01/15(火) 20:18:42.32ID:XcHWZlYr jQuery厨は結局「jQueryは不滅です」と言い張るだけだから議論する意味はない。
実際はじきに結論がでるから待てばいい。
予想するなら、version3に上げている連中(6.4%)は今後とも使う気なのだと思う。
今だにversion1を使っている(=バージョンを上げてまで使う気はない)のが大半(85.7%)で、
つまり大半は様子見中で、だからこそこの話に食いつく奴が多い。
https://w3techs.com/technologies/details/js-jquery/all/all
このサイトのシェアはサイト数で算出しているから、
どうしてもvue等の「アプリ」用フレームワークは低く出る。
とはいえ、それを勘案しても実際に低いのも事実だが。
https://w3techs.com/technologies/topsite/javascript_library
実際はじきに結論がでるから待てばいい。
予想するなら、version3に上げている連中(6.4%)は今後とも使う気なのだと思う。
今だにversion1を使っている(=バージョンを上げてまで使う気はない)のが大半(85.7%)で、
つまり大半は様子見中で、だからこそこの話に食いつく奴が多い。
https://w3techs.com/technologies/details/js-jquery/all/all
このサイトのシェアはサイト数で算出しているから、
どうしてもvue等の「アプリ」用フレームワークは低く出る。
とはいえ、それを勘案しても実際に低いのも事実だが。
https://w3techs.com/technologies/topsite/javascript_library
852デフォルトの名無しさん
2019/01/15(火) 20:21:33.86ID:JZTSzU8d > 実際はじきに結論がでるから待てばいい。
いつでるんだよ・・・もう3年経ってるぞ
いつでるんだよ・・・もう3年経ってるぞ
853デフォルトの名無しさん
2019/01/15(火) 20:33:42.53ID:XcHWZlYr854デフォルトの名無しさん
2019/01/15(火) 20:40:39.71ID:JZTSzU8d シェアを気にしてるんじゃないんだよ。合理的な判断から。
ウェブの大半を占めるウェブサイトを作ってるのはウェブデザイナーが大半で
ウェブアプリを開発してるのはごく一部。そんなところにプログラミングが主である
React、Angular、Vueが普及するわけもなく、殆どは軽い使い方しかしてないんだから
jQueryで必要十分だってこと
シェアは単にそれを証明している指標に過ぎない
ウェブの大半を占めるウェブサイトを作ってるのはウェブデザイナーが大半で
ウェブアプリを開発してるのはごく一部。そんなところにプログラミングが主である
React、Angular、Vueが普及するわけもなく、殆どは軽い使い方しかしてないんだから
jQueryで必要十分だってこと
シェアは単にそれを証明している指標に過ぎない
855デフォルトの名無しさん
2019/01/15(火) 21:23:45.38ID:o/u10+7j これからはBackboneや!
これからはEmberや!
これからはKnockoutや!
これからはAngular1や!
フレームワーク使ってるほうが死亡してるんだけどな
これからはEmberや!
これからはKnockoutや!
これからはAngular1や!
フレームワーク使ってるほうが死亡してるんだけどな
856デフォルトの名無しさん
2019/01/15(火) 21:26:47.44ID:XcHWZlYr >>854
サイト数で言えば「ドキュメント」が多いだけで、
トラフィックの大半は「アプリ」ないしはニュースサイト等の「軽量アプリ+DB」だよ。
つかそれ前にも言ったけど、お前普段どんなサイトを見てるんだよまじで。
とりあえず単純に定義しておくと、以下な。
アプリ: ajaxやPOST使いまくり
軽量アプリ: POST機能はあるが主ではない
ドキュメント: ajaxやPOSTは全くない
サイト数で言えば「ドキュメント」が多いだけで、
トラフィックの大半は「アプリ」ないしはニュースサイト等の「軽量アプリ+DB」だよ。
つかそれ前にも言ったけど、お前普段どんなサイトを見てるんだよまじで。
とりあえず単純に定義しておくと、以下な。
アプリ: ajaxやPOST使いまくり
軽量アプリ: POST機能はあるが主ではない
ドキュメント: ajaxやPOSTは全くない
857デフォルトの名無しさん
2019/01/15(火) 21:31:34.93ID:+Q2URMA7 >>856
そんな定義初めて見たわ
そんな定義初めて見たわ
858デフォルトの名無しさん
2019/01/15(火) 21:31:43.02ID:o/u10+7j トラフィックの大半は映像、JavaScript関係ないがな
世界のインターネットトラフィックの過半数を「映像視聴」が占めている
https://gigazine.net/news/20181003-global-internet-downstream/
世界のインターネットトラフィックの過半数を「映像視聴」が占めている
https://gigazine.net/news/20181003-global-internet-downstream/
859デフォルトの名無しさん
2019/01/15(火) 21:41:47.16ID:XcHWZlYr >>858
ああ、まあそりゃそうだ。
ただ、その手のサイトは普通「アプリ」だと思うぞ。
が、まあ、それなら、ダウンストリームを除いて、アップトラフィック、で測るべきだな。
回線速度サイト等で言う、「上り回線」内のトラフィック数だ。
(映像視聴中もping的なアップトラフィックがあるのは知っているが、それらは除いて)
ああ、まあそりゃそうだ。
ただ、その手のサイトは普通「アプリ」だと思うぞ。
が、まあ、それなら、ダウンストリームを除いて、アップトラフィック、で測るべきだな。
回線速度サイト等で言う、「上り回線」内のトラフィック数だ。
(映像視聴中もping的なアップトラフィックがあるのは知っているが、それらは除いて)
860デフォルトの名無しさん
2019/01/15(火) 21:48:27.78ID:XcHWZlYr861デフォルトの名無しさん
2019/01/15(火) 21:49:57.09ID:o/u10+7j >>859
連想ゲームやってるんじゃねーんだ
トラフィックが多いのは映像
映像はアプリ
アプリはJavaScriptを使ってる
だからトラフィックが多いのはJavaScript
違うからな。
ゲームで考えてみろ。多いのはデータであって
プログラムじゃねぇ
連想ゲームやってるんじゃねーんだ
トラフィックが多いのは映像
映像はアプリ
アプリはJavaScriptを使ってる
だからトラフィックが多いのはJavaScript
違うからな。
ゲームで考えてみろ。多いのはデータであって
プログラムじゃねぇ
862デフォルトの名無しさん
2019/01/15(火) 21:56:31.56ID:XcHWZlYr■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【川崎・20歳女性死体遺棄】「あさひを返せ!」県警の説明に親族、友人ら90人が署に集まり猛抗議「嘘ばかり、謝れば済むことなのに」★10 [ぐれ★]
- 【芸能】不倫報道・永野芽郁、清純派とは真逆な地元での素顔… 幼なじみ「中学時代は1個上の先輩と付き合っていた」「体育祭の熱量が」 [冬月記者★]
- 小1女児の頭を木刀で…剣道教室の元指導員の男(53)書類送検 被害女児は脳神経の一部を損傷、後遺症に悩まされる [バイト歴50年★]
- ファミリーマート、海苔なしおむすび拡大「海苔を使用しない分コストを抑えられる」 [煮卵★]
- 【芸能】上沼恵美子 若い店員の接客態度にぼやき「無表情で言い過ぎる。あなたたち、ダメですよ」「昔はお愛想みたいなのがあった」 [jinjin★]
- 米政権、相互関税の撤廃拒否 交渉を上乗せ幅縮小に限定 [蚤の市★]
- 2月の人口動態、出生数6.6%減! 1月よりもさらに少子化進む… 岸田ァ、お前何してくれたんだよ… [452836546]
- ニコニコ動画が完全に終わってしまったのはなぜだろう……
- 「90年代までの日本人は皆が明るかった!」→これマジなの? [673214947]
- 言いたいことも言えないこんな世の中じゃ
- __Q、イスラエルの諜報活動だった… [827565401]
- 【GW暇な奴来い】安価で指定されたものを全力で探してうpするスレ