電卓の仕組み

https://steamcommunity.com/sharedfiles/filedetails/?id=1273048137 のワークショップのものの解説

local value = 0
local ges = 0
local xxx = 0
local buttons = {}

local button_value = {}
button_value.index = 1

button_value.click_function = 'doNothing' //ボタンクリックしたときの動作=「無し」に設定してるのでボタンだけ作成されている
button_value.function_owner = self
button_value.label = value
button_value.position = {0,0.2,-0.4} //上から2段目のボタン(プラスマイナスされる数字表示位置)
button_value.width = 500 //←ここらへんの数値を2000とかに変えてSAVE&PLAY押すとどこのボタンか分かりやすい
button_value.height = 100
button_value.font_size = 120 //ボタンの数字フォントのサイズ
table.insert(buttons, button_value)


local button_ges = {}
button_value.index = 1

button_ges.click_function = 'doNothing'
button_ges.function_owner = self
button_ges.label = ges
button_ges.position = {0,0.2,-0.75} //一番上の合計された数値表示位置
button_ges.width = 700
button_ges.height = 200
button_ges.font_size = 180
table.insert(buttons, button_ges)

local button_minus = {}

button_minus.click_function = 'minus'
button_minus.function_owner = self

button_minus.label = '-'
button_minus.position = {-0.7,0.2,-0.4} //マイナス「-」=minus マイナスする用のボタン
button_minus.width = 150
button_minus.height = 150
button_minus.font_size = 130
table.insert(buttons, button_minus)


local button_plus = {}

button_plus.click_function = 'plus'
button_plus.function_owner = self

button_plus.label = '+'
button_plus.position = {0.7,0.2,-0.4} //プラスするようのボタン
button_plus.width = 150
button_plus.height = 150
button_plus.font_size = 120
table.insert(buttons, button_plus)


local button_reset = {}

button_reset.click_function = 'reset'
button_reset.function_owner = self

button_reset.label = 'R'
button_reset.position = {0.5,0.2,0.8}
button_reset.width = 240
button_reset.height = 140
button_reset.font_size = 120
table.insert(buttons, button_reset)

local button_reset = {}

button_reset.click_function = 'resetall'
button_reset.function_owner = self

button_reset.label = 'Reset'
button_reset.position = {0.8,0.2,-0.9} //右上のリセットボタン
button_reset.width = 100
button_reset.height = 50
button_reset.font_size = 30
table.insert(buttons, button_reset)


local button_x1 = {}

button_x1.click_function = 'x1'
button_x1.function_owner = self

button_x1.label = '1'
button_x1.position = {-0.5,0.2,-0.1} //電卓の1の位置
button_x1.width = 240
button_x1.height = 140
button_x1.font_size = 120
table.insert(buttons, button_x1)

local button_x1 = {} //←1 4 7がx1 2 5がx10 3 6 8 9 0がx100の謎

button_x1.click_function = 'x4'
button_x1.function_owner = self

button_x1.label = '4'
button_x1.position = {-0.5,0.2,0.2}
button_x1.width = 240
button_x1.height = 140
button_x1.font_size = 120
table.insert(buttons, button_x1)

local button_x1 = {}

button_x1.click_function = 'x7'
button_x1.function_owner = self

button_x1.label = '7'
button_x1.position = {-0.5,0.2,0.5}
button_x1.width = 240
button_x1.height = 140
button_x1.font_size = 120
table.insert(buttons, button_x1)


local button_x10 = {}

button_x10.click_function = 'x2'
button_x10.function_owner = self

button_x10.label = '2'
button_x10.position = {0,0.2,-0.1}
button_x10.width = 240
button_x10.height = 140
button_x10.font_size = 120
table.insert(buttons, button_x10)

local button_x10 = {}

button_x10.click_function = 'x5'
button_x10.function_owner = self

button_x10.label = '5'
button_x10.position = {0,0.2,0.2}
button_x10.width = 240
button_x10.height = 140
button_x10.font_size = 120
table.insert(buttons, button_x10)


local button_x100 = {}

button_x100.click_function = 'x3'
button_x100.function_owner = self

button_x100.label = '3'
button_x100.position = {0.5,0.2,-0.1}
button_x100.width = 240
button_x100.height = 140
button_x100.font_size = 120
table.insert(buttons, button_x100)

local button_x100 = {}

button_x100.click_function = 'x6'
button_x100.function_owner = self

button_x100.label = '6'
button_x100.position = {0.5,0.2,0.2}
button_x100.width = 240
button_x100.height = 140
button_x100.font_size = 120
table.insert(buttons, button_x100)

local button_x100 = {}

button_x100.click_function = 'x8'
button_x100.function_owner = self

button_x100.label = '8'
button_x100.position = {0,0.2,0.5}
button_x100.width = 240
button_x100.height = 140
button_x100.font_size = 120
table.insert(buttons, button_x100)

local button_x100 = {}

button_x100.click_function = 'x9'
button_x100.function_owner = self

button_x100.label = '9'
button_x100.position = {0.5,0.2,0.5}
button_x100.width = 240
button_x100.height = 140
button_x100.font_size = 120
table.insert(buttons, button_x100)

local button_x100 = {}

button_x100.click_function = 'x0'
button_x100.function_owner = self

button_x100.label = '0'
button_x100.position = {0,0.2,0.8}
button_x100.width = 240
button_x100.height = 140
button_x100.font_size = 120
table.insert(buttons, button_x100)


function doNothing()
end

function updateges()
   button_ges.label = ges
   self.editButton(button_ges)
end

function updatexxx()
   button_xxx.label = x
   self.editButton(button_xxx)
end

function updatevalue()
   button_value.label = value
   self.editButton(button_value)    
end


function reset()
   value = 0
   updatevalue()
end

function resetall()
   ges =  0
   updateges()
   reset()
end

function plus()
   ges =  ges + value
   updateges()
   reset()
end

function minus()
   ges = ges - value
   updateges()
   reset()
end

function x0()
   value = (value*10) +0 
   updatevalue()
end


function x1()
   value = (value*10) +1 
   updatevalue()
end


function x2()
   value = (value*10) +2
   updatevalue()
end

function x3()
   value = (value*10) +3
   updatevalue()
end

function x4()
   value = (value*10) +4
   updatevalue()
end

function x5()
   value = (value*10) +5
   updatevalue()
end

function x6()
   value = (value*10) +6
   updatevalue()
end

function x7()
   value = (value*10) +7
   updatevalue()
end

function x8()
   value = (value*10) +8
   updatevalue()
end

function x9()
   value = (value*10) +9
   updatevalue()
end

function onload()
   for _, button in ipairs(buttons) do
       self.createButton(button)
   end
   minus()
end

タグ:

+ タグ編集
  • タグ:
最終更新:2025年02月23日 01:34