YuiFan 緊急避難用 掲示板 36683


無題

1:ano :

2024/05/06 (Mon) 20:48:00

>こちらが訪問する側だとカモにされているように感じますが

そもそも値段の表示がありません
客の身なりなどをみてお金を持ってそうだとか
アホそうだからとふっかけてくるかもしれません

>中国では露骨な対応をされることは無さそうだったんですけどね。

留学経験のあるジュジュさんのお兄さんいわく、
中国のほうがヤバいらしい
彼は染まることなく受け流していたそうです
どこの地域に留学したのかは知らないけど
北京の人は特に愛国心が強いと云われています

>たしかに(ホルホルw)

日本に住んでいて日常だからなんとも思わないのです

>貧乏になったしね

円安だし余計に行かなくてもいいやと思うでしょうが
そもそもパスポートすら取得しない、ということは
さらさら行く気がない、ということだよね
いつかは行ってみたいなあ、とも思わないってこと

>コーヒーブレイクなら作っても大丈夫なんですね。

幕間だからね
『パックマン』のようなキャラクターものだと
何もしてないのに勝手に動き回るのは
ブラウザ上だとなんか気持ち悪いんだよね

タイトル画面がデモ画面をかねている
ポンとかTenis for Twoとか原始的なゲームは
ひとつの球が飛び交うだけで
あまりウザいとは感じないので実装しました

>球に近くないとスマッシュが打てない、と言いたかったのです。

それだと力加減ができなので、やはり困ります

現状、力加減があまり必要ないので
COMに足の速さの概念をつけたいとは思います
コートの下にゲージをつけて、敵が奥にいるときに
ネット際にドロップすると間に合わなくしたり
手前にいるときに奥へ打ち込むとか戦略性を高めたい

足が速いけどパワーがない
パワーがあるけど足が遅い
ラスボスは足が速くてパワーもある
といったバランス調整はよくあります

でも、原作は対戦専用で得点すらありませんから
できるだけシンプルにしたいんですよね
難易度選択とかステージ制とか、そこまでやりたくない

>瞬発力があるのが 不公平 ですね。

足の速さを実装するのが面倒くさいので
各種の頻度を調整したり、ワンバンを拾うタイミングを遅らして
プレイヤーが勝てるようになっているはずです

弱すぎても面白くないし、バランス調整がむつかしい
隙がない超反応でまったく勝てないようにするのは簡単です

>いまいちスマッシュの打ち方がわかりません

ノーバンでもワンバンでも、ネットより高い打点から
斜め下へ打ち込めばスマッシュになります
ボレーはノーバンでするどく打ち返すことです

>1が0 で 2が1 は分かりにくいって言ったりして。

^(ビットXOR演算子)で0と1を反転しやすいのと
配列の添え字は一般に 0 から始まるので都合がよいのです
Lua とか1から始まる言語もありますが主流ではありません

XOR演算は片方が1のときだけ1になる計算です
0^0 や 1^1 は 0 であり、1^0 や 0^1 は 1 になります
だから (0か1の値)^1 とすると左辺の値と反対になるわけ

また0は、偽として評価され、1は真として評価されます
これはC言語でも同様ですが、そうではない言語もあります
たとえばRubyは nill と false だけが偽として評価され、
それ以外はすべて真として評価される仕様になっています

0.5秒(30フレーム)間隔で0と1を交互にするJSの手法:

let index = 0;
let frameCnt = 0;
function update() {
 index ^= frameCnt++ % 30 == 0;
 requestAnimationFrame(update);
}
requestAnimationFrame(update);

requestAnimationFrameの呼び出しが60fpsと仮定すれば
上記のupdate関数によって0.5秒(30フレーム)間隔で
indexの値は0と1が交互に反転することになります
この手法はゴーストの絵を切り替えるのに活用しています

上記の条件式はtrueまたはfalseを返しますが、
ビット演算すると1あるいは0に暗黙的に型が変換されます
明示的に Number(frameCnt++ % 30 == 0) としてもいい

29フレーム目まで偽なので 0^0 でindexには0が代入されます
30フレーム目で真となり 0^1 でindexに1が代入されます
次のフレームからは 1^0 なので、次の30フレームまで1のままです
次の30フレーム目で 1^1 になるのでindexは 0 に戻ります

ややこしやー ややこしやー by 野村萬斎さん

ちなみに = で単純に代入してしまうと、
29フレーム目まで偽で、30フレーム目だけ真になります

