mieki256's diary



2017/10/31(火) [n年前の日記]

#1 [love2d][lua] love2dを勉強中

とりあえず Windows10 x64上でlove2dを勉強中。

love2dは、lua言語からSDL2を利用して2Dゲームを制作できるライブラリ、という説明でいいのかな…?

_LOVE - Free 2D Game Engine

画像をキー入力で動かすサンプル。 :

以下の記事が参考になった。ありがたや。

_Love2D:ゲームエンジンその4 - Qiita

こんな感じの結果に。

love2d_move_sprite_ss.gif

ソースと画像。 :

使用画像は以下。License : CC0 ってことで。

_bg_1280x720.png
_spaceship_001_64x64.png

ソースは以下。

_main.lua
-- sprite move example

function love.load()
  -- init
  
  -- get window width and height
  scrw = love.graphics.getWidth()
  scrh = love.graphics.getHeight()
  
  -- load image
  bgimg = love.graphics.newImage("bg_1280x720.png")
  playerimg = love.graphics.newImage("spaceship_001_64x64.png")
  
  -- player work
  player = {}
  player.x = scrw / 2
  player.y = scrh / 2
  player.speed = 300
end

function love.update(dt)
  -- update
  
  -- key check
  if love.keyboard.isDown("left") then
    player.x = player.x - player.speed * dt
  elseif love.keyboard.isDown("right") then
    player.x = player.x + player.speed * dt
  end
  if love.keyboard.isDown("up") then
    player.y = player.y - player.speed * dt
  elseif love.keyboard.isDown("down") then
    player.y = player.y + player.speed * dt
  end
end

function love.draw()
  -- draw BG
  love.graphics.setColor(255, 255, 255, 255)
  love.graphics.draw(bgimg, 0, 0)
  -- love.graphics.rectangle("fill", 0, 465, scrw, 150)
  love.graphics.setColor(255, 255, 255, 255)
  
  -- draw player
  ofsx = playerimg:getWidth() / 2
  ofsy = playerimg:getHeight() / 2
  love.graphics.draw(playerimg, player.x - ofsx, player.y - ofsy)
  
  love.graphics.print("FPS: "..tostring(love.timer.getFPS()), 10, 10)
end

function love.keypressed(key, isrepeat)
  -- ESC to exit
  if key == "escape" then
    love.event.quit()
  end
end

_conf.lua
function love.conf(t)
  t.window.width = 1280
  t.window.height = 720
  t.window.title = "Move Sprite Example"
  t.window.fullscreen = false
  -- t.window.fullscreentype = "exclusive"
  t.window.vsync = true
end

実行方法。 :

実行方法は、何か適当な名前でフォルダを作成して、上記の画像やソースを全部入れて…。以下で実行。
love フォルダ名

少し解説。 :

conf.lua というファイルを作って中に色々書いておくと、ウインドウサイズ、ウインドウタイトル、フルスクリーン表示等が指定できる。love.conf(t) という関数を作って…。
  • t.window.width で、ウインドウ横幅を、t.window.height で、ウインドウ縦幅を指定。
  • t.window.title で、ウインドウタイトルを指定。
  • t.window.fullscreen で、フルスクリーン表示にするかしないか。
  • t.window.fullscreentype で、フルスクリーン表示時の種類を指定。
  • t.window.vsync で、vsync を見る、のかな。

main.lua に、処理を書く。
  • 関数 love.load() に、初期化処理を書く。
  • 関数 love.update(dt) に、更新処理を書く。dt には、前回の更新処理からの時間が秒単位で入っている、らしい。
  • 関数 love.draw() に、描画処理を書く。
  • 関数 love.keypressed(key, isrepeat) を書くと、キーが押されるたびにその関数が呼ばれる。

  • 画像の読み込み : love.graphics.newImage("画像ファイル名")
  • キーの押し下げ判定 : love.keyboard.isDown("キー種類")
  • 画像の描画 : love.graphics.draw(画像が入ってる変数, 描画位置x, 描画位置y)
  • 文字列の描画 : love.graphics.print("文字列", 描画位置x, 描画位置y)
  • ウインドウサイズの取得 : love.graphics.getWidth()、love.graphics.getHeight()
  • 画像サイズの取得 : 画像の入った変数:getWitdh()、:getHeight()
  • FPSの取得 : love.timer.getFPS()

love.graphics.setColor(R, G, B, A) は…。それ以後に描画するアレコレの色を変化させることができるらしい。

気になる点。 :

love.timer.getFPS() でFPSが取得できるらしいのだけど、なんだかスゴイ値になってる…。何故。

#2 [anime][neta] 作品のシンボルをあえて破壊するソレってどうだろう

「CASSHERN」においてヘルメットがアレするのは、原作通りに作らないよという意思表示ではないか、などと自分は勝手に思い込んでるわけだけど。そういう見せ方ってどこかで使えるかもしれないなー、などと妄想を。

例えば、ガンダムシリーズの新作で、ガンダムが登場した直後に角がバキッと壊されて、ずっとそのまま本編が進んでいったら…とか。

