郵便番号検索APIを触ってみた

以前からAPIを触ってみたいと思いつつ全く触っていなかったのですが、

ようやく触ることができました。




初めてなので簡単そうな郵便番号検索APIを触りました。

参考にした記事はこちらです。



qiita.com

郵便番号検索API - zipcloud






Rubyもあまり経験がないので、ライブラリなど調べながら取り組みました。
自分用のためコメントが多く見づらいかもしれません。

ソースコード

# このプログラムで使うメソッドが組み込みライブラリではないので
#必要なライブラリを読み込む必要がある
# この2つは基本となるのでrequireする

require 'uri' #URIのドメインなどを簡単にとりだすことのできるライブラリー
require 'net/http' #HTTPを扱うライブラリ

# レスポンスがJson形式で返ってくるので、
#それをRubyのオブジェクトに変換するのに必要な外部ライブラリ

require "json"

def get_address(zip_code)

  # 引数を使って postal_code=1111111 のような形をつくる
  #zipcode:郵便番号のリクエストパラメータ名 に引数を指定する
  #URI.encode_www_form:HTML5 で定義されている 
  #application/x-www-form-urlencoded 形式の文字列を生成
  #(URL末尾に渡すクエリパラメータ生成)
  
  query = URI.encode_www_form(zipcode: zip_code)
  puts "query=[#{query}]\n\n"

  # リクエストを送るURIを生成
  uri = URI.parse("https://zipcloud.ibsnet.co.jp/api/search?#{query}")
  puts "uri=[#{uri}]\n\n"

  # 上記のURIに実際にリクエストを送り、返ってくるレスポンスをresponseに格納
  response = Net::HTTP.get_response(uri)
  
  # 返ってきたresponseのbody部分をJSONからRubyのハッシュに変換
  #というように返ってくるのをハッシュに変換
  result = JSON.parse(response.body)
  puts "result=[#{result}]\n\n"

  # 上記までで返ってきたレスポンスがブラウザに表示されているのと同じ状態になっている。
  #あとは返ってきた情報を使うだけ。
  #address3:町域名
  postal_code = result["results"][0]["zipcode"]
  prefecture = result["results"][0]["address1"]
  city = result["results"][0]["address2"]
  region = result["results"][0]["address3"]
 
  puts "郵便番号は#{postal_code}、住所は#{prefecture}#{city}#{region}です"
end

# 上で作成したメソッドを実行
get_address(5456001)


実行結果:


利用したライブラリ詳細:

library net/http (Ruby 3.1 リファレンスマニュアル)

module JSON (Ruby 3.1 リファレンスマニュアル)

URI.encode_www_form (Ruby 3.1 リファレンスマニュアル)




動作環境:
windows10, Replit

メモ:
resultを","で区切ろうと思ったが、文字列ではない(オブジェクト)ので区切れなかった
to_sで文字列にすれば区切れるかと思ったが、試そうとしたところReplitが急に重くなったため中断

うさんぽ①

キャラを動かす

 

※ブログの更新を怠っていて、一番最初にした作業を今さらブログにしています

 

こちらの記事を参考にうさぎを動かせるようにしました

 

UnityでRPGを作るpart1 歩行アニメーションと操作 - Qiita

 

スプライトは相方が用意してくれました↓

かわいい

 

本当は前後左右それぞれの向きで用意する必要があるので

最終的には4×4の16マスのものを準備しないといけないのですが、

一旦後ろ向きのものだけ用意して、それを前後左右すべてに適用して動かします。

 

まず、ProjectのAssetsというフォルダにimagesというフォルダをつくって、そこにコマ割り画像を登録します

 

 

オブジェクト詳細画面からsprite editorを開いて、画像をコマごとにスライスします。

参考記事では行数、列数を指定して16マスに分割していますが、ここではコマが4つしかないので、Automaticでセルを分割しています。

 

次にアニメーションを作成していきます。

スプライトのオブジェクトを左上のHierarchyにドラッグし、オブジェクトを選択した状態で上部バーのWindowからAnimation→Animationを選択します。


するとこのような画面が表示されるので、createを押した後、Add PropertyからSprite Renderer→Sprite横の+を押します


これでアニメーションが作成できます。

再生ボタン▶を押すと、アニメーションが確認できます。

 

次に、動かす方向によってアニメーションが切り替わるように設定します

(ここでは全方向に後ろ向きのものを使います)

アニメーションの作成時に同時に作成されたこのアイコンをダブルクリックします。

このような画面が表示されますが、 何もないところで右クリック→Create State→From New Blend Treeを 選択、作成されたブロックをもう一度右クリックしてSet as Layer Default Stateを選択します。
すると、Entryから生えている線が作ったブロックに向きます。

色のないブロックは消しておきます。

 

Blend Treeをダブルクリックし、InspectorのBlend Typeを2D Simple Directionalにし、Parametersをx,yにします

Motionの右下にある+ボタンから、Add Motion Fieldを選択し、4つ追加します。アニメーションには先ほど作成したアニメーションを設定し(ここでは全方向に後ろ向きのものを((ry )、座標は上、下、左、右の順になるように設定しています。



最後にキャラクターを動かすためのスクリプトを書きます。

まず、オブジェクトにRigidbody 2Dコンポーネントを追加して、Body TypeをKinematicに設定します。

そして、右クリックからCreate→C# Scriptを選択してスクリプトファイルを作成します。ファイルをクリックするとvisual studioが立ち上がるので、visual studioでコードを書いていきます。

 

コードは参考記事の通りなので割愛します。

スクリプトファイルをオブジェクトに関連付けたら終了です。



 

 

 

unityでうさぎのお散歩ゲームを作ってみようという話(初心者)

就活のために自分のポートフォリオが作りたかった。

しかし、ポートフォリオに追加できるようなものが全然ない。

ということで、大学二年の春休みにゲームを作り始めました。

ゲームエンジンはUnity(使ったことない)で、テーマはうさぎのお散歩ゲーム。

略して”Usanpo"。

ゲーム制作経験は大学の授業でのシナリオゲーム作成くらいで、

初心者も初心者ですが、昨今はネット記事が豊富なので心強い。
Unityでゲーム制作経験ありの相方もいます。

 

 

ちなみに2Dの見下ろし型で、ドットです。

ドット絵も最近興味をもったばかりで、少しずつ描き始めたところです。

ドットピクトというソフトで、スマホで練習中です。

(あわよくばドット絵もポートフォリオに入れれるレベルまで行きたい。。)

ソース管理はgithubとSourcetreeで行っています。

 

これから進捗などをこのブログで書き留めていこうと思います。
(関係ないことも書きます)