Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
loeasy68
GitHub Repository: loeasy68/loeasy68.github.io
Path: blob/main/GAME-ENIGNE/index.js
2937 views
1
const name = prompt("Name of project:")
2
let codeValue = ""
3
function backPage() {
4
jelluy().appsView(`
5
<a id="exportGame" class="waves-effect waves-light btn">Export ${name}</a>
6
<a id="addSprite" class="waves-effect waves-light btn">Add a sprite</a>
7
<a id="code" class="waves-effect waves-light btn">Start coding</a>
8
<div id="link"></div>
9
`)
10
addSprite.addEventListener("click", function(e) {
11
e.preventDefault()
12
addSpritePage()
13
})
14
exportGame.addEventListener("click", function(e){
15
e.preventDefault()
16
downloadGame()
17
})
18
code.addEventListener("click", function(e) {
19
e.preventDefault()
20
codePage()
21
})
22
}
23
function downloadGame() {
24
let file = new File([`
25
<!DOCTYPE HTML>
26
<html>
27
<head>
28
<style>
29
body {
30
display: flex;
31
}
32
.box{
33
width: 700px;
34
height: 700px;
35
border: 1px solid black;
36
}
37
</style>
38
<link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
39
<script defer src="https://pyscript.net/latest/pyscript.js"></script>
40
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
41
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
42
<script src="https://code.jquery.com/jquery-3.6.3.js"></script>
43
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js" integrity="sha512-Qlv6VSKh1gDKGoJbnyA5RMXYcvnpIqhO++MhIM2fStMcGT9i2T//tSwYFlcyoRRDcDZ+TYHpH8azBBCyhpSeqw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
44
</head>
45
<body>
46
<div class="box">
47
${game.innerHTML}
48
</div>
49
<py-script>
50
${codeValue}
51
</py-script>
52
</body>
53
</html>
54
`], "game.html", {type: "text/plain;charset=utf-8"})
55
saveAs(file)
56
}
57
let base64 = "";
58
function encodeImageFileAsURL(element) {
59
let file = element.files[0];
60
let reader = new FileReader();
61
reader.onloadend = function() {
62
base64 = reader.result;
63
}
64
reader.readAsDataURL(file);
65
}
66
function addSpritePage() {
67
jelluy().appsView(`
68
<input type="file"
69
id="image"
70
accept="image/png, image/jpeg">
71
<input type="text" placeholder="Width" id="width">
72
<input type="text" placeholder="Height" id="height">
73
<input type="text" id="id" placeholder="id">
74
75
<a id="done" class="waves-effect waves-light btn">Done</a>
76
<a id="back" class="waves-effect waves-light btn">Back</a>
77
`)
78
back.addEventListener("click", function(e) {
79
e.preventDefault()
80
backPage()
81
})
82
image.addEventListener("change", function() {
83
encodeImageFileAsURL(image)
84
})
85
done.addEventListener("click", function(e) {
86
e.preventDefault();
87
game.innerHTML = game.innerHTML + `<img id="${id.value}" src="${base64}" width="${width.value}" height="${height.value}">`;
88
})
89
}
90
function codePage() {
91
jelluy().appsView(`
92
<textarea id="python" rows="30" cols="30"></textarea>
93
<a id="run" class="waves-effect waves-light btn">Run</a>
94
<a id="done" class="waves-effect waves-light btn">Save</a>
95
<a id="back" class="waves-effect waves-light btn">Back</a>
96
<div id="result"></div>
97
`)
98
back.addEventListener("click", function(e) {
99
e.preventDefault()
100
backPage()
101
})
102
done.addEventListener("click", function(e) {
103
e.preventDefault()
104
codeValue = python.value
105
})
106
run.addEventListener("click", function(e) {
107
e.preventDefault()
108
result.innerHTML = `
109
<py-script>
110
${codeValue}
111
</py-script>
112
`
113
})
114
}
115
jelluy().startSite(`
116
<div id="options">
117
<a id="exportGame" class="waves-effect waves-light btn">Export ${name}</a>
118
<a id="addSprite" class="waves-effect waves-light btn">Add a sprite</a>
119
<a id="code" class="waves-effect waves-light btn">Start coding</a>
120
<div id="link"></div>
121
</div>
122
123
<div id="game" class="box"></div>
124
`,`
125
126
`)
127
128
addSprite.addEventListener("click", function(e) {
129
e.preventDefault()
130
addSpritePage()
131
})
132
exportGame.addEventListener("click", function(e){
133
e.preventDefault()
134
downloadGame()
135
})
136
code.addEventListener("click", function(e) {
137
e.preventDefault()
138
codePage()
139
})
140