「鉄血のオルフェンズ」あたりで、そういうことをやってたら面白かったかも。ガンダムが登場したと思ったら、バトルしてる最中に主人公が、「なんだこの角。結構邪魔だな」とかつぶやいて自分でバキバキッとむしり取ったら、勘のいい視聴者が「ハハーン。今回のガンダムは…」となったかもしれず。ならないか。どうなんだ。

まあ、ガンダムシリーズは作品毎に内容が違うからそんなことしなくてもアレだけど。今更、「こんなのガンダムじゃねえ」とか言い出す人は、まず居ないよな…。

#3 [anime][neta] 50ヶ国語を喋る怪獣ってどうだろう

昨晩、NHK-BSで、ハリウッド版ゴジラが放送されてたので、途中まで見てたのだけど。 *1

考えてみれば…。怪獣と言えば「ガオー」しか言わないものと自分達はすっかり思い込んでるけど。怪獣の頭ってあんなにデカいのだから、脳もきっとデカいはずだよなと。あれだけ脳がデカいなら、人間並み、あるいは人間以上の知能を持った怪獣が居ても設定としてはおかしくないのかもしれないなと。それこそ、50ヶ国語をマスターしちゃってベラベラ喋りまくる怪獣が出てきてもおかしくないだろうと。おそらく、「お前はルー大柴か!」と言いたくなる、そんな喋り方をする怪獣に…。 *2

てなバカ妄想をしたけれど、ふと気づいてしまった。それってファンタジー作品等に出てくるドラゴンの類じゃねえのか…。残念。新規性は無いな。既によくある設定だった。

知能を持たない方向ではどうだろう。 :

逆の方向ではどうだろう。

例えば、ウルトラマン。彼等は人間以上の科学技術を持ってるだろうし、人間以上の知能だって持ってるだろうと自分達は思い込んでるけど。あれだけ個体が居るのだから、中にはとんでもない落ちこぼれが居てもおかしくはないだろう…。

銀色の巨人が現れた! さあ、怪獣を倒してくれるはず…と思ったら怪獣そっちのけで高層ビルに登り出して実に楽し気に「ウッホウッホ!」と騒ぎ始めるウルトラマン。ってソレ見た目が違うだけのキングコングじゃん。新規性が無いな…。

光の国ってそのへんどうなってるんだろう。生まれてきた個体が「あっ。これは…」てな状態だった場合、何が行われるのだろう…。それはそれでなんだか怖い。

そもそもウルトラマンは何故喋らないのか。 :

考えてみたら、ウルトラマンって妙なヤツだな…。「シュワ!」「ヘアッ!」「ダアッ!」しか喋らないし。頭めちゃくちゃ良さそうなのに。怪しい…。

アイツら何故か、人間サイズの時はフツーに喋るイメージが。「私は命を2つ持ってきた」とかフツーに言いそう。そもそも人間に化けてるときは人語を話すし。でも、巨大化すると「ダアッ!」。なんだか怪しい…。

と思ったけど、最近のウルトラマンはそうでもないな…。ゼロとか結構ベラベラ喋ってる印象。あの目つきの悪い黒いヤツも、空にでっかい自撮り画像をプロジェクションしながら人類に向かってベラベラ喋りそうだし。

しかし、「何故ウルトラマンは巨大化すると喋らないのか」てなあたりは、妄想すると妙な設定が出てきそうではある…。
  • テレパシーで意思伝達することが当たり前になったほどに進化した存在だから、音声伝達なんてそもそも不慣れ。人間が尾骨を自らの意思で動かすぐらいに面倒臭い。
  • 巨大化すると自分のエネルギーの配分が色々と大変なので、真っ先に声の発生部位はリソースが節約されちゃう。「シュワ!」も、当人的には「お疲れ様でした!」と喋ってるつもりだったり。
  • 人類に対するイメージ戦略。プロデュースは大事。
  • 発展途上の惑星住民に過剰な科学技術を与えてはならない。そのためには極力接触を避けねばならない。会話するなんてとんでもない。と法律で決まってるから喋りたくても喋れない。
そのあたりを真面目に妄想していくと…。
  • 声を出す文化がないなら、ウルトラ一族は歌という概念を失ってる可能性が。「歌はいいねえ。リリンの生み出した文化の極みだよ」とか言い出しそう。
  • 巨大化するとオツムまで弱くなってる可能性が。ヤバイ。体のどこらへんにエネルギーを割り振ってるのか不安が残る。
  • 光の国には名の知られた名プロデューサーが居るのかも。たぶん太ってる。イメージ的には。
  • 科学技術をポンポン人類に与えちゃう妙な思想を持った個体が登場して面倒臭い事態に。人類は波動エンジンを手に入れた! 的展開も。
まあ、色々妄想できそうな。

*1: 最後まで見たかったけど、作業してたから途中で視聴を打ち切ってしまった…。
*2: いやまあ、「脳が大きければ知能があるのだ」なんてのは単純過ぎるし、お前は馬鹿か、無知にもほどがあるだろうと言われそうだけど。面白くなればなんでもオッケーじゃん、と…。

#4 [nitijyou] 日記をアップロード

2017/09/26からアップロードしてなかった…のでアップロード。

以上、1 日分です。

過去ログ表示

Prev - 2017/10 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project