खोज…
परिचय
PICO-8 एम्बेडेड लुआ में क्रमादेशित एक काल्पनिक कंसोल है। इसके पास पहले से ही अच्छे दस्तावेज हैं । इस विषय का उपयोग अनिर्दिष्ट या कम-प्रलेखित सुविधाओं को प्रदर्शित करने के लिए करें।
गेम लूप
यह एक इंटरैक्टिव शेल के रूप में PICO-8 का उपयोग करना पूरी तरह से संभव है, लेकिन आप शायद गेम लूप में टैप करना चाहते हैं। ऐसा करने के लिए, आपको इनमें से कम से कम एक कॉलबैक फ़ंक्शन बनाना होगा:
-
_update()
-
_update60()
( v0.1.8 के बाद) -
_draw()
एक न्यूनतम "खेल" स्क्रीन पर बस कुछ आकर्षित कर सकता है:
function _draw()
cls()
print("a winner is you")
end
यदि आप _update60()
को परिभाषित करते हैं, तो गेम लूप 60fps पर चलने की कोशिश करता है और update()
अनदेखा करता है update()
(जो कि _update60()
पर चलता है)। या तो अद्यतन फ़ंक्शन _draw()
से पहले कहा जाता है। यदि सिस्टम तख्ते का पता लगाता है, तो यह ड्रॉ फ़ंक्शन को हर दूसरे फ्रेम को छोड़ देगा, इसलिए अपडेट विवरण में गेम लॉजिक और प्लेयर इनपुट रखना सबसे अच्छा है:
function _init()
x = 63
y = 63
cls()
end
function _update()
local dx = 0 dy = 0
if (btn(0)) dx-=1
if (btn(1)) dx+=1
if (btn(2)) dy-=1
if (btn(3)) dy+=1
x+=dx
y+=dy
x%=128
y%=128
end
function _draw()
pset(x,y)
end
_init()
फ़ंक्शन, सख्ती से बोल रहा है, वैकल्पिक है क्योंकि किसी भी फ़ंक्शन के बाहर कमांड स्टार्टअप पर चलाए जाते हैं। लेकिन यह कारतूस को रिबूट किए बिना प्रारंभिक परिस्थितियों में गेम को रीसेट करने का एक आसान तरीका है:
if (btn(4)) _init()
माउस इनपुट
हालाँकि यह आधिकारिक रूप से समर्थित नहीं है, आप अपने खेल में माउस इनपुट का उपयोग कर सकते हैं:
function _update60()
x = stat(32)
y = stat(33)
if (x>0 and x<=128 and
y>0 and y<=128)
then
-- left button
if (band(stat(34),1)==1) then
ball_x=x
ball_y=y
end
end
-- right button
if (band(stat(34),2)==2) then
ball_c+=1
ball_c%=16
end
-- middle button
if (band(stat(34),4)==4) then
ball_r+=1
ball_r%=64
end
end
function _init()
ball_x=63
ball_y=63
ball_c=10
ball_r=1
end
function _draw()
cls()
print(stat(34),1,1)
circ(ball_x,ball_y,ball_r,ball_c)
pset(x,y,7) -- white
end
खेल के प्रकार
यदि आप एक शीर्षक स्क्रीन या एंडगेम स्क्रीन चाहते हैं, तो मोड स्विचिंग तंत्र स्थापित करने पर विचार करें:
function _init()
mode = 1
end
function _update()
if (mode == 1) then
if (btnp(5)) mode = 2
elseif (mode == 2) then
if (btnp(5)) mode = 3
end
end
function _draw()
cls()
if (mode == 1) then
title()
elseif (mode == 2) then
print("press 'x' to win")
else
end_screen()
end
end
function title()
print("press 'x' to start game")
end
function end_screen()
print("a winner is you")
end