- 1. [Javascript]inputのチェックボックスでチェックを一つしかつけさせない
- 2. JSで十字キーと他のキーを同時押しさせたい
- 3. TypeScriptを学んだ(2) ~モジュール編~
- 4. 【JavaScript】現在時刻をリアルタイムで表示し続ける方法
- 5. TypeScriptを学んだ(1) ~型、クラス編~
- 6. JavaScript (ES6) 基礎編 繰り返し処理とは?
- 7. 【初心者でもわかる】hover時のCSSをhtmlのタグに直接書く方法
- 8. 【メモ】JavaScriptのreplaceメソッドと正規表現について
- 9. [サクラエディタ][マクロ][js]プログラム対象行数取得マクロ
- 10. ジョーカーゲーム作成
- 11. 爆音と共振でワイングラスを割るサイトを作りました
- 12. ytdl-coreとyt-searchを使って検索できるDiscord音楽ボットを作る
- 13. 【GAS】lengthの意外?な使い方【JS】
- 14. 物理エンジンで複数の物体を自由落下させて、衝突時に音を鳴らすようにしてみた
- 15. WiiリモコンをGamepadにして、HTML5で使う
- 16. (小ネタ)TypeScriptで型定義ファイルが無いモジュールの読み込み方法
- 17. npmに自作モジュールを公開する方法
- 18. cannon.jsの衝突イベントのはまりどころメモ
- 19. NimのコードをNode.js用のJavaScriptコードにトランスコンパイルする
- 20. JavaScriptで、ライブラリとかの変数の型や詳細情報がわからないときの調べかたメモ
[Javascript]inputのチェックボックスでチェックを一つしかつけさせない
HTMLのinputで指定できるチェックボックス(checkbox)。
一つしか選択させたくない場合はまあラジオボタンにしておけという話かもしれないが、どうしてもチェックボックスでやりたい場合の方法をJQuery&JS両方で紹介。
“`oncheck.js
//Jqueryの場合
$(“.inputClass”).on(“click”, function(){
$(‘.inputClass’).prop(‘checked’, false);
$(this).prop(‘checked’, true);
});//JSの場合
const inputClass = document.getElementsByClassName(“inputclass”);
for(let i=0;i
JSで十字キーと他のキーを同時押しさせたい
# はじめに
Webゲームを作っている時に、十字キーを二つ以上押しながら他のキーを押すと一部効かなかったので調べてみました。
# 調べ方
ただ単純に十字キーをいずれか二つ押しながら他のキーをポチポチする。
# 結果
以下が結果です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234613/777ca2df-8a18-d240-e141-fee599ee5e70.png)
これより、5つのパターンに分けられます。– どの時でも押せる
– C,D,F,H,J,L,O,P,W
– 「上」が含まれていると効かない
– E,I,Q,T,Y
– 「下」が含まれていると効かない
– A,B,G,S
– 「左」が含まれていると効かない
– M,N,V,X,Z
– 「右」が含まれていると効かない
– K,R,Uなので、十字キーを押しながら押せるキーは限られてしまいます。
これには何か規則性があるのではないかと思い、適当にキーの色を分けてみました。
![
TypeScriptを学んだ(2) ~モジュール編~
前編は、[TypeScriptを学んだ(1) ~型、クラス編~](https://qiita.com/kudojp/items/e89a42821f599fe8cf8e)
## 内部モジュール
コードを部品化してわかりやすく整理したりだとか、変数名とかクラス名の衝突を避けたりするために使用する。
“`tsx
module UserModule { // モジュール定義
export var name = “John”; // モジュールの外部からアクセスするにはexportを使う
export module AddressModule {
export var zip = “111-111”;
}
}// dotアクセス
console.log(UserModule.AddressModule.zip);// もしくはimportを使い、、
import addr = UserModule.AddressModule
console.log(addr.zip);“`
また、複数のファイルに別れ
【JavaScript】現在時刻をリアルタイムで表示し続ける方法
#プログラミング勉強日記
2021年1月9日
以前、[こちらの記事](https://qiita.com/mzmz__02/items/e316d3962e7d3ecfebf8)でJavaScriptでの日付と時刻を取得する方法をまとめた。今回は、現在時刻をリアルタイムで表示し続ける方法を紹介する。#方法
1. 現在時刻を格納するDateオブジェクトを作成する
2. 作成したDateオブジェクトから時間・分数・秒数を取り出す
3. 時計として表示する文字列を作成する
4. 文字列を時間に書きかえる
5. 1秒ごとに特定の処理を実行する##1. 現在時刻を格納するDateオブジェクトを作成する方法
以下のように`new Date()`で現在の日付・時刻する。“`js
var nowDate = new Date();
console.log(nowDate);
“`“`:コンソール結果
Sun Sep 27 2020 09:22:20 GMT+0900 (日本標準時)
“`##2. 作成したDateオブジェクトから時間・分数・秒数を取り出す方法
“`j
TypeScriptを学んだ(1) ~型、クラス編~
## TypeScriptで用意されている型
– number
– string
– boolean
– any“`ts
var i: number;
var i: number = 10;
var i = 10 // 暗黙の型推論var x; // any型になる
var nums: number[]; // number型の値の配列
“`– 列挙型
“`ts
enum Signal {
Red, // 0
Blue = 3,
Yellow, // 4
}Signal.Blue // 3
Signal[‘Blue’] // 3
Signal[3] // ‘Blue’// なお、複数の同名の列挙型を宣言した場合にはそれらがマージされる。
// ただし、最初のメンバを省略できるのはどちらかだけである。
“`## 関数
“`ts
function add(a: number, b?: number): number { // bはオプション
if (b){
return a + b;
JavaScript (ES6) 基礎編 繰り返し処理とは?
こちらではJavaScript学習の備忘録となります。
プログラミング初心者や他の言語にも興味、関心をお持ちの方の参考になれば幸いです。
* * *
###繰り返し処理とは?
よくある例だと『1から100までの数字を出力する』
場合などに用いる**繰り返し処理**のことです。
繰り返し処理を行うには「**While文**」と「**for文**」がある。■**While文**
while文は下記のように、「条件式がtrueの間、{ }内の処理を繰り返す」ことができます。 {}の後にセミコロンは不要です。
“`javascript:script.js
while (条件式) {
処理
}
“`
上記『1から100まで数字を出力する』例で、while文を用いると下記のようになる。
まず条件式の判定が行われ、trueの時のみ{}の中の処理が1度実行される。
その後、再び条件式がtrueかどうかチェックされ、trueであれば処理が実行される。
条件式がfalseになるまで繰り返し処理が続く。“`javascript:script.js
let number = 1;
【初心者でもわかる】hover時のCSSをhtmlのタグに直接書く方法
# どうも7noteです。hover時にだけCSSを当てる方法。
CSSは.cssファイルに書くか、`
`の中に書くのが一般的ですが、HTMLのタグの中に書くことも可能です。
“`index.html
てすとてすと“`
しかし、この方法には欠点があり:hoverなどの疑似セレクタがついた時のCSSを指定することができません。
(※ほかにも管理がしにくいなどの欠点もあります。)ですが、onMouseOutとonMouseOverの属性を使うことで:hoverと同じようにCSSを反映することができます!
## hover時のCSSをhtmlのタグに直接書く方法
“`index.html
【メモ】JavaScriptのreplaceメソッドと正規表現について
忘れてしまいそうなので、メモっときます。
##replaceメソッドの使い方
`replace(‘検索文字’,’置換した後の文字’)`という感じ。そして、`$1`とか`$2`とかは、検索文字の`()`の中身のこと。
“`
var str = ‘今日は2019年6月16日、明日は2019年6月17日です。’;
var result1 = str.replace( /(\d+)年(\d+)月(\d+)日/g , “$1/$2/$3” );// 結果
今日は2019/6/16、明日は2019/6/17です。
“`みたいな感じになる。
##正規表現
今回謎だったのが、下記の正規表現。
“`
replace(/[\||](.+?)《(.+?)》/g, ‘$1‘)
“`
無知すぎて、この程度もわかりませんでした・・・でも今らなわかる!!!
・`/パターン/フラグ`という正規表現の記述方法。
・`[\||]` は`|`か`|`に一致するものという意味。
・`\(バックスラッシュ)`はエスケープするためのもの。
・`[[サクラエディタ][マクロ][js]プログラム対象行数取得マクロ
#早速ですが
VB.NET開発で、コーディング行数をコメントに記述する必要があり、毎回行数を数えるのが面倒のため、容易に取得できるマクロを作成##ざっくりな手順
①VisualStudioからプログラムをコピー
②サクラエディタに貼り付け
③マクロ実行“`javascript:PGLineCnt.js
/*
* タイトル:プログラム対象行数取得マクロ(サクラエディタマクロ用)
* 説明 :プログラムのコメント行、空白行を除き、
* プログラム対象行数をクリップボードにコピーする。
* 作成者 :●●●●
* 設定手順:①[メニュー]-[設定]-[共通設定]から[マクロ]タブを選択
* ②空き番号行を選択、名前に任意の名前を入力し、Fileに当マクロを選択後、
* 設定ボタンを押下
* ③[キー割当]タブを選択
* ④種別のリストから[外部マクロ]を選択、機能欄から②で登録したマクロを選択し、
* 任意のキーを割付ジョーカーゲーム作成
定義
・ジョーカーを引いたら負け
・ランダム関数でカードを出力
・ユーザー1と2が交互にトランプを引いていく
・3枚まではジョーカーが出ない
・出たカードを真ん中に縦で並べていく
・リセットボタンも作成使うものは連想配列(オブジェクト)、dom
補足
今回はあまりリッチなものにしない
順番に押せばゲームが出来る
ランダン関数で同じ番号が出たら関数内で再度引き直す
どっちがカードを出したかわかるようにして別途で順番を表記しない
カードをひっくり返した毎にそのカードの数字を配列に追加して、その配列と照らし合わせて重複を確認
重複したら自動的に引き直す“`html
jokergame 爆音と共振でワイングラスを割るサイトを作りました
## [これ](https://hakai.yasaidev.work/)は何?
音でグラスを壊したいという破壊衝動に駆られたため,Vue.jsの勉強も兼ねて初めて作ったサイト[「爆音グラス破壊」](https://hakai.yasaidev.work/)です.
グラスを弾いた音から固有周波数を分析し,その周波数のサイン波を再生してグラスを激しく共振させ破壊します.
爆音でワイングラスを破壊できるサイトを作りました()
スマホの音でもそこそこ震えます.
爆音をお持ちの方はワイングラス破壊してみてくださいhttps://t.co/75E7k85l8i pic.twitter.com/JQLAFQUnHv— 電気野菜 (@YasaiDev) ytdl-coreとyt-searchを使って検索できるDiscord音楽ボットを作る
#はじめに
Node.jsとytdl-coreを使ってDiscordの音楽ボットを探してみると,リンクをもとに流してるのが多いです。↓こんな感じ
“`js:main.js
const discord = require(‘discord.js’)
const client = new discord.client()
const ytdl = require(‘ytdl-core’)
client.on(‘message’,async message =>{if(message.content.startsWith(“!yt”)&&message.content.match(“https://”)){
// メッセージから動画URLだけを取り出す
var url = message.content.split
// まず動画が見つからなければ処理を止める
if (!ytdl.validateURL(url)) return message.channel.send(‘動画が存在しません。URLをお確かめください。\n’)
// コマン【GAS】lengthの意外?な使い方【JS】
“`javascript
let arr = [1, 2, 3, 4, 5];
console.log(arr.length); //5
“`
配列の要素数を知りたい時に使う「length」。ちょいちょい使うので単純にそういうもんだとばかり思っていたら、それだけじゃなかった。意外ではなく常識なのかもだけど、lengthプロパティが上書きできると知って驚き!こういう時、ちゃんと書籍とかで勉強しといた方が良いんだろうなって思う^^;
例えば、要素数5の配列のlengthを、あとから2にすると・・・。
“`javascript
let arr = [1, 2, 3, 4, 5];
console.log(arr.length); //5arr.length = 2;
console.log(arr.length); //2
console.log(arr); //[ 1, 2 ]
console.log(arr[3]); //undefined
“`
`arr[2]`以降は消滅!要素数2の配列になってしまった。`arr.length=2`を物理エンジンで複数の物体を自由落下させて、衝突時に音を鳴らすようにしてみた
# できたもの
グラフは、衝突した物体のペアの番号をプロットしたものです。(0番は地面)
See the Pen
drop cubes by using cannon.js aWiiリモコンをGamepadにして、HTML5で使う
以前の投稿で、Wiiの操作をブラウザから取得しました。
* [WiiリモコンをNode.jsから操ってみよう](https://qiita.com/poruruba/items/4f0d916703061e6205e8)
* [WiiリモコンとヌンチャクとバランスボードをMQTTするぞ(1/2)](https://qiita.com/poruruba/items/0bc3ebd90f221c293d7f)Wiiとブラウザの間をUbuntuが仲介し、ブラウザとUbuntuはMQTTを使っていました。
今回は、WindowsからみてBLE接続のM5StickCをGamepadとして見えるようにします。こうすることで、HTML5 Gamepad APIとしてWiiを使えるようになります。ブラウザ → HTML5 Gamepad API → Gamepad(ESP32) → Ubuntu → Wiiリモコン
繰り返しになりますが、HTML5 Gamepad APIとGamepad(ESP32)の間は、BLEです。
Gamepad(ES32)とUbuntuの間はMQTTではなくUD(小ネタ)TypeScriptで型定義ファイルが無いモジュールの読み込み方法
# はじめに
ml5を利用しようとしたところ、型定義が無く、エラーが発生したため、型定義が無い時のモジュールの読み込み方法について調べました。
*なお、ml5の型定義は現在draft版を作成中。
https://gist.github.com/dikarel/38a12ce263199a41ad67c15eac7f4b45# 型定義が無い時のエラー
ml5を以下のようにモジュールをインポートするとエラーとなる。“`typescript
import * as ml5 from “ml5”;
“`具体的には以下のようなコンパイルエラーが発生する。
“`console
Could not find a declaration file for module ‘ml5’.
Try npm install @types/ml5 if it exists or add a new declaration (.d.ts) file containing declare module ‘ml5’;
“`# 型定義が無い時の読み込み方法
型定義ファイル( `d.ts` )を自npmに自作モジュールを公開する方法
# はじめに
先日Node.jsの勉強中にnpmについて改めて学ぶ機会がありました。その際npmにサンプルのモジュールを公開したので、具体的なやり方をシェアします。
# npmとは
Node Package Managerが正式な名称です。その名の通りNode.jsのパッケージを管理するためのツールです。ホームページは下記リンク先からアクセスできます。
[https://www.npmjs.com/](https://www.npmjs.com/)
npmはNode.jsをインストールする際にインストールされます。インストール済みの場合、下記コマンドでバージョンが表示されます。
“`
npm –version
“`# npmに自作モジュールを公開する方法
## 公開までの流れ
流れは下記の通りです。
– npmのアカウントを作成する。
– 公開したいモジュールを作成する。
– npmへログインする。
– npmへ公開する。それでは1つずつ見ていきます。
## npmのアカウントを作成する
まずはnpmのアカウントを作成します。下記リンク先からSign
cannon.jsの衝突イベントのはまりどころメモ
衝突時に音でもならしてみようかなと思って、cannon.jsの衝突検出時に発生する`collide`イベントについて調べてみた。
# 衝突イベントは衝突毎に2回発生する
2つの物体が衝突するので、それぞれの物体に対してイベントを発火するようである。
[cannon.js/World.js at master · schteppe/cannon.js · GitHub](https://github.com/schteppe/cannon.js/blob/master/src/world/World.js)より抜粋:
“`js
if (!this.collisionMatrixPrevious.get(bi, bj)) {
// First contact!
// We reuse the collideEvent object, otherwise we will end up creating new objects for each new contact, even if there’s no event listener attached.NimのコードをNode.js用のJavaScriptコードにトランスコンパイルする
# 概要
– NimのコードをJSバックエンドでコンパイルしてNode.jsのスクリプトとして実行してみます
– NimのコードからNode.js用のライブラリを生成してNode.jsから関数を呼び出してみます# NimはJavaScriptを生成できる
Nimは公式でNimのコードからJavaScriptのコードにトランスコンパイル可能です。
例えば、以下のようなNimコードに対して
“`index.nim
proc plus*(x, y: cint): cint {.exportc.} =
return x + y
“`以下のコマンドでコンパイルします。すると、`index.nim`から`index.js`が生成されます。
“`bash
$ nim js index.nim$ ls index*
index.js index.nim
“`このようにJavaScriptコードを生成できます。
しかしここで生成されるJavaScriptはフロントエンド用で、HTMLから読み込む想定のものです。
Node.jsからは扱うことはできません。# N
JavaScriptで、ライブラリとかの変数の型や詳細情報がわからないときの調べかたメモ
JavaScriptのライブラリとかを使ってて、下記のように型が不明なときに手探りで調べた内容をメモしておく。
例:`CANNON.js`の下記の`e`の型がわからない。
“`js
cannonObj.addEventListener(“collide”,function(e){・・・});
“`# 手段
静的に調べる
とりあえずキーワードでググる。– ライブラリのドキュメントを探す。(GitHubとか)
– ライブラリのソースを探す&ソース上でキーワード検索する。(同上) ・・・[例](https://github.com/schteppe/cannon.js) → [`collide`で検索した結果](https://github.com/schteppe/cannon.js/search?q=collide)
– ライブラリのデモコードを探す。(同上) ・・・[例](https://github.com/schteppe/cannon.js/blob/master/demos/events.html)動的に調べる
– クラス名を調べる。
関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた