Liste der Anhänge anzeigen (Anzahl: 1)
Code:
function onInit()
ambientlight = 0x1A1A1AFF
lightmap = rpg.graphics.newImage(320, 240)
lightmap:setBlendMode "add"
lightsource = rpg.graphics.newImage(100, 100)
lightsource:drawCircle(true, 50, 50, 50, 0xFFFFFFFF, 0x000000FF)
end
function onFrame()
if rpg.scene == "map" then
lightmap:clear(ambientlight)
local hero_x, hero_y = rpg.map.hero:getScreenPosition()
lightmap:draw(lightsource, hero_x - 50, hero_y - 60)
for i = 1, #rpg.map.events do
local event_x, event_y = rpg.map.events[i]:getScreenPosition()
lightmap:draw(lightsource, event_x - 50, event_y - 60)
end
rpg.graphics.setBlendMode "multiply"
rpg.graphics.draw(lightmap, 0, 0)
if rpg.keyboard.isDown "o" then
local screenshot = rpg.graphics.copyRect(0, 0, 320, 240)
rpg.graphics.writeImage(screenshot, "Save/screenshot.png")
end
end
end
Anhang 19599
^_^
Liste der Anhänge anzeigen (Anzahl: 1)
Ne, aber...
Zitat:
Zitat von
Corti
Fog of war
Challenge accepted!
Code:
function onInit()
rpg.graphics.setBlendMode "multiply"
fogs = {}
buffer = rpg.graphics.newImage(320, 240)
light = rpg.graphics.newImage(100, 100)
light:drawCircle(true, 50, 50, 50, 0xFFFFFFFF, 0x00000000)
end
function onFrame()
if rpg.scene == "map" then
local fog = fogs[rpg.map.id]
if fog == nil then
fog = rpg.graphics.newImage(rpg.map.width * 16, rpg.map.height * 16)
fog:setBlendMode "add"
fogs[rpg.map.id] = fog
end
if rpg.map.hero.x ~= x or rpg.map.hero.y ~= y then
fog:draw(light, rpg.map.hero.x * 16 - 45, rpg.map.hero.y * 16 - 50)
end
x, y = rpg.map.hero:getPosition()
fog:copyRect(rpg.map.cameraX, rpg.map.cameraY, 320, 240, buffer)
rpg.graphics.draw(buffer, 0, 0)
if rpg.keyboard.isDown "o" then
local screenshot = rpg.graphics.copyRect(0, 0, 320, 240)
rpg.graphics.writeImage(screenshot, "Save/screenshot.png")
end
end
end
Anhang 19600
In action: download RPGSS.7z
:hehe: