Apr 18, 2018 09:53 PM
(This post was last modified: Apr 19, 2018 05:59 PM by ɩᴄᴀʀᴜȿ ᴌוᴠᴇѕ™.)
Hello everyone,
Releasing a game for WINDOWS 10 ONLY.
I DO NOT OWN THE SPRITES USED FOR THIS GAME. I just used them for visuals.
![[Image: 5b2a947e813a0c8d018b72683b948437.png]](https://gyazo.com/5b2a947e813a0c8d018b72683b948437.png)
![[Image: 1029f9929dafb7e28835fdf7eeebdfae.gif]](https://gyazo.com/1029f9929dafb7e28835fdf7eeebdfae.gif)
Releasing a game for WINDOWS 10 ONLY.
I DO NOT OWN THE SPRITES USED FOR THIS GAME. I just used them for visuals.
![[Image: 5b2a947e813a0c8d018b72683b948437.png]](https://gyazo.com/5b2a947e813a0c8d018b72683b948437.png)
![[Image: 1029f9929dafb7e28835fdf7eeebdfae.gif]](https://gyazo.com/1029f9929dafb7e28835fdf7eeebdfae.gif)
Code
@echo off & setlocal enableDelayedExpansion
mode 100,100
if "%~1" neq "" goto :%~1
REM INITIALIZE -----------------------------------------------------------------------------
call :macros
set /a "x=10"
set /a "y=53"
set /a "points=0"
set /a "health=maxHealth=100"
set "healthBar=ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ"
set /a "ammo=maxAmmo=16"
set /a "reloadDelay=9"
set "reload=false"
set /a "monsterMoveChance=2", "monsterMoveFrame=1", "monsterDamage=4"
for /l %%a in (26,9,89) do set /a "mx%%a=98", "monsterSize%%a=2", "monsterColor%%a=10", "damage%%a=1"
for %%a in (""
""
""
""
" <----- THIS IS YOUR AMMO THIS IS YOUR POINTS ----->"
""
""
""
" CONTROLS:"
""
" W - MOVE UP"
""
" A - RELOAD"
""
" S - MOVE DOWN"
""
" D - SHOOT"
""
""
""
""
""
""
" PRESS ANY BUTTON TO START PLAYING"
) do echo=%%~a
%plot% 4 5 0 111 AMMO:--:!ammo!/%maxAmmo%
%plot% 80 5 0 170 POINTS:--:!points!
echo !screen!
<nul set /p "=%ickySprite%"
pause>nul
REM ----------------------------------------------------------------------------------------
if exist "%temp%\%~n0_signal.txt" del "%temp%\%~n0_signal.txt"
"%~F0" Controller WASD >"%temp%\%~n0_signal.txt" | "%~F0" GAME_ENGINE <"%temp%\%~n0_signal.txt"
:GAME_ENGINE
( for /l %%# in () do ( set /a "frame+=1", "hue=(x * (y * 100)) %% 255"
rem Ûser Controller
set "com=" & set /p "com="
rem End Game Screen
if !health! lss 1 (
%cls%
%plot% 45 52 0 10 YOURÛSCOREÛ!points!
%plot% 41 54 0 11 YouÛlastedÛ!frame!Ûframes
%plot% 42 56 0 170 YouÛusedÛ!shotsFired!Ûbullets
<nul set /p "=!screen!"
exit 2>nul
)
rem display ammo in color.. & visually stimulating display lines
%plot% 4 5 0 111 AMMO:--:!ammo!/%maxAmmo%
%plot% 80 5 0 170 POINTS:--:!points!
%plot% 20 20 !healthColor! 0 ^!health^!/^!maxHealth^!
%plot% 30 20 !healthColor! 0 !healthBar!
for /l %%a in (26,9,94) do %plot% 0 %%a 27 0 --------------------------------------------------------------------------------------------------
for /l %%a in (26,3,94) do %plot% 14 %%a 130 0 ^|^|^|^|
rem if you're not reloading, you can move and shoot using WASD, reloading causes intentional brief delay to movement input.
if /i "!reload!" equ "false" (
if /i "!com!" equ "w" ( if !y! gtr 26 ( set /a "y-=9" )
) else if /i "!com!" equ "s" ( if !y! lss 89 ( set /a "y+=9" )
) else if /i "!com!" equ "d" (
if !ammo! gtr 0 (
set /a "ammo-=1", "points+=1", "shotsFired+=1", "damagedFrame=frame + 4"
set "damageID=!damageID!!y! "
set "damaged!y!=true"
) else if !ammo! equ 0 (
set /a "reloadMsg=frame + 20 - 1"
set "reloadRequired=true"
)
) else if /i "!com!" equ "a" (
set /a "ammo=maxAmmo", "reloadTime=frame + reloadDelay - 1"
set "reload=true"
)
) else if /i "!reload!" equ "true" (
set /a "reloadTimeFrame=frame %% reloadTime"
if !reloadTimeFrame! equ 0 ( set "reload=false")
)
rem Monsters
for /l %%a in (26,9,89) do (
if /i "!damaged%%a!" neq "true" (
set /a "monsterMoveSpeed=!random! %% 2 + 2"
set /a "m1=frame %% monsterMoveFrame", "m2=!random! %% monsterMoveChance"
if !m1! equ 0 if !m2! equ 0 set /a "mx%%a-=monsterMoveSpeed"
rem catch if monster gets to you
if !mx%%a! leq 18 (
%length% !healthBar!
set /a "points-=1", "health-=monsterDamage", "hp=monsterDamage / 2"
set /a "dmgSpotX=30 + length - 2", "damagedFrame=frame + 4"
for %%b in (!hp!) do set "healthBar=!healthBar:~0,-%%b!"
set "damageID=!damageID!%%a "
set "damaged%%a=true"
)
)
if /i "!damaged%%a!" neq "true" (
set "overlay=!overlay!%ESC%[%%a;!mx%%a!f[s[2C[38;2;255;0;0mÛ[5C[38;2;255;0;0mÛ[1B[6D[38;2;255;0;0mÛ[3C[38;2;255;0;0mÛ[1B[6D[38;2;255;0;0mÛÛÛÛÛÛÛ[1B[8D[38;2;255;0;0mÛÛ[38;2;255;222;173mÛÛ[38;2;255;0;0mÛ[38;2;255;222;173mÛÛ[38;2;255;0;0mÛÛ[1B[10D[38;2;255;0;0mÛÛÛ[38;2;0;0;0mÛ[38;2;255;222;173mÛ[38;2;255;0;0mÛ[38;2;0;0;0mÛ[38;2;255;222;173mÛ[38;2;255;0;0mÛÛÛ[0m[1B[11D[38;2;255;0;0mÛ[1C[38;2;255;0;0mÛÛÛÛÛÛÛ[1C[38;2;255;0;0mÛ[0m[1B[11D[38;2;255;0;0mÛ[1C[38;2;255;0;0mÛ[5C[38;2;255;0;0mÛ[1C[38;2;255;0;0mÛ[0m[1B[10D[38;2;255;0;0mÛ[1C[38;2;255;0;0mÛÛ[1C[38;2;255;0;0mÛÛ[1C[38;2;255;0;0mÛ[8[u""
) else (
%fastCircle% !mx%%a! %%a !monsterSize%%a! !monsterSize%%a! !monsterColor%%a!
)
)
rem catch if damaged. Purely for visual
for %%a in (!damageID!) do (
if /i "!damaged%%a!" equ "true" (
set /a "dF%%a=frame %% damagedFrame"
if !dF%%a! neq 0 (
%plot% !dmgSpotX! 20 15 0 ÛÛ
set /a "monsterSize%%a+=1", "monsterColor%%a-=1", "monsterMoveSpeed=0"
) else (
set "damaged%%a=false"
set "damageID="
set /a "monsterSize%%a=2", "monsterColor%%a=10", "mx%%a=98"
)
)
)
rem catch if ammo is empty
if /i "!reloadRequired!" equ "true" (
set /a "aE=frame %% reloadMsg"
if !aE! neq 0 ( %plot% 50 50 0 9 "RELOAD" ) else ( set "reloadRequired=false")
)
rem read the health bar
if !health! geq 75 ( set "healthColor=10"
) else if !health! lss 75 if !health! gtr 50 ( set "healthColor=11"
) else if !health! lss 50 if !health! gtr 25 ( set "healthColor=9"
) else if !health! lss 25 if !health! gtr 1 ( set "healthColor=1" )
rem player
set "screen=!screen!%marioSprite%"
cls & <nul set /p "=!screen!" & set "screen="
<nul set /p "=!overlay!" & set "overlay="
REM <nul set /p "=!esc


![[Image: zAlf2Yo.png]](https://i.imgur.com/zAlf2Yo.png)

Bitcoin: