खोज…


परिचय

PICO-8 एम्बेडेड लुआ में क्रमादेशित एक काल्पनिक कंसोल है। इसके पास पहले से ही अच्छे दस्तावेज हैं । इस विषय का उपयोग अनिर्दिष्ट या कम-प्रलेखित सुविधाओं को प्रदर्शित करने के लिए करें।

गेम लूप

यह एक इंटरैक्टिव शेल के रूप में PICO-8 का उपयोग करना पूरी तरह से संभव है, लेकिन आप शायद गेम लूप में टैप करना चाहते हैं। ऐसा करने के लिए, आपको इनमें से कम से कम एक कॉलबैक फ़ंक्शन बनाना होगा:

एक न्यूनतम "खेल" स्क्रीन पर बस कुछ आकर्षित कर सकता है:

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


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow