Added final scripting for games project
BIN
.jekyll-metadata
Normal file
30
_content/scripting/start.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
layout: default
|
||||
title: Start
|
||||
---
|
||||
#### Start
|
||||
|
||||
Note: If the web version is too slow, you can download it for windows [here](/assets/scripting-assets/Start/win.zip).
|
||||
|
||||
The purpose of this project was to demonstrate how to create a game where you use Unity's physics system to control a ball, with enemies and pickups and jump pads, etc.
|
||||
|
||||
**Controls:**
|
||||
|
||||
In the level selection,
|
||||
|
||||
- Arrow keys to switch level
|
||||
- Enter to select level
|
||||
- Escape to quit game
|
||||
|
||||
In the game,
|
||||
|
||||
- Mouse to look, WASD to move
|
||||
- Try to reach the green "finish" platform as quickly as possible, without dying
|
||||
- Red objects are hazards
|
||||
- Blue powerups increase your speed
|
||||
- Red powerups make you smaller and lighter
|
||||
- Yellow pickups reduce your time taken
|
||||
- Green arrows make you jump
|
||||
- Blue platforms slow you down
|
||||
- Backspace to restart the level
|
||||
- Escape to return to level select
|
|
@ -3,9 +3,9 @@ layout: default
|
|||
title: Scripting for Games
|
||||
category: Game
|
||||
banner: scripting
|
||||
cards: [Questable, Incarcerated]
|
||||
cards: [Questable, Incarcerated, Start]
|
||||
featured: false
|
||||
links: ["Source Code|https://github.com/thepaperpilot/Scripting-For-Games", "Questable|/assets/scripting-assets/Questable/index.html", "Incarcerated|/assets/scripting-assets/Incarcerated/index.html"]
|
||||
links: ["Source Code|https://github.com/thepaperpilot/Scripting-For-Games", "Questable|/assets/scripting-assets/Questable/index.html", "Incarcerated|/assets/scripting-assets/Incarcerated/index.html", "Start|/assets/scripting-assets/Start/index.html"]
|
||||
tags: [c#, unity]
|
||||
---
|
||||
A collection of projects made for my Scripting for Games course.
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Unity WebGL Player | Incarcerated</title>
|
||||
<title>Unity WebGL Player | Questable</title>
|
||||
<link rel="shortcut icon" href="TemplateData/favicon.ico">
|
||||
<link rel="stylesheet" href="TemplateData/style.css">
|
||||
<script src="TemplateData/UnityProgress.js"></script>
|
||||
|
|
4
assets/scripting-assets/Start/Build/UnityLoader.js
Normal file
BIN
assets/scripting-assets/Start/Build/web.asm.code.unityweb
Normal file
BIN
assets/scripting-assets/Start/Build/web.asm.framework.unityweb
Normal file
BIN
assets/scripting-assets/Start/Build/web.asm.memory.unityweb
Normal file
BIN
assets/scripting-assets/Start/Build/web.data.unityweb
Normal file
13
assets/scripting-assets/Start/Build/web.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"companyName": "DefaultCompany",
|
||||
"productName": "Redone",
|
||||
"dataUrl": "web.data.unityweb",
|
||||
"asmCodeUrl": "web.asm.code.unityweb",
|
||||
"asmMemoryUrl": "web.asm.memory.unityweb",
|
||||
"asmFrameworkUrl": "web.asm.framework.unityweb",
|
||||
"TOTAL_MEMORY": 268435456,
|
||||
"graphicsAPI": ["WebGL 2.0", "WebGL 1.0"],
|
||||
"webglContextAttributes": {"preserveDrawingBuffer": false},
|
||||
"splashScreenStyle": "Dark",
|
||||
"backgroundColor": "#231F20"
|
||||
}
|
24
assets/scripting-assets/Start/TemplateData/UnityProgress.js
Normal file
|
@ -0,0 +1,24 @@
|
|||
function UnityProgress(gameInstance, progress) {
|
||||
if (!gameInstance.Module)
|
||||
return;
|
||||
if (!gameInstance.logo) {
|
||||
gameInstance.logo = document.createElement("div");
|
||||
gameInstance.logo.className = "logo " + gameInstance.Module.splashScreenStyle;
|
||||
gameInstance.container.appendChild(gameInstance.logo);
|
||||
}
|
||||
if (!gameInstance.progress) {
|
||||
gameInstance.progress = document.createElement("div");
|
||||
gameInstance.progress.className = "progress " + gameInstance.Module.splashScreenStyle;
|
||||
gameInstance.progress.empty = document.createElement("div");
|
||||
gameInstance.progress.empty.className = "empty";
|
||||
gameInstance.progress.appendChild(gameInstance.progress.empty);
|
||||
gameInstance.progress.full = document.createElement("div");
|
||||
gameInstance.progress.full.className = "full";
|
||||
gameInstance.progress.appendChild(gameInstance.progress.full);
|
||||
gameInstance.container.appendChild(gameInstance.progress);
|
||||
}
|
||||
gameInstance.progress.full.style.width = (100 * progress) + "%";
|
||||
gameInstance.progress.empty.style.width = (100 * (1 - progress)) + "%";
|
||||
if (progress == 1)
|
||||
gameInstance.logo.style.display = gameInstance.progress.style.display = "none";
|
||||
}
|
BIN
assets/scripting-assets/Start/TemplateData/favicon.ico
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/scripting-assets/Start/TemplateData/fullscreen.png
Normal file
After Width: | Height: | Size: 345 B |
After Width: | Height: | Size: 155 B |
After Width: | Height: | Size: 159 B |
BIN
assets/scripting-assets/Start/TemplateData/progressFull.Dark.png
Normal file
After Width: | Height: | Size: 137 B |
After Width: | Height: | Size: 142 B |
BIN
assets/scripting-assets/Start/TemplateData/progressLogo.Dark.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.2 KiB |
18
assets/scripting-assets/Start/TemplateData/style.css
Normal file
|
@ -0,0 +1,18 @@
|
|||
.webgl-content * {border: 0; margin: 0; padding: 0}
|
||||
.webgl-content {position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
|
||||
|
||||
.webgl-content .logo, .progress {position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
|
||||
.webgl-content .logo {background: url('progressLogo.Light.png') no-repeat center / contain; width: 154px; height: 130px;}
|
||||
.webgl-content .progress {height: 18px; width: 141px; margin-top: 90px;}
|
||||
.webgl-content .progress .empty {background: url('progressEmpty.Light.png') no-repeat right / cover; float: right; width: 100%; height: 100%; display: inline-block;}
|
||||
.webgl-content .progress .full {background: url('progressFull.Light.png') no-repeat left / cover; float: left; width: 0%; height: 100%; display: inline-block;}
|
||||
|
||||
.webgl-content .logo.Dark {background-image: url('progressLogo.Dark.png');}
|
||||
.webgl-content .progress.Dark .empty {background-image: url('progressEmpty.Dark.png');}
|
||||
.webgl-content .progress.Dark .full {background-image: url('progressFull.Dark.png');}
|
||||
|
||||
.webgl-content .footer {margin-top: 5px; height: 38px; line-height: 38px; font-family: Helvetica, Verdana, Arial, sans-serif; font-size: 18px;}
|
||||
.webgl-content .footer .webgl-logo, .title, .fullscreen {height: 100%; display: inline-block; background: transparent center no-repeat;}
|
||||
.webgl-content .footer .webgl-logo {background-image: url('webgl-logo.png'); width: 204px; float: left;}
|
||||
.webgl-content .footer .title {margin-right: 10px; float: right;}
|
||||
.webgl-content .footer .fullscreen {background-image: url('fullscreen.png'); width: 38px; float: right;}
|
BIN
assets/scripting-assets/Start/TemplateData/webgl-logo.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
27
assets/scripting-assets/Start/index.html
Normal file
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Unity WebGL Player | Start</title>
|
||||
<link rel="shortcut icon" href="TemplateData/favicon.ico">
|
||||
<link rel="stylesheet" href="TemplateData/style.css">
|
||||
<script src="TemplateData/UnityProgress.js"></script>
|
||||
<script src="Build/UnityLoader.js"></script>
|
||||
<script>
|
||||
var gameInstance = UnityLoader.instantiate("gameContainer", "Build/web.json", {onProgress: UnityProgress});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="webgl-content" style="width: 100%; height: 100%">
|
||||
<div id="gameContainer" style="width: 100%; height: 100%"></div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
window.onresize=(width,height)=>{
|
||||
var ctx = document.getElementById('#canvas').getContext('webgl2');
|
||||
ctx.canvas.width = window.innerWidth;
|
||||
ctx.canvas.height = window.innerHeight;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|