>1回以上なら、壁にぶつかる前に自分の得点になるんじゃないんですか?

1回以上ではなくて、ワンバンしたのち
敵が返せず壁にぶつかったら自分の得点になりますね

>てか、CPUの攻撃がまた少し変わっていますよね?

ネット際で打ち落とす処理が実行されていませんでした

スマッシュのタイミングをタイマーだけですると
跳ね返り速度が速いと打点が高くなりすぎてしまうので
ボールがネットより高くなったらブチこむようにしました
2:ken4 :

2024/05/07 (Tue) 20:55:29

>客の身なりなどをみてお金を持ってそうだとか
>アホそうだからとふっかけてくるかもしれません

そういう目にあった際に、どちらの理由でカモられたのか気になりますね。 (^口^*;)

>留学経験のあるジュジュさんのお兄さんいわく、
>中国のほうがヤバいらしい

たしかに、あの中国在住のイケメンさんも地方によって態度が違うと言っていました。
それと、この10年ぐらいで日本人に対する感情が変わってきているようです。
https://www.youtube.com/watch?v=FFgkvTSTU1c
やっぱり嫌われている相手には関わらないほうがいいみたいですね。 (´∀`*;)

>そもそもパスポートすら取得しない、ということは
>さらさら行く気がない、ということだよね
>いつかは行ってみたいなあ、とも思わないってこと

実は私もそのうちの一人です。 (^u^*;)
どこでもドアで簡単に行き来できるのであればいいけど、言葉や飲食の問題を乗り越えてまで行きたいとは思いません;

>『パックマン』のようなキャラクターものだと
>何もしてないのに勝手に動き回るのは
>ブラウザ上だとなんか気持ち悪いんだよね

昔の 勝手に動くホームページ の悪いイメージが残っているからかな(笑)
こういうやつとか。
https://media.tree-web.net/js/demo/jQuery_snowfall_custom_sample/

>ポンとかTenis for Twoとか原始的なゲームは
>ひとつの球が飛び交うだけで
>あまりウザいとは感じないので実装しました

スクリーンセーバーのような効果もありますね。 (´▽`*)

>>球に近くないとスマッシュが打てない、と言いたかったのです。
>それだと力加減ができなので、やはり困ります

力加減はボールとの距離で変わりますよね。

>現状、力加減があまり必要ないので
>COMに足の速さの概念をつけたいとは思います

それはぜひ実装して欲しいのですが、
実はプレーヤー(人間)も前後の足の速さ(マウス移動の速さ)は必要無かったりするんですよね。
マウスポインタはコートの後方にあっても、ネット際でスマッシュすることができます。 (^u^*)

>原作は対戦専用で得点すらありませんから
>できるだけシンプルにしたいんですよね

そこから更に機能を追加していくと別のテニスゲームになりますしね。
それはまた次に作る "Tennis for Family"(ファミリーアノテニス) で実現してください。 (*´艸`)

>>瞬発力があるのが 不公平 ですね。
>
>各種の頻度を調整したり、ワンバンを拾うタイミングを遅らして
>プレイヤーが勝てるようになっているはずです

すいません、先程も言いましたが、
冷静に考えるとプレーヤー(人間)も瞬発力がありました(*笑*)

>弱すぎても面白くないし、バランス調整がむつかしい

現在のCOMも最初は強く感じましたが、クセが分かると勝てるようになりました。
クセを見抜くのが難しくなったら(もしくはクセが無い、変化したら)簡単には勝てなくなりそうです。

>ノーバンでもワンバンでも、ネットより高い打点から
>斜め下へ打ち込めばスマッシュになります

条件はそれだけなんですね。
COMのように鋭くスマッシュできていない気がしてたんだけど気のせいか。 (^u^*;)

>Lua とか1から始まる言語もありますが主流ではありません

1から 始まるのは分かりやすいですが、
0から に慣れてしまった後だと気持ちが悪いですね(笑)

>XOR演算は片方が1のときだけ1になる計算です
>0^0 や 1^1 は 0 であり、1^0 や 0^1 は 1 になります

これってシンプルですが、うまく活用すればソースが短く綺麗にまとまりますよね。
うまく使いこなせるようになりたい。 (^u^*;)

>たとえばRubyは nill と false だけが偽として評価され、
>それ以外はすべて真として評価される仕様になっています

えっ? RubyにはXORが無いんですか?
https://qiita.com/scivola/items/308f9cbf0412bc20650b

>0.5秒(30フレーム)間隔で0と1を交互にするJSの手法:

これこれ、
こういうテクニックを身に着けたらいろんな場面で活用できますね。 (n_n*)

>ややこしやー ややこしやー by 野村萬斎さん

それは知らないんですけど、
萬斎さんが『アンチヒーロー』で クセのある検事正役 を演じておられるのは知っています(笑)
アノが書いてくれたサンプルソースについては、正直なところ、仕事終わりで頭が働かないので、なんとなくのイメージだけで理解できたつもりになっております。
ややこしやー ややこしやー (^口^*;)

>ネット際で打ち落とす処理が実行されていませんでした

バグではないけど、そういう 計画外のミス も知らないところで実装されていたりするのですね(笑)

>ボールがネットより高くなったら ブチこむ ようにしました

アノらしくない お上品ではないお言葉 ですね。 (*´艸`)
3:ano :

