Dora Start!
1. Installation
Android
-
- Download and install the APK package on the game's running terminal.
-
- Run the software and access the server address displayed by the software through the browser of the PC (tablet or other development device) in the LAN.
-
- Start game development.
Windows
-
- Ensure that you have the X86 Visual C++ Redistributable for Visual Studio 2022 (the MSVC runtime package vc_redist.x86) installed to run this application. You can download it from the Microsoft website.
-
- Download and run the software.
-
- Access the server address displayed by the software through a browser.
-
- Start game development.
macOS
-
- Download and run the software. You may see a prompt saying "Dora cannot be opened" when you first run the software. Please go to "System Preferences" > "Security & Privacy" and click "Open Anyway". Or you can install with Homebrew using:
brew tap ippclub/dora-ssr
brew install --cask dora-ssr -
- Access the server address displayed by the software through a browser.
-
- Start game development.
Linux
-
- Installation.
- Ubuntu
sudo add-apt-repository ppa:ippclub/dora-ssr
sudo apt update
sudo apt install dora-ssr - Debian Bookworm
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 9C7705BF
sudo add-apt-repository -S "deb https://ppa.launchpadcontent.net/ippclub/dora-ssr/ubuntu jammy main"
sudo apt update
sudo apt install dora-ssr
-
- Run the software and access the server address displayed by the software through a browser.
-
- Start game development.
2. Write the Game
- Step One: Create a new project
- In the browser, right click on the menu "Assets" of the resource tree on the left side of the Dora Dora editor.
- Click the
New
menu item, select "New Folder", and name itHello
.
- Step Two: Write the game code
- Create a new game entry code file in the project folder, select the Lua language (or Teal, TypeScript, YueScript), and name it
init
. - Write the code:
- Create a new game entry code file in the project folder, select the Lua language (or Teal, TypeScript, YueScript), and name it
- Lua
- Teal
- TypeScript
- TSX
- YueScript
Hello/init.lua
-- import modules
local Sprite <const> = require("Sprite")
local Node <const> = require("Node")
local Move <const> = require("Move")
local Ease <const> = require("Ease")
-- create the root node of the game scene tree
local root = Node()
-- create a sprite
local sprite = Sprite("Image/logo.png")
-- mount the sprite to the root node
sprite:addTo(root)
-- register for click events to move the sprite
root:onTapBegan(function(touch)
sprite:perform(
Move(
1, -- duration in seconds
sprite.position, -- start position
touch.location, -- end position
Ease.OutBack -- easing function
)
)
end)
Hello/init.tl
-- import modules
local Sprite <const> = require("Sprite")
local Node <const> = require("Node")
local Move <const> = require("Move")
local Ease <const> = require("Ease")
local type Touch = require("Touch")
-- create the root node of the game scene tree
local root = Node()
-- create a sprite
local sprite = Sprite("Image/logo.png")
if not sprite is nil then
-- mount the sprite to the root node
root:addChild(sprite)
-- register for click events to move the sprite
root:onTapBegan(function(touch: Touch.Type)
sprite:perform(
Move(
1, -- duration in seconds
sprite.position, -- start position
touch.location, -- end position
Ease.OutBack -- easing function
)
)
end)
end
Hello/init.ts
// import modules
import {Ease, Move, Node, Slot, Sprite} from 'Dora';
// create the root node of the game scene tree
const root = Node();
// create a sprite
const sprite = Sprite("Image/logo.png");
if (sprite) {
// mount the sprite to the root node
root.addChild(sprite);
// register for click events to move the sprite
root.onTapBegan(touch => {
sprite.perform(
Move(
1, // duration in seconds
sprite.position, // start position
touch.location, // end position
Ease.OutBack // easing function
)
);
});
}
Hello/init.tsx
// @preview-file on
import {React, toNode, toAction, useRef} from 'DoraX';
import {Ease, Sprite, Touch} from 'Dora';
const sprite = useRef<Sprite.Type>();
// define the touch event handler
const onTapBegan = (touch: Touch.Type) => {
const {current} = sprite;
if (current) {
const {x, y} = touch.location;
current.perform(toAction(
<move time={1}
startX={current.x} startY={current.y}
stopX={x} stopY={y}
easing={Ease.OutBack}
/>
));
}
};
// create the root node of the game scene tree
// and a sprite as a child node
toNode(
<node onTapBegan={onTapBegan}>
<sprite ref={sprite} file='Image/logo.png'/>
</node>
);
Hello/init.yue
-- import modules
_ENV = Dora
-- create a sprite
sprite = Sprite "Image/logo.png"
-- create the root node of the game scene tree
with Node!
-- mount the sprite to the root node
\addChild sprite
-- register for click events to move the sprite
\onTapBegan (touch) ->
sprite\perform Move(
1 -- duration in seconds
sprite.position -- start position
touch.location -- end position
Ease.OutBack -- easing function
)
- Step Three: Run the game
Click the 🎮
icon in the lower right corner of the editor, then click the Run
menu item. Alternatively, press the Ctrl + r
key combination.
3. Publish the Game
- Open the right-click menu of the newly created project folder in the game resource tree on the left side of the editor.
- Click the
Download
option and wait for the browser to prompt for downloading the packaged project file.