LoginSignup
6
1

More than 5 years have passed since last update.

フレンズのトランプジェネレータを作ったよ

Posted at

はじまり

たのしー!夏も終わってしまいました。
私はコントラクトブリッジなんぞを少しやるのですが、時々無性にオリジナルのトランプを作りたくなるときがあります。
そんなわけで、canvasタグの勉強がてら、けものフレンズのトランプを表示するジェネレータを作ってみました。

つかいかた

  • ページを開いて、カードのスートと数、フレンズを選択します。
    kemono_trump-1.png

  • 「たのしー!」を押します。

  • トランプのカード画像が表示されます。
    kemono_trump-2.png

つくりかた

そざい

けものフレンズアイコンまとめ【フリーアイコン】 - Togetterまとめ
こちらのアイコンと

Vector Playing Cards download | SourceForge.net
こちらの画像を自分で編集したものを使っています。

素材製作者の方々、ありがとうございます。

かんばす

canvasタグで描画する方法はいくつかあるようなのですが、
簡単に書くと

  var cardWidth = 476;
  var cardHeight = 666;

  var canvas = document.getElementById("kemono_trump");
  canvas.width = cardWidth;
  canvas.height = cardHeight;
  var context = canvas.getContext("2d");
  var cardImage = new Image();
  cardImage.src = 'card.svg';
  cardImage.addEventListener('load', function () {
    context.drawImage(cardImage, 0, 0, cardWidth, cardHeight);
  });

こんなようなjsになります。
今回カード画像はsvg、フレンズのアイコンはjpgなのですが、どちらももこれでできるのがありがたいですね。

くふう

  • カード画像はパラメータつきURLで表示されるので、フォーム入力しなくても直でカード画像を表示できます。
  • カード画像を描画したあとにフレンズのアイコンを描画するという順にしないとアイコンが見えなくなってしまいます。 addEventListener を入れ子にして解決しましたが、いまいち美しくないので何かいい方法はないものか。

これから

slackでインライン表示ができるとたのしー!ので、また別の手法で画像を返すシステムを作りたいですね。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1