2024/05/08 (Wed) 00:34:08

>こういうやつとか。

まあ、近頃のPCでは
これくらい大した負荷ではないでしょうけど…
文章を読むのに気が散るので
テキストとは重ならないほうがいいね

>前後の足の速さは必要無かったりするんですよね。
>マウスポインタはコートの後方にあっても

ネット際で急角度で落としたいとき、
球に近づいたほうが遣りやすいと思いますが
軽く打って落とす、という戦略もあります

>COMのように鋭くスマッシュできていない

COMのほうが鋭くしてます
横方向のベクトルが強いと直線的に飛ぶので
ネットに当たらずに相手側に落ちやすくなるし
鋭いほうが瞬発力が試されて面白いでしょう

>えっ? RubyにはXORが無いんですか?

ビット演算のXORはありますよ
ようわからんけど、eq1とeq2という何らかの式で
XORした結果を真偽値で欲しいって話ぢゃない?

>クセのある検事正役 を演じておられるのは知っています

というか、これまでクセのある役柄のイメージしかありません

>それはぜひ実装して欲しいのですが

つくるつもりがなかったのに、
無性につくりたくなって、実装しちまいましたぜ

地面の下にCOMの現在位置を示しています
左サイド(デモ用)はグリーン、右サイドはピンクです
球より少し遅めの速さでボールに追従しようとして
追いつくことが出来ると打ち返します
打ったあと相手が打ち返すまで、その場で留まります

奥にいるとき、手前に落とすと間に合わないことがあります
また、高さ制限もつけたのでネット際で急落下して
頭上まで瞬間的に跳ね上がると打ち返せなくなります
しかし、角度が鋭角すぎてアウトにならず
天井にぶつかって落下すれば打てるようになります

難易度はともかく、COM同士の対決を観るのが面白い
単純なアルゴリズム、そしてただの四角い表示ですけど
本物のテニスのように駆け引きしているようにみえます

=-=-=-=-=-=-=-=-=-=-=-=-=●

実のところパドルゲームのポンよりずっと面白い
横からみたテニスには奥行きがなく、
打ち返すのが簡単だから神経をすり減らすことがない

ポンを作ってみたはありがちですが
Tennis for twoを作ってみたは殆どありません
それほど難しくないのに何故でしょうか?
地味でゲームにならなそうに見えるからですかね
ググったらBASICで作った方いらっしゃった

~プチコン自作プログラム~プチコンとかの個人サイト~
http://damedamepg3q.web.fc2.com/pettitcom_4.html

テニスというより卓球ですね
ボタンの上下で角度を調整し、横ボタンで打つのは
操作性が良くなさそうな気がします

サーブがちゃんと落下した球を打つようになっています
こうしたほうがリアルですけど、
タイミングが難しそうなので固定でいいかなあ?
4:ano :

2024/05/08 (Wed) 19:46:18

https://bbs5.fc2.com//bbs/img/_892000/891947/full/891947_1715166283.png 右下に音声コントロールをつけました
今回のボタンはすべてキャンバス内に描いています
スライダーを実装するのは面倒くさいので、
音量調整は - と + のボタンによっておこないます

ボタンで10段階連打すると面倒なので、
ひとつ飛ばしの5段階にしています
スピーカー上でホイール回転でも同様です

フォーカスが当たるのでキーでの操作も可能です
<canvas> ~ </canvas> のなかにボタンを入れておくと
表示はされないけどフォーカスは当たるので
イベントの駆動によってキャンバスを描きかえています

Canvas APIにはウィジェットの機能がないので
ボタンのUIを再構築するのはかなり面倒くさいのですが
オブジェクト指向でいくつでも置けるようにしました
5:ken4 :

2024/05/09 (Thu) 21:33:28

>これくらい大した負荷ではないでしょうけど…
>文章を読むのに気が散るので

画像が切り替わるタイプの 広告 も気が散りますよね;
しかも、もう買った後だというのにしつこくタイヤの広告が出て来たり。 (;^_^A
文章をじっくり読みたいサイトでは動きものは禁物ですね。

>ネット際で急角度で落としたいとき、
>球に近づいたほうが遣りやすいと思いますが
>軽く打って落とす、という戦略もあります

結局どちらもCOMに返されてしまうので;
しかもそれがスマッシュだと、球の早さにマウスが対応できません;;

>COMのほうが鋭くしてます

不公平ですね(笑)

>ビット演算のXORはありますよ

さすがにそれは無いと困るか(*笑*)

>というか、これまでクセのある役柄のイメージしかありません

というか、歌舞伎役者でクセのない人は見たことがないですね
と思ったら、この人は狂言師か。

>つくるつもりがなかったのに、
>無性につくりたくなって、実装しちまいましたぜ

COMに足の速さの概念をつけたいって言ってたから、もうすでに着手(もしくは構想)してるんだろうなと思っていました(笑)

>球より少し遅めの速さでボールに追従しようとして
>追いつくことが出来ると打ち返します

なんでこちらが打つと必ず球の位置まで前進して、
そこで打ち返すのかと思いきや、
後ろに下がって打ち返すのかと不思議に思っていたのですが、
そういう作りになっているのですね。 (´∀`*)
でも、”球より少し遅めの速さでボールに追従”してるのだとすると、後ろに下がるときに球に追いつかないような気がするんだけど?

>奥にいるとき、手前に落とすと間に合わないことがあります
>また、高さ制限もつけたのでネット際で急落下して
>頭上まで瞬間的に跳ね上がると打ち返せなくなります

そんな高度なショット、私にも打てますかねぇ。 (´▽`*;)

>難易度はともかく、COM同士の対決を観るのが面白い

COM同士なら難易度とか気にせずに強くしまくっても構いません(笑)
でも、足の速さは見えるようになったけど、ラケットの位置が見えないので、球の早さと角度は予測できないのですね。
そもそもCOMにはラケットの位置というものが無いのか。

=-=-=-=-=-=-=-=-=-=-=-=-=●  >゜)

>実のところパドルゲームのポンよりずっと面白い

実のところポンよりもTennis for twoばかり遊んでいます(笑)
てか、いつの間にか アノポン のアドレスが死んでますね。

>横からみたテニスには奥行きがなく、
>打ち返すのが簡単だから神経をすり減らすことがない

でも、アノカノイドもそうだけど、
パドルを球の位置に合わせるのが難しいので、タイミングを合わせるだけのTennis for twoよりも何倍も神経をすり減らします;

>Tennis for twoを作ってみたは殆どありません
>それほど難しくないのに何故でしょうか?

ポンのほうがメジャーだからでしょうね。 (^u^*)
はじめて遊んだテレビゲームがポンという人も多いでしょう。

>ググったらBASICで作った方いらっしゃった

タイトル画面はいかにもBASICって感じだけど、ゲーム画面は予想以上にスムーズでした。
ボールの跳ね方は楽しいけど、コートがやや狭く感じるし、もう少し調整が必要な気がしますね。
アノテニスの一番好きなところは ネットインを実装したこと ですね。
あれがあるおかげで、ショットミスをしてイライラする機会が減っていると思います。 (´∀`*)

>サーブがちゃんと落下した球を打つようになっています

たしかにテニスっぽいけど、実装しても楽しさは変わらず、その緊張感が増すだけだから要らないかな(*笑*)
あと、これを見ていて思ったのですが、本物のテニスっぽくするなら (後ろと上の)壁 も取り除かないといけませんね。 (^u^*)

>右下に音声コントロールをつけました

それも欲しいと思っていました。
毎回テレビのボリュームを下げていました。 (^口^*;)
とてもありがたいのですが、
[-] [+] を押した回数 と ボリュームの ))) の数が合ってないような。
私の環境だけかな;

  • 名前: E-mail(省略可):
  • 画像:

Copyright © 1999- FC2, inc All Rights Reserved.