2016-07-04 6 views
0

私は何が間違っているのか分かりません...私はplayer.draw()関数でエラーを受け取りました。その話が悪い議論は、love.graphics.rectangle()メソッドにあります。 v.xは悪い議論です。しかし、それは機能しているはずです。 v.xとv.yの両方が動作しているはずです。テーブルや配列内の要素へのアクセスフィールドは正しくありますか?誰かが私が間違ってやっていることと、これを修正する方法を教えてもらえますか?多くの感謝!ここに私のコードは次のとおりです。関数内love2Dエラー:「長方形」の引数2が間違っている(数字が予想され、無かった)

require "scripts.player" 

width = love.graphics.getWidth() 

block = {} 
block.width = 60 
block.height = 10 
block.speed = 150 
block.timer = 0 
block.timerLim = math.random(1,2) 
block.spawnX = math.random(0, width - player.width) 

function block.spawn(x,y) 
    table.insert(block, {x = x, y = y}) 
end 

function block.move(dt) 
    for i,v in ipairs(block) do 
     v.y = v.y + block.speed * dt 
    end 
end 

function block.draw() 
    for i,v in ipairs(block) do 
     love.graphics.setColor(255,0,255) 
     love.graphics.rectangle("fill", v.x, v.y, block.width block.height) 
    end 
end 

function block.spawnHandler(dt) 
    block.timer = block.timer + dt 
    if block.timer > block.timerLim then 
     block.spawn(spawnX, -10) 
     block.timer = 0 
     block.timerLim = math.random(1,2) 
     block.spawnX = math.random(0, width - block.width) 
    end 
end 

-- Parent Functions -- 

function DRAW_BLOCK() 
    block.draw() 
end 

function UPDATE_BLOCK(dt) 
    block.move(dt) 
    block.spawnHandler(dt) 
end 

答えて

1

あなたがblock.spawnX代わりのspawnXを意味block.spawnHandler

spawnXは存在しないため、値はnilです。これはspawn関数に入り、座標のx値として設定され、rectangleになり、悪い引数です。

あなたはそれについての詳細を読むことができますし、どのようにもう一度ここであなたを噛んでからそれを防ぐために:あなたは存在しない変数へのアクセスを行うことによって、それを「修正」の代わりのエラーをスローするまで、要するにhttps://www.lua.org/pil/13.4.1.html

は、LUAは、本当に奇妙です戻り値なし、およそ800もの他のもの。いったんあなたがそれらのすべてのものを '修正'すると、あなたは単に奇妙であり、もはやかなりルアではない何かを持っています。

+0

うわー!本当にありがとう! –

関連する問題