mieki256's diary



2019/12/22() [n年前の日記]

#1 [love2d] love2dを再勉強中

love2d について再勉強中。使い方、書き方をすっかり忘れてる…。

日記にアップロードしたlov2d関係の記事へのリンク :

日記にメモしたアレコレを眺めているうちに、リンク集としてメモしておいたほうがいいなと思えてきたので、一応列挙。

_Windows10にlove2dをインストール
_Ubuntu 16.04 LTS上にlove2dをインストール
_love2dを勉強中
_love2dでフルスクリーン表示のテスト
_love2dでインチキ多関節
_NTEmacs上にlua-modeを追加
_love2dでスプライトをアニメーション、するあたりを勉強中
_love2dでスプライトをアニメーション
_love2dでタイルマップの表示
_love2dでタイルマップの表示その2
_love2dで音を鳴らそうとしているけれど
_love2dでサウンドを鳴らすソレ
_luarocksとluacheckをWindowsにインストール
_Visual Studio Code にLua関係の拡張をインストールしてみたり
_Emacs(NT Emacs)にLuaとlove2d関係のauto-completeをインストール
_love2dで敵をたくさん出してみる
_love2dでシューティングゲームの自機っぽいものを書いてたり
_シューティングゲームの自機に使えそうな画像
_ボス敵作成中
_キャラ画像を作成し直し
_love2dのParticleSystemについて調べてたり
_love2dでパーティクルを出すサンプル
_love2dを使って縦スクロールシューティングゲームっぽいサンプルを書いてみたり
_love2dを使ったソースをまとめる方法についてメモ
_love2dのParticleSystemの位置の指定について
_love2dのShaderについて試していたり
_love2dのShaderを使ってパレット書き換えっぽいことをする
_love2dでShaderを使ってラスタースクロールその2
_love2dのShaderでなんだかよく分からないエフェクトになったり
_love2dのShaderを使ってまだ実験中
_love2dのShaderを使って某STGのアレ
_love2dのShaderで円柱っぽいBG描画を試したり
_love2dのShaderでスカイドームっぽい描画を試したり
_直線と球の交点の求め方を調べてたり
_love2dのShaderで惑星をグルグル回す感じのソレを試したり
_love2d + stiライブラリでTiledで作ったタイルマップのオブジェクトレイヤー情報を取得
_Tiledマップエディタでオブジェクトレイヤーを使う際の操作手順をメモ
_love2d + stiライブラリでTiledデータのオブジェクト情報を取得その2
_love2dのSTGモドキサンプルにShaderの処理を入れてみたり
_Raspberry Pi Zero W上で love2d を動かすと画面解像度によっては60FPSにならない
_Raspberry Pi Zero W + love2d でフルHD表示した場合のフレームレートについて
_BGタイルマップのタイルサイズを変えて実験中
_love2dのShader用GLSLコードを最適化
_love2dのShaderでパレット書き換えっぽい処理
_ドット絵素材をOpenGameArtにアップロードしておいた
_love2d 11.1 が公開されていたらしい
_love2d 11.1の変更点を確認中
_シューティングゲームサンプルもどきをlove2d 11.1に対応させた
_Luaでソースファイルを分割する方法について調べたり
_love2dを触ってる
_love2dでタイルマップBGのアタリ処理を書いてるところ
_love2d上で地形アタリ処理を書いてるところ
_love2dのdrawについてのサンプル
_love2d上でビット演算
_Luaにcontinueが無いのがツライ
_love2dのShaderについて調べてたり

まあ、この日記のカテゴリ表示で、「love2d」を選んで表示してもいいのだけど…。

_2017 love2d + lua - mieki256's diary Title List
_2018 love2d + lua - mieki256's diary Title List
_2019 love2d + lua - mieki256's diary Title List

#2 [love2dlua] love2dでTIC-80のHelloworldを再現

_TIC-80 という _Fantasy Console (Fantasy Computer) は、起動すると最初から Helloworld 相当のソースが入っているのだけれど。

その内容と同等の処理を、love2d を使って書いてみたり。この Helloworld 相当があれば、以下について最低限の書き方が分かるわけで…。
こんな感じになった。環境は、Windows10 x64 1909 + love2d 11.3 32bit版。

love2d_like_tic80_ss01.gif

動作に必要なファイルは、以下の3ファイル。

_main.lua
_conf.lua
_obj.png

この3つのファイルを、任意のフォルダの中に入れて、「love フォルダ名」で実行できる。

一応ソースもメモしておく。

_main.lua
function love.load()
  love.graphics.setDefaultFilter("nearest", "nearest")

  -- load image
  img = love.graphics.newImage("obj.png")

  -- set Quad
  anime = {}
  for i = 0, 1 do
    -- set x, y, w, h, sw, sh
    anime[i + 1] = love.graphics.newQuad(i * 16, 0, 16, 16, img:getDimensions())
  end

  img_scale = 8
  x = (love.graphics.getWidth() - 16 * img_scale) / 2 -- centring
  y = love.graphics.getHeight() * 0.25
  t = 0
end

function love.update(dt)
  -- move object by key input
  local spd = 240 * dt
  if love.keyboard.isDown("up") then
    y = y - spd
  end
  if love.keyboard.isDown("down") then
    y = y + spd
  end
  if love.keyboard.isDown("left") then
    x = x - spd
  end
  if love.keyboard.isDown("right") then
    x = x + spd
  end

  t = t + dt
end

function love.draw()
  -- clear screen
  love.graphics.clear(0.4, 0.7, 0.8, 1.0)

  -- draw image
  local n = 1 + math.floor(t / 0.3) % #anime
  local angle = math.rad(0)
  local scale = img_scale
  love.graphics.setColor(1.0, 1.0, 1.0, 1.0)
  love.graphics.draw(img, anime[n], x, y, angle, scale, scale)

  -- draw text
  local tx = (love.graphics.getWidth() - 8 * 12) / 2 -- centering
  local ty = love.graphics.getHeight() * 0.75
  love.graphics.print("HELLO WORLD!", tx, ty)

  love.graphics.print("FPS: " .. tostring(love.timer.getFPS()), 2, 2)
end

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

_conf.lua
function love.conf(t)
  t.version = "11.3" -- love2d version
  t.window.title = "Helloworld like tic80 - love2d"
  t.window.vsync = 1
  t.window.width = 640
  t.window.height = 480

  -- t.window.fullscreen = true
  -- t.window.fullscreentype = "exclusive"
end

一応、軽く説明しておこうかな…。











長いわ。コレ全然軽い説明じゃないやん。

もしかして、ソース内に、コメント文の形で説明を書いたほうがマシだったのでは…。

以上、1 日分です。

過去ログ表示

Prev - 2019/12 - 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