निर्यात करना और सर्वोत्तम प्रथाएँ

Lesson 11 of 11 • 10 XP

Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

आपका गेम एक्सपोर्ट करना

  1. शीर्ष बार में Export आइकन पर क्लिक करें
  2. अपने गेम के लिए एक स्थान और फ़ाइल नाम चुनें
  3. इंजन आपके प्रोजेक्ट के साथ एक स्टैंडअलोन .exe बनाता है
  4. इस एकल फ़ाइल का वितरण करें - कोई अन्य फ़ाइलें आवश्यक नहीं हैं!

निर्यातित गेम:

  • बिना संपादक इंटरफ़ेस के चलता है
  • सभी इमेज, दृश्य, और कोड शामिल होते हैं
  • आपके संसाधनों की सुरक्षा के लिए एन्क्रिप्टेड होता है

टिप्स और सर्वोत्तम प्रथाएँ

प्रदर्शन

  • चित्र के आकार को उचित रखें (पिक्सल, उच्च-रिज़ॉल्यूशन नहीं)
  • removeObject() के साथ उन वस्तुओं को हटाएं जिनकी आपको अब आवश्यकता नहीं है
  • रेंडरिंग क्रम को व्यवस्थित करने के लिए परतों का उपयोग करें

संगठन

  • वस्तुओं और चित्रों को अर्थपूर्ण नाम दें
  • अपने कोड के दस्तावेजीकरण के लिए टिप्पणियों का उपयोग करें
  • संबंधित परिवर्तनीयों को एक साथ समूहित करें

डिबगिंग

  • चर मानों को आउटपुट करने के लिए print() का उपयोग करें
  • प्रिंट संदेश गेम विंडो में दिखाई देते हैं
  • यदि वस्तुएं दीवारों के माध्यम से गुजर रही हैं तो टकराव प्रकार की जांच करें

सामान्य समस्याएँ

वस्तुएं टकराती नहीं:

  • टकराव प्रकार की जांच करें (दोनों वस्तुओं को उचित प्रकार की आवश्यकता है)
  • सुनिश्चित करें कि वस्तुएं दृश्य में जोड़ी गई हैं
  • सुनिश्चित करें कि स्प्राइट के पास एक कोलाइडर सक्षम है

वस्तुएं दीवारों के माध्यम से गुजर रही हैं:

  • दीवारों को COLLISION_STATIC() होना चाहिए
  • चलती वस्तुओं को COLLISION_DYNAMIC() होना चाहिए
  • बहुत तेज वस्तुएं टनल कर सकती हैं - गति कम करें या टकराव सीमाएँ बढ़ाएं

कैमरा प्लेयर का पालन नहीं कर रहा:

  • onUpdate() में कैमरा स्थिति को अपडेट करें, केवल start() में नहीं
  • याद रखें कैमरा स्थिति दृश्य का केंद्र है

त्वरित संदर्भ कार्ड

// संपत्ति बनाएं
var img = Sprite(16, 16)
var scene = Scene()
var sfx = Audio()
var obj = Object("Name")

// वस्तु संचालन
setX(obj, 100)
setY(obj, 100)
setSprite(obj, img)
setCollisionType(obj, COLLISION_DYNAMIC())
addObject(scene, obj)

// स्प्राइट संचालन
fillSprite(img, 255, 0, 0, 255)  // लाल से भरें
setPixel(img, 0, 5, 5, 0, 255, 0, 255)  // (5,5) पर पिक्सल सेट करें
var color = getPixel(img, 0, 5, 5)      // (5,5) पर [r,g,b,a] प्राप्त करें
setAnimationFPS(img, 24)         // एनिमेशन गति सेट करें
var fps = getAnimationFPS(img)   // एनिमेशन गति प्राप्त करें

// फ़िजिक्स (गति + गुरुत्वाकर्षण)
setGravityY(scene, 300)         // दृश्य की गुरुत्वाकर्षण सेट करें
setVelocityX(obj, 100)          // दाईं ओर बढ़ें
setVelocityY(obj, -200)         // ऊपर कूदें

