Jump to content

Text on the screen


zack57
 Share

Recommended Posts

I am new to Lua, I am trying to learn Lua but I can's seem to get the text to show on the screen. Josh send me this link

 

http://www.leadwerks.com/werkspace/page/api-reference/_/context/contextdrawtext-r731 .

 

I have tried to put it in main.lua, tried to create text.lua, I tried to put it in a child of the player as a pivot but nothing shows up. I am trying to learn lua show I need to see the test to know I did it if you know what I mean?

-----------------------------------------------------------

Building Game is easier with :) LeadWerks :)!

-----------------------------------------------------------

NO to Windows 8 and 10 no way I am going to use them at all!!!!

Link to comment
Share on other sites

I did put this in a text.lua and the put the pivot for the text.lua and put the pivot as a child of the fpsplayer. The in the text.lua I see Script: PostRender I hope this is what you mean?

 

-This function will be called after the world is rendered, before the screen is refreshed.

--Use this to perform any 2D drawing you want the entity to display.

function Script:PostRender(context)

 

function App:Start()

 

self.window = Window:Create()

self.context = Context:Create(self.window)

local font = Font:Load("Fonts/Arial.ttf",36)

self.context:SetFont(font)

font:Release()

return true

end

 

function App:Loop()

 

if (self.window:Closed() or self.window:KeyDown(Key.Escape)) then return false end

 

self.context:SetColor(0,0,0)

self.context:Clear()

 

--Draw some centered text on the screen

local text = "Leadwerks"

 

local font = self.context:GetFont()

 

local x = self.window:GetWidth()/2

local y = self.window:GetHeight()/2

 

x = x - font:GetTextWidth(text)/2

y = y - font:GetHeight()/2

 

self.context:SetBlendMode(Blend.Alpha)

self.context:SetColor(1,1,1)

self.context:DrawText(text,x,y)

self.context:SetBlendMode(Blend.Solid)

 

self.context:Sync()

return true

end

 

end

-----------------------------------------------------------

Building Game is easier with :) LeadWerks :)!

-----------------------------------------------------------

NO to Windows 8 and 10 no way I am going to use them at all!!!!

Link to comment
Share on other sites

I must be missing something I did try that extenz but I can't seem to see anything. when I run it the frist time I got an error then I run it again and I got no error.

-----------------------------------------------------------

Building Game is easier with :) LeadWerks :)!

-----------------------------------------------------------

NO to Windows 8 and 10 no way I am going to use them at all!!!!

Link to comment
Share on other sites

Why do you have the App:Start() and App:Loop() functions inside your Script:PostRender() function? The App functions and App.lua script are deprecated but can still be used as your main script. I personally prefer just using the Main.lua script as it is more straight forward to use. The Script:PostRender() is to be used in an entity script not the main program script.

Win7 64bit / Intel i7-2600 CPU @ 3.9 GHz / 16 GB DDR3 / NVIDIA GeForce GTX 590

LE / 3DWS / BMX / Hexagon

macklebee's channel

Link to comment
Share on other sites

Ok I tryed that as well no text comes on the sceen?

 

main.lua

 

function App:Start()

 

self.window = Window:Create()

self.context = Context:Create(self.window)

local font = Font:Load("Fonts/Arial.ttf",36)

self.context:SetFont(font)

font:Release()

return true

end

 

function App:Loop()

 

if (self.window:Closed() or self.window:KeyDown(Key.Escape)) then return false end

 

self.context:SetColor(0,0,0)

self.context:Clear()

 

--Draw some centered text on the screen

local text = "Leadwerks"

 

local font = self.context:GetFont()

 

local x = self.window:GetWidth()/2

local y = self.window:GetHeight()/2

 

x = x - font:GetTextWidth(text)/2

y = y - font:GetHeight()/2

 

self.context:SetBlendMode(Blend.Alpha)

self.context:SetColor(1,1,1)

self.context:DrawText(text,x,y)

self.context:SetBlendMode(Blend.Solid)

 

self.context:Sync()

return true

end

 

--Initialize Steamworks (optional)

Steamworks:Initialize()

 

--Initialize analytics (optional). Create an account at www.gameamalytics.com to get your game keys

--[[if DEBUG==false then

Analytics:SetKeys("GAME_KEY_xxxxxxxxx", "SECRET_KEY_xxxxxxxxx")

Analytics:Enable()

end]]

 

--Set the application title

title="Training_For_Life"

 

--Create a window

local windowstyle = window.Titlebar

if System:GetProperty("fullscreen")=="1" then windowstyle=windowstyle+window.FullScreen end

window=Window:Create(title,0,0,System:GetProperty("screenwidth","1024"),System:GetProperty("screenheight","768"),windowstyle)

window:HideMouse()

 

--Create the graphics context

context=Context:Create(window,0)

if context==nil then return end

 

--Create a world

world=World:Create()

world:SetLightQuality((System:GetProperty("lightquality","1")))

 

--Load a map

local mapfile = System:GetProperty("map","Maps/start.map")

if Map:Load(mapfile)==false then return end

prevmapname = FileSystem:StripAll(changemapname)

 

--Send analytics event

Analytics:SendProgressEvent("Start",prevmapname)

 

while window:KeyDown(Key.Escape)==false do

 

--If window has been closed, end the program

if window:Closed() then break end

 

--Handle map change

if changemapname~=nil then

 

--Pause the clock

Time:Pause()

 

--Pause garbage collection

System:GCSuspend()

 

--Clear all entities

world:Clear()

 

--Send analytics event

Analytics:SendProgressEvent("Complete",prevmapname)

 

--Load the next map

if Map:Load("Maps/"..changemapname..".map")==false then return end

prevmapname = changemapname

 

--Send analytics event

Analytics:SendProgressEvent("Start",prevmapname)

 

--Resume garbage collection

System:GCResume()

 

--Resume the clock

Time:Resume()

 

changemapname = nil

end

 

--Update the app timing

Time:Update()

 

--Update the world

world:Update()

 

--Render the world

world:Render()

 

--Render statistics

context:SetBlendMode(Blend.Alpha)

if DEBUG then

context:SetColor(1,0,0,1)

context:DrawText("Debug Mode",2,2)

context:SetColor(1,1,1,1)

context:DrawStats(2,22)

context:SetBlendMode(Blend.Solid)

else

--Toggle statistics on and off

if (window:KeyHit(Key.F11)) then showstats = not showstats end

if showstats then

context:SetColor(1,1,1,1)

context:DrawText("FPS: "..Math:Round(Time:UPS()),2,2)

end

end

 

--Refresh the screen

context:Sync(true)

 

end

-----------------------------------------------------------

Building Game is easier with :) LeadWerks :)!

-----------------------------------------------------------

NO to Windows 8 and 10 no way I am going to use them at all!!!!

Link to comment
Share on other sites

Thanks for all the help guys!

-----------------------------------------------------------

Building Game is easier with :) LeadWerks :)!

-----------------------------------------------------------

NO to Windows 8 and 10 no way I am going to use them at all!!!!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...