46 lines
1.2 KiB
Markdown
46 lines
1.2 KiB
Markdown
# PyCanvas
|
|
|
|
PyCanvas is a Skulpt library for creating 2D games. It is based on litecanvas, and uses the HTML Canvas API. The demo editor is available at [PyStudio](https://pystudio.haaxman.co.uk/) and provides a nice online editor for writing code.
|
|
|
|
## Usage
|
|
|
|
To use PyCanvas, you can add the following to the top of your skulpt builtInRead() function:
|
|
|
|
```javascript
|
|
if (x === 'screen' || x === './screen.js') {
|
|
const url = new URL('screen.js', window.location.href).href;
|
|
const xhr = new XMLHttpRequest();
|
|
xhr.open("GET", url, false);
|
|
xhr.send();
|
|
if (xhr.status === 200) return xhr.responseText;
|
|
else throw "Could not load screen.js";
|
|
}
|
|
```
|
|
|
|
And set these variables before running the code:
|
|
```javascript
|
|
const canvas = document.getElementById('canvas');
|
|
const container = document.getElementById('preview-container');
|
|
if (canvas && container) {
|
|
const w = Math.floor(container.clientWidth);
|
|
const h = Math.floor(container.clientHeight);
|
|
canvas.width = w;
|
|
canvas.height = h;
|
|
}
|
|
```
|
|
|
|
Then you can use it in your code like this:
|
|
|
|
```python
|
|
import screen as s
|
|
|
|
def draw():
|
|
s.cls(0)
|
|
s.text(20, 20, "Hello World!", 3)
|
|
|
|
s.start({
|
|
"loop":{
|
|
"draw":draw
|
|
}
|
|
})
|
|
``` |