// एनिमेशन नियंत्रण
setFrame(obj, 0)           // विशिष्ट फ्रेम पर सेट करें
var frame = getFrame(obj)  // वर्तमान फ्रेम प्राप्त करें
var count = getFrameCount(obj)  // कुल फ्रेम

// दृश्य नियंत्रण
setScene(scene)
resetScene(scene)
setBackgroundColor(scene, 135, 206, 235)  // आसमानी नीला

// दृश्य क्वेरी
var obj = getObjectAt(scene, mx, my)       // बिंदु पर वस्तु
var hits = getObjectsInBox(scene, x, y, 32, 32)  // क्षेत्र में वस्तुएं
var enemy = getObjectByName(scene, "enemy")     // नाम से खोजें
var all = getAllObjects(scene)             // सभी वस्तुओं को प्राप्त करें
var count = getObjectCount(scene)          // वस्तुओं की गणना करें
var coins = getObjectsBySprite(scene, coinSprite)  // स्प्राइट द्वारा
var enemies = getObjectsByCollisionType(scene, COLLISION_DYNAMIC())

// ऑडियो
var handle = playAudio(sfx)
if (isAudioPlaying(handle)) { }
stopAudio(handle)

// कैमरा (स्थिति = दृश्य का केंद्र)
setCameraX(scene, x)
setCameraY(scene, y)
setCameraZoom(scene, 3.0)  // 240 विश्व इकाइयों को ऊर्ध्वाधर दिखाता है

// स्क्रीन और समन्वय रूपांतरण
var w = getScreenWidth()
var h = getScreenHeight()
var worldPos = screenToWorld(mouseX, mouseY)  // [worldX, worldY]
var screenPos = worldToScreen(objX, objY)     // [screenX, screenY]

// विंडो मोड (केवल निर्यातित खेलों को प्रभावित करता है)
setWindowMode(WINDOW_MAXIMIZED())  // डिफ़ॉल्ट
setWindowMode(WINDOW_FULLSCREEN()) // बॉर्डरलेस फुलपैन मोड
setWindowMode(WINDOW_WINDOWED())   // नियमित विंडो

// कीबोर्ड इनपुट
if (isKeyPressed(KEY_SPACE())) { }
if (isKeyHeld(KEY_LEFT())) { }

// माउस इनपुट
if (isMouseButtonPressed(MOUSE_LEFT())) { }
var mx = getMouseX()
var my = getMouseY()

// रैंडम नंबर और गणित
var r = random()              // 0.0 से 1.0
var n = randomInt(1, 10)      // 1 से 10
var x = clamp(14, 0, 10)      // 10
var y = lerp(0, 100, 0.5)     // 50
var snapped = round(15.7)     // 16
var dir = sign(-8)            // -1
var power = pow(2, 3)         // 8
var angle = PI() / 2          // 1.5708... रेडियन
var bob = sin(angle)          // ट्रिग रिडियन का उपयोग करते हैं
var deg = rad2deg(angle)      // 90 डिग्री

// UI शैली ढेर
uiPushElementColor(28, 40, 70, 220)
uiPushFontColor(255, 220, 120)
uiLabel("READY", 4, 4)
uiPopFontColor()
uiPopElementColor()

// स्टोरेज (गेम डेटा को सहेजें/लोड करें)
var data = [100, "Player", true]
save(getAppDataPath() + "/MyGame/save.dat", data)
var loaded = load(getAppDataPath() + "/MyGame/save.dat")
if (fileExists(getAppDataPath() + "/MyGame/save.dat")) { }
deleteFile(getAppDataPath() + "/MyGame/old.dat")

// गेम नियंत्रण
quitGame()  // गेम से बाहर निकलें

// गेम लूप
func start() { }
func onUpdate(dt) { }
func onCollision(a, b) { }
func end() { }

Tiniest 2D Pixel Engine - गेम बनाएं, इंजन नहीं।