@@ -36,6 +36,12 @@ function staticanimatorcounter(dt) | |||||
explosionRange = 0 | explosionRange = 0 | ||||
end | end | ||||
end | end | ||||
if gameState == "done" then | |||||
if explosionRange < 40 then | |||||
nuclearanimation = nuclearanimation - dt | |||||
explosionRange = explosionRange + dt*24 | |||||
end | |||||
end | |||||
if (player1anim) then | if (player1anim) then | ||||
--print("Effect range: " .. effectRange[0]) | --print("Effect range: " .. effectRange[0]) | ||||
effectRange[0] = effectRange[0] + dt*24 | effectRange[0] = effectRange[0] + dt*24 | ||||
@@ -1,9 +1,11 @@ | |||||
fullScreener = Class{} | fullScreener = Class{} | ||||
function fullScreener:init(a,b,c,d) | |||||
function fullScreener:init(a,b,c,d,e,f) | |||||
self.a = a | self.a = a | ||||
self.b = b | self.b = b | ||||
self.c = c | self.c = c | ||||
self.d = d | |||||
self.d = d | |||||
self.e = e | |||||
self.f = f | |||||
end | end | ||||
function fullScreener:toggle(vh, vw) | function fullScreener:toggle(vh, vw) | ||||
self.a = self.a + 1 | self.a = self.a + 1 | ||||
@@ -14,6 +16,8 @@ function fullScreener:toggle(vh, vw) | |||||
if (self.b == 1) then | if (self.b == 1) then | ||||
self.c = 1 | self.c = 1 | ||||
self.d = 1 | self.d = 1 | ||||
self.e = 0 | |||||
self.f = 0 | |||||
simpleScale.updateWindow(WINDOW_WIDTH, WINDOW_HEIGHT,{fullscreen = false}) | simpleScale.updateWindow(WINDOW_WIDTH, WINDOW_HEIGHT,{fullscreen = false}) | ||||
self.b = 0 | self.b = 0 | ||||
end | end | ||||
@@ -26,6 +30,8 @@ function fullScreener:toggle(vh, vw) | |||||
local newHeight = love.graphics.getHeight() | local newHeight = love.graphics.getHeight() | ||||
self.c = VIRTUAL_WIDTH / newWidth | self.c = VIRTUAL_WIDTH / newWidth | ||||
self.d = VIRTUAL_HEIGHT / newHeight | self.d = VIRTUAL_HEIGHT / newHeight | ||||
self.e = math.fmod(newWidth * self.d, VIRTUAL_WIDTH) / 2 | |||||
self.f = math.fmod(newHeight * self.d, VIRTUAL_HEIGHT) / 2 | |||||
self.b = 1 | self.b = 1 | ||||
end | end | ||||
@@ -15,8 +15,11 @@ doubleclick1 = false | |||||
doubleclick2 = false | doubleclick2 = false | ||||
hold1 = false | hold1 = false | ||||
hold2 = false | hold2 = false | ||||
debug = true | |||||
debug = false | |||||
paused = false | |||||
androidButtons = {} | androidButtons = {} | ||||
pauseButtons = {} | |||||
doneButtons = {} | |||||
showTouchControls = false | showTouchControls = false | ||||
--GLOBAL VARIABLES | --GLOBAL VARIABLES | ||||
frameratecap = 1/60 | frameratecap = 1/60 | ||||
@@ -72,6 +75,8 @@ nuckemodactive = 0 | |||||
maxspeed = 700 | maxspeed = 700 | ||||
DIFFERENCE_X = 1 | DIFFERENCE_X = 1 | ||||
DIFFERENCE_Y = 1 | DIFFERENCE_Y = 1 | ||||
OFFSET_X = 0 | |||||
OFFSET_Y = 0 | |||||
paddle_SPEED = 200 | paddle_SPEED = 200 | ||||
textamount = 15 | textamount = 15 | ||||
AI_STRIKEMOD = 1000 | AI_STRIKEMOD = 1000 | ||||
@@ -185,50 +190,17 @@ function love.load() | |||||
newButton( | newButton( | ||||
"H", | "H", | ||||
function() | function() | ||||
if gameState == "start" then | |||||
if globalState == "base" and gameState ~= "done" then | |||||
paused = true | |||||
else | |||||
resettinggenius() | resettinggenius() | ||||
paused = false | |||||
gameState = "menu" | gameState = "menu" | ||||
ball[1].dx = 1 | ball[1].dx = 1 | ||||
ball_DIR = 1 | ball_DIR = 1 | ||||
ball[1].dy = 1 | ball[1].dy = 1 | ||||
globalState = "menu" | globalState = "menu" | ||||
hardmanager() | hardmanager() | ||||
elseif (gameState == "done") then | |||||
if (player1score > player2score) then | |||||
gameState = "2serve" | |||||
potentialnuke1 = 0 | |||||
potentialnuke2 = 0 | |||||
striken = 0 | |||||
if (nuckemodactive == 0) then | |||||
areanuclear = 0 | |||||
nuclearanimation = 3 | |||||
end | |||||
potentialstrike1 = 0 | |||||
potentialstrike2 = 0 | |||||
player1nukescore = 0 | |||||
player2nukescore = 0 | |||||
else | |||||
gameState = "1serve" | |||||
resettinggenius() | |||||
for i = 1, maxBalls do | |||||
ball[i]:reset(i, 1) | |||||
end | |||||
end | |||||
else | |||||
gameState = "menu" | |||||
ball[1].dx = 1 | |||||
ball[1].dy = 1 | |||||
ball_DIR = 1 | |||||
globalState = "menu" | |||||
if (love.math.random(0, 10) == 1) then | |||||
TEXT = "Nuclear Ching Chong" | |||||
else | |||||
TEXT = "Nuclear Pong" | |||||
end | |||||
resettinggenius() | |||||
for i = 1, maxBalls do | |||||
ball[i]:reset(i) | |||||
end | |||||
end | end | ||||
end | end | ||||
) | ) | ||||
@@ -244,6 +216,103 @@ function love.load() | |||||
end | end | ||||
) | ) | ||||
) | ) | ||||
table.insert( | |||||
pauseButtons, | |||||
newButton( | |||||
"Resume", | |||||
function() | |||||
paused = false | |||||
TEXT = "Let's Continue" | |||||
end | |||||
) | |||||
) | |||||
table.insert( | |||||
doneButtons, | |||||
newButton( | |||||
"Freeplay", | |||||
function() | |||||
if player1score > player2score then | |||||
gameState = "2serve" | |||||
else | |||||
gameState = "1serve" | |||||
end | |||||
potentialnuke1 = 0 | |||||
potentialnuke2 = 0 | |||||
striken = 0 | |||||
if (nuckemodactive == 0) then | |||||
areanuclear = 0 | |||||
nuclearanimation = 3 | |||||
end | |||||
potentialstrike1 = 0 | |||||
potentialstrike2 = 0 | |||||
player1nukescore = 0 | |||||
player2nukescore = 0 | |||||
end | |||||
) | |||||
) | |||||
table.insert( | |||||
doneButtons, | |||||
newButton( | |||||
"Menu", | |||||
function() | |||||
resettinggenius() | |||||
TEXT = "Nuclear Pong" | |||||
paused = false | |||||
gameState = "menu" | |||||
ball[1].dx = 1 | |||||
ball_DIR = 1 | |||||
ball[1].dy = 1 | |||||
globalState = "menu" | |||||
hardmanager() | |||||
end | |||||
) | |||||
) | |||||
if not isAndroid then | |||||
table.insert( | |||||
pauseButtons, | |||||
newButton( | |||||
"Toggle Fullscreen", | |||||
function() | |||||
myscreen:toggle(VIRTUAL_HEIGHT, VIRTUAL_WIDTH) | |||||
DIFFERENCE_X = myscreen.c | |||||
DIFFERENCE_Y = myscreen.d | |||||
OFFSET_X = myscreen.e | |||||
OFFSET_Y = myscreen.f | |||||
end | |||||
) | |||||
) | |||||
end | |||||
table.insert( | |||||
pauseButtons, | |||||
newButton( | |||||
"Toggle Music", | |||||
function() | |||||
if mute then | |||||
musicController("mute", 0) | |||||
else | |||||
musicController("mute", 1) | |||||
end | |||||
end | |||||
) | |||||
) | |||||
table.insert( | |||||
pauseButtons, | |||||
newButton( | |||||
"Menu", | |||||
function() | |||||
resettinggenius() | |||||
paused = false | |||||
TEXT = "Nuclear Pong" | |||||
gameState = "menu" | |||||
ball[1].dx = 1 | |||||
ball_DIR = 1 | |||||
ball[1].dy = 1 | |||||
globalState = "menu" | |||||
hardmanager() | |||||
end | |||||
) | |||||
) | |||||
table.insert( | table.insert( | ||||
editorpicks, | editorpicks, | ||||
newButton( | newButton( | ||||
@@ -267,6 +336,7 @@ function love.load() | |||||
newButton( | newButton( | ||||
"Singleplayer", | "Singleplayer", | ||||
function() | function() | ||||
ptw = 10 | |||||
gameState = "gameMode" | gameState = "gameMode" | ||||
end | end | ||||
) | ) | ||||
@@ -399,19 +469,21 @@ function love.load() | |||||
-- ) | -- ) | ||||
--) | --) | ||||
table.insert( | table.insert( | ||||
buttons, | |||||
settings, | |||||
newButton( | newButton( | ||||
"Toggle Fullscreen", | "Toggle Fullscreen", | ||||
function() | function() | ||||
myscreen:toggle(VIRTUAL_HEIGHT, VIRTUAL_WIDTH) | myscreen:toggle(VIRTUAL_HEIGHT, VIRTUAL_WIDTH) | ||||
DIFFERENCE_X = myscreen.c | DIFFERENCE_X = myscreen.c | ||||
DIFFERENCE_Y = myscreen.d | DIFFERENCE_Y = myscreen.d | ||||
OFFSET_X = myscreen.e | |||||
OFFSET_Y = myscreen.f | |||||
end | end | ||||
) | ) | ||||
) | ) | ||||
if isAndroid then | if isAndroid then | ||||
table.insert( | table.insert( | ||||
settings, | |||||
buttons, | |||||
newButton( | newButton( | ||||
"Toggle Music", | "Toggle Music", | ||||
function() | function() | ||||
@@ -802,11 +874,13 @@ function love.load() | |||||
ball[3] = eball(VIRTUAL_WIDTH / 1.8, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ball[3] = eball(VIRTUAL_WIDTH / 1.8, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ||||
ball[4] = eball(VIRTUAL_WIDTH / 2.2, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ball[4] = eball(VIRTUAL_WIDTH / 2.2, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ||||
ball[5] = eball(VIRTUAL_WIDTH / 2.1, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ball[5] = eball(VIRTUAL_WIDTH / 2.1, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ||||
myscreen = fullScreener(RESOLUTION_SET, isFullscreen, DIFFERENCE_X, DIFFERENCE_Y) | |||||
myscreen = fullScreener(RESOLUTION_SET, isFullscreen, DIFFERENCE_X, DIFFERENCE_Y, OFFSET_X, OFFSET_Y) | |||||
if isAndroid then | if isAndroid then | ||||
myscreen:toggle(VIRTUAL_HEIGHT, VIRTUAL_WIDTH) | myscreen:toggle(VIRTUAL_HEIGHT, VIRTUAL_WIDTH) | ||||
DIFFERENCE_X = myscreen.c | DIFFERENCE_X = myscreen.c | ||||
DIFFERENCE_Y = myscreen.d | DIFFERENCE_Y = myscreen.d | ||||
OFFSET_X = myscreen.e | |||||
OFFSET_Y = myscreen.f | |||||
end | end | ||||
mymenu = mainMenu() | mymenu = mainMenu() | ||||
@@ -851,9 +925,9 @@ function love.update(dt) | |||||
end | end | ||||
if debug then | if debug then | ||||
displayFPS() | displayFPS() | ||||
print(player2.y .. " " .. player2.goal .. " " .. player2.dy .. " " .. AI_SPEED .. " " .. paddle_SPEED) | |||||
end | |||||
if globalState == "base" then | |||||
print(player2.y .. " " .. player2.goal .. " " .. player2.dy .. " " .. AI_SPEED .. " " .. paddle_SPEED .. " " .. lastSentKeyClient) | |||||
end | |||||
if globalState == "base" and not paused then | |||||
basegame(dt) | basegame(dt) | ||||
end | end | ||||
@@ -867,6 +941,7 @@ function love.update(dt) | |||||
musicController('norm', 1) | musicController('norm', 1) | ||||
end | end | ||||
if globalState == "nettest" then | if globalState == "nettest" then | ||||
--print("Confcode: " .. confirmation) | --print("Confcode: " .. confirmation) | ||||
if confirmation == "N" then | if confirmation == "N" then | ||||
@@ -894,7 +969,6 @@ function love.update(dt) | |||||
end | end | ||||
clienttest(dt) | clienttest(dt) | ||||
end | end | ||||
end | end | ||||
serverinit = false | serverinit = false | ||||
@@ -1319,9 +1393,15 @@ function love.keypressed(key) | |||||
end | end | ||||
end | end | ||||
if key == "escape" then | if key == "escape" then | ||||
if not isAndroid then | |||||
TEXT = "Escape Key" | |||||
love.event.quit() | |||||
if not isAndroid and globalState == "base" and gameState ~= "done" then | |||||
if paused then | |||||
paused = false | |||||
TEXT = "Let's Continue" | |||||
else | |||||
paused = true | |||||
TEXT = "PAUSED" | |||||
end | |||||
end | end | ||||
elseif key == "enter" or key == "return" then | elseif key == "enter" or key == "return" then | ||||
if gameState == "start" then | if gameState == "start" then | ||||
@@ -1497,6 +1577,8 @@ function gameModeChanger() | |||||
local by = (VIRTUAL_HEIGHT * 0.5) - (total_height * 0.5) + cursor_y | local by = (VIRTUAL_HEIGHT * 0.5) - (total_height * 0.5) + cursor_y | ||||
local color = {255, 255, 255, 255} | local color = {255, 255, 255, 255} | ||||
local mx, my = love.mouse.getPosition() | local mx, my = love.mouse.getPosition() | ||||
mx = mx | |||||
my = my | |||||
mx = mx * DIFFERENCE_X | mx = mx * DIFFERENCE_X | ||||
my = my * DIFFERENCE_Y | my = my * DIFFERENCE_Y | ||||
hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | ||||
@@ -1538,6 +1620,8 @@ function gameModeChanger() | |||||
end | end | ||||
local color = {255, 255, 255, 255} | local color = {255, 255, 255, 255} | ||||
local mx, my = love.mouse.getPosition() | local mx, my = love.mouse.getPosition() | ||||
mx = mx | |||||
my = my | |||||
mx = mx * DIFFERENCE_X | mx = mx * DIFFERENCE_X | ||||
my = my * DIFFERENCE_Y | my = my * DIFFERENCE_Y | ||||
hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | ||||
@@ -1655,6 +1739,18 @@ function love.draw(dt) | |||||
androidDraw() | androidDraw() | ||||
love.keyboard.mouseisReleased = false | love.keyboard.mouseisReleased = false | ||||
end | end | ||||
if debug then | |||||
if touches then | |||||
for i, touch in ipairs(touches) do | |||||
love.graphics.printf(touch.x, 0, VIRTUAL_HEIGHT / 2, VIRTUAL_WIDTH, "center") | |||||
end | |||||
if doubleclick1 then | |||||
TEXT = "DOUBLECLICK1" | |||||
elseif doubleclick2 then TEXT = "DOUBLECLICK2" | |||||
else TEXT = "NO" | |||||
end | |||||
end | |||||
end | |||||
simpleScale.unSet() | simpleScale.unSet() | ||||
end | end | ||||
@@ -1787,6 +1883,8 @@ function resolutionChanger() | |||||
if (isFullscreen == 1) then | if (isFullscreen == 1) then | ||||
DIFFERENCE_X = 1 | DIFFERENCE_X = 1 | ||||
DIFFERENCE_Y = 1 | DIFFERENCE_Y = 1 | ||||
OFFSET_X = 0 | |||||
OFFSET_Y = 0 | |||||
simpleScale.updateWindow(WINDOW_WIDTH, WINDOW_HEIGHT, {fullscreen = false}) | simpleScale.updateWindow(WINDOW_WIDTH, WINDOW_HEIGHT, {fullscreen = false}) | ||||
isFullscreen = 0 | isFullscreen = 0 | ||||
end | end | ||||
@@ -1798,6 +1896,8 @@ function resolutionChanger() | |||||
local newHeight = love.graphics.getHeight() | local newHeight = love.graphics.getHeight() | ||||
DIFFERENCE_X = VIRTUAL_WIDTH / newWidth | DIFFERENCE_X = VIRTUAL_WIDTH / newWidth | ||||
DIFFERENCE_Y = VIRTUAL_HEIGHT / newHeight | DIFFERENCE_Y = VIRTUAL_HEIGHT / newHeight | ||||
OFFSET_X = math.fmod(newWidth, VIRTUAL_WIDTH) / 2 | |||||
OFFSET_Y = math.fmod(newHeight, VIRTUAL_HEIGHT) / 2 | |||||
isFullscreen = 1 | isFullscreen = 1 | ||||
end | end | ||||
end | end | ||||
@@ -1848,7 +1948,7 @@ function love.mousereleased(x, y, button) | |||||
love.keyboard.mouseisReleased = true | love.keyboard.mouseisReleased = true | ||||
if (gameState == "editor") then | if (gameState == "editor") then | ||||
if (#walls < 1000 and button == 1 and blockinput ~= true) then | if (#walls < 1000 and button == 1 and blockinput ~= true) then | ||||
table.insert(walls, newWall(x * DIFFERENCE_X, y * DIFFERENCE_Y, 10, wall1width)) | |||||
table.insert(walls, newWall((x ) * DIFFERENCE_Y , (y ) * DIFFERENCE_Y , 10, wall1width)) | |||||
end | end | ||||
end | end | ||||
end | end | ||||
@@ -2135,16 +2235,21 @@ end | |||||
local lastclick = 0 | local lastclick = 0 | ||||
local clickInterval = 0.4 | local clickInterval = 0.4 | ||||
function love.touchpressed( id, x, y, dx, dy, pressure ) | function love.touchpressed( id, x, y, dx, dy, pressure ) | ||||
if isAndroid then | |||||
if isAndroid then | |||||
if x < love.graphics.getWidth()-OFFSET_X/2 then | |||||
actualX = (x - OFFSET_X/2) * DIFFERENCE_Y | |||||
else | |||||
actualX = 1380 | |||||
end | |||||
local existsingID = touchExists(id) | local existsingID = touchExists(id) | ||||
if existsingID ~= -1 then | if existsingID ~= -1 then | ||||
touches[existsingID].x = x * DIFFERENCE_X | |||||
touches[existsingID].y = y * DIFFERENCE_Y | |||||
touches[existsingID].x = actualX | |||||
touches[existsingID].y = (y) * DIFFERENCE_Y | |||||
else | else | ||||
table.insert(touches, newTouch(id, x*DIFFERENCE_X, y*DIFFERENCE_Y)) | |||||
table.insert(touches, newTouch(id, actualX , (y) * DIFFERENCE_Y)) | |||||
local time = love.timer.getTime() | local time = love.timer.getTime() | ||||
if x * DIFFERENCE_X < VIRTUAL_WIDTH/2 then | |||||
if time <= lastclick + clickInterval and x*DIFFERENCE_X > 100 then | |||||
if actualX < VIRTUAL_WIDTH/2 then | |||||
if time <= lastclick + clickInterval and actualX> 100 then | |||||
doubleclick1 = true | doubleclick1 = true | ||||
if gameState == "1serve" then | if gameState == "1serve" then | ||||
lastSentKey = "q" | lastSentKey = "q" | ||||
@@ -2155,8 +2260,9 @@ function love.touchpressed( id, x, y, dx, dy, pressure ) | |||||
doubleclick1 = false | doubleclick1 = false | ||||
lastclick = time | lastclick = time | ||||
end | end | ||||
else | else | ||||
if time <= lastclick + clickInterval and x*DIFFERENCE_X < VIRTUAL_WIDTH-100 then | |||||
if time <= lastclick + clickInterval and actualX < VIRTUAL_WIDTH-100 then | |||||
doubleclick2 = true | doubleclick2 = true | ||||
if gameState == "2serve" then | if gameState == "2serve" then | ||||
lastSentKey = "p" | lastSentKey = "p" | ||||
@@ -2191,10 +2297,15 @@ function love.touchreleased( id, x, y, dx, dy, pressure ) | |||||
end | end | ||||
function love.touchmoved( id, x, y, dx, dy, pressure ) | function love.touchmoved( id, x, y, dx, dy, pressure ) | ||||
if isAndroid then | if isAndroid then | ||||
if x < love.graphics.getWidth()-OFFSET_X/2 then | |||||
actualX = (x - OFFSET_X/2) * DIFFERENCE_Y | |||||
else | |||||
actualX = 1380 | |||||
end | |||||
local existsingID = touchExists(id) | local existsingID = touchExists(id) | ||||
if existsingID ~= -1 then | if existsingID ~= -1 then | ||||
touches[existsingID].x = x * DIFFERENCE_X | |||||
touches[existsingID].y = y * DIFFERENCE_Y | |||||
touches[existsingID].x = actualX | |||||
touches[existsingID].y = (y ) * DIFFERENCE_Y | |||||
if touches[existsingID].originalX - touches[existsingID].x > 200 and | if touches[existsingID].originalX - touches[existsingID].x > 200 and | ||||
touches[existsingID].originalX < VIRTUAL_WIDTH/2 then | touches[existsingID].originalX < VIRTUAL_WIDTH/2 then | ||||
hold1 = true | hold1 = true | ||||
@@ -2229,7 +2340,22 @@ function table.empty (self) | |||||
end | end | ||||
function sectortouched(sector) | function sectortouched(sector) | ||||
for i, touch in ipairs(touches) do | for i, touch in ipairs(touches) do | ||||
if touch.x > VIRTUAL_WIDTH-100 and touch.y < player2.y then | |||||
if (AGAINST_AI == 1) then | |||||
if sector == 2 and touch.x < 100 and touch.y < player1.y then | |||||
lastSentKey = p1control.up | |||||
return true | |||||
elseif sector == 2 and touch.x > VIRTUAL_WIDTH/2+10 and touch.y < player1.y then | |||||
lastSentKey = p1control.up | |||||
return true | |||||
elseif sector == 3 and touch.x < 100 and touch.y > player1.y+player1.height*0.9 then | |||||
lastSentKey = p1control.down | |||||
return true | |||||
elseif sector == 3 and touch.x > VIRTUAL_WIDTH/2+10 and touch.y > player1.y+player1.height*0.9 then | |||||
lastSentKey = p1control.down | |||||
return true | |||||
end | |||||
else | |||||
if sector == 1 and touch.x > VIRTUAL_WIDTH-100 and touch.y < player2.y then | |||||
lastSentKey = p2control.up | lastSentKey = p2control.up | ||||
return true | return true | ||||
elseif sector == 2 and touch.x < 100 and touch.y < player1.y then | elseif sector == 2 and touch.x < 100 and touch.y < player1.y then | ||||
@@ -2242,6 +2368,7 @@ for i, touch in ipairs(touches) do | |||||
lastSentKey = p2control.down | lastSentKey = p2control.down | ||||
return true | return true | ||||
end | end | ||||
end | |||||
end | end | ||||
return false | return false | ||||
end | end |
@@ -15,6 +15,8 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds | |||||
ev_by = (VIRTUAL_HEIGHT * 0.1) - (total_height * 0.5) + cursor_y | ev_by = (VIRTUAL_HEIGHT * 0.1) - (total_height * 0.5) + cursor_y | ||||
local color = {255, 255, 255, 255} | local color = {255, 255, 255, 255} | ||||
local mx, my = love.mouse.getPosition() | local mx, my = love.mouse.getPosition() | ||||
mx = mx | |||||
my = my | |||||
mx = mx * DIFFERENCE_X | mx = mx * DIFFERENCE_X | ||||
my = my * DIFFERENCE_Y | my = my * DIFFERENCE_Y | ||||
hot = (mx > ev_bx and mx < ev_bx + ev_button_width and my > ev_by and my < ev_by + ev_BUTTON_HEIGHT) and i | hot = (mx > ev_bx and mx < ev_bx + ev_button_width and my > ev_by and my < ev_by + ev_BUTTON_HEIGHT) and i | ||||
@@ -26,7 +28,7 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds | |||||
button.now = love.keyboard.mouseWasReleased() | button.now = love.keyboard.mouseWasReleased() | ||||
if button.now and not button.last and hot == i then | if button.now and not button.last and hot == i then | ||||
love.keyboard.mouseisReleased = false | |||||
love.graphics.setColor(0,0,0,1) | love.graphics.setColor(0,0,0,1) | ||||
love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | ||||
sounds['wallhit']:play() | sounds['wallhit']:play() | ||||
@@ -99,6 +101,8 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds | |||||
color = {1,1,1,1} | color = {1,1,1,1} | ||||
end | end | ||||
local mx, my = love.mouse.getPosition() | local mx, my = love.mouse.getPosition() | ||||
mx = mx | |||||
my = my | |||||
local mx = mx * DIFFERENCE_X | local mx = mx * DIFFERENCE_X | ||||
local my = my * DIFFERENCE_Y | local my = my * DIFFERENCE_Y | ||||
local hot = (mx > ev_bx and mx < ev_bx + ev_button_width and my > ev_by and my < ev_by + ev_BUTTON_HEIGHT) and i | local hot = (mx > ev_bx and mx < ev_bx + ev_button_width and my > ev_by and my < ev_by + ev_BUTTON_HEIGHT) and i | ||||
@@ -112,6 +116,7 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds | |||||
button.now = love.mouse.isDown(1) | button.now = love.mouse.isDown(1) | ||||
end | end | ||||
if button.now and hot == i then | if button.now and hot == i then | ||||
love.keyboard.mouseisReleased = false | |||||
love.graphics.setColor(0,0,0,1) | love.graphics.setColor(0,0,0,1) | ||||
love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | ||||
sounds['wallhit']:play() | sounds['wallhit']:play() | ||||
@@ -188,7 +193,7 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds | |||||
end | end | ||||
end | end | ||||
end | end | ||||
love.keyboard.mouseisReleased = false | |||||
end | end | ||||
function mainMenu:addButton(text, fn) | function mainMenu:addButton(text, fn) | ||||
return { | return { | ||||
@@ -212,6 +217,8 @@ local bx = (VIRTUAL_WIDTH*0.5) - (button_width * 0.5) | |||||
local by = (VIRTUAL_HEIGHT * 0.8) - (total_height * 0.5) + cursor_y | local by = (VIRTUAL_HEIGHT * 0.8) - (total_height * 0.5) + cursor_y | ||||
local color = {255, 255, 255, 255} | local color = {255, 255, 255, 255} | ||||
local mx, my = love.mouse.getPosition() | local mx, my = love.mouse.getPosition() | ||||
mx = mx | |||||
my = my | |||||
mx = mx * DIFFERENCE_X | mx = mx * DIFFERENCE_X | ||||
my = my * DIFFERENCE_Y | my = my * DIFFERENCE_Y | ||||
hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | ||||
@@ -220,6 +227,7 @@ if (hot == i) then | |||||
end | end | ||||
button.now = love.keyboard.mouseWasReleased() | button.now = love.keyboard.mouseWasReleased() | ||||
if button.now and not button.last and hot == i then | if button.now and not button.last and hot == i then | ||||
love.keyboard.mouseisReleased = false | |||||
love.graphics.setColor(0,0,0,1) | love.graphics.setColor(0,0,0,1) | ||||
love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | ||||
sounds['wallhit']:play() | sounds['wallhit']:play() | ||||
@@ -9,7 +9,7 @@ function musicController(orders, toggling) | |||||
sounds['gayTheme']:setVolume(0) | sounds['gayTheme']:setVolume(0) | ||||
sounds['gayTheme2']:setVolume(0) | sounds['gayTheme2']:setVolume(0) | ||||
elseif ((gameState == 'play' or gameState == '1serve' or gameState == '2serve') and player1score <= 7 and player2score <= 7 and areanuclear == 0) then | |||||
elseif ((gameState == 'play' or gameState == '1serve' or gameState == '2serve') and player1score <= ptw*0.5 and player2score <= ptw*0.5 and areanuclear == 0) then | |||||
sounds['updateMusic']:stop() | sounds['updateMusic']:stop() | ||||
sounds['gayTheme2']:stop() | sounds['gayTheme2']:stop() | ||||
sounds['gayTheme3']:stop() | sounds['gayTheme3']:stop() | ||||
@@ -17,8 +17,8 @@ function musicController(orders, toggling) | |||||
sounds['gayTheme']:setLooping(true) | sounds['gayTheme']:setLooping(true) | ||||
sounds['gayTheme']:setVolume(0.5) | sounds['gayTheme']:setVolume(0.5) | ||||
sounds['gayTheme']:play() | sounds['gayTheme']:play() | ||||
elseif gameState == 'play' and player1score > ptw-2 or player2score > ptw-2 and areanuclear == 0 then | |||||
--print(ptw-2) | |||||
elseif gameState == 'play' and player1score > ptw*0.8 or player2score > ptw*0.8 and areanuclear == 0 then | |||||
--print(ptw*0.8) | |||||
sounds['gayTheme']:stop() | sounds['gayTheme']:stop() | ||||
sounds['gayTheme3']:stop() | sounds['gayTheme3']:stop() | ||||
sounds['updateMusic']:stop() | sounds['updateMusic']:stop() | ||||
@@ -26,7 +26,7 @@ function musicController(orders, toggling) | |||||
sounds['gayTheme2']:setLooping(true) | sounds['gayTheme2']:setLooping(true) | ||||
sounds['gayTheme2']:setVolume(0.5) | sounds['gayTheme2']:setVolume(0.5) | ||||
sounds['gayTheme2']:play() | sounds['gayTheme2']:play() | ||||
elseif gameState == 'play' and player1score > ptw-5 or player2score > ptw-5 and areanuclear == 0 then | |||||
elseif gameState == 'play' and player1score > ptw*0.5 or player2score > ptw*0.5 and areanuclear == 0 then | |||||
--print(ptw-4) | --print(ptw-4) | ||||
sounds['gayTheme']:stop() | sounds['gayTheme']:stop() | ||||
sounds['gayTheme2']:stop() | sounds['gayTheme2']:stop() | ||||
@@ -1,4 +1,5 @@ | |||||
function AI(target, ballCnt, diff) | function AI(target, ballCnt, diff) | ||||
print("AI RUNNING") | |||||
currentTarget = evaluateClosestBall(target); | currentTarget = evaluateClosestBall(target); | ||||
--print("CLOSEST TARGET IS " .. currentTarget) | --print("CLOSEST TARGET IS " .. currentTarget) | ||||
if diff < 1200 then | if diff < 1200 then | ||||
@@ -130,9 +131,9 @@ function recursiveCalculations(px, ex, ey, edx, edy, ifspecial) | |||||
--print("SS") | --print("SS") | ||||
local emulatedx = ex + distance * edx | local emulatedx = ex + distance * edx | ||||
local emulatedy = VIRTUAL_HEIGHT-40 | local emulatedy = VIRTUAL_HEIGHT-40 | ||||
print("EMULATED: " .. emulatedx .. " " .. emulatedy) | |||||
--print("EMULATED: " .. emulatedx .. " " .. emulatedy) | |||||
local answer = recursiveCalculations(px, emulatedx, emulatedy, edx, -edy, 0) | local answer = recursiveCalculations(px, emulatedx, emulatedy, edx, -edy, 0) | ||||
print("GOT EMULATION RESULT AS " .. answer) | |||||
--print("GOT EMULATION RESULT AS " .. answer) | |||||
--love.window.setTitle(tostring(answer) .. "recursive calc bottom") | --love.window.setTitle(tostring(answer) .. "recursive calc bottom") | ||||
return answer | return answer | ||||
end | end | ||||
@@ -41,7 +41,7 @@ function basegame(dt) | |||||
for i = 1, maxBalls do | for i = 1, maxBalls do | ||||
if rules("p1hit", i) then | if rules("p1hit", i) then | ||||
if (areanuclear == 0 and striken == 1 and (player1score > ptw-2 or player2score > ptw-2)) then | |||||
if (areanuclear == 0 and striken == 1 and (player1score > ptw*0.8 or player2score > ptw*0.8)) then | |||||
--print("Calling animation") | --print("Calling animation") | ||||
--print("AREA NUCLEAR?" .. areanuclear) | --print("AREA NUCLEAR?" .. areanuclear) | ||||
superanimator("tensehit", 1) | superanimator("tensehit", 1) | ||||
@@ -170,7 +170,7 @@ function basegame(dt) | |||||
shakeDuration = 1 | shakeDuration = 1 | ||||
if | if | ||||
(areanuclear == 0 and | (areanuclear == 0 and | ||||
(striken == 1 and (player1score > ptw-2 or player2score > ptw-2))) | |||||
(striken == 1 and (player1score > ptw*0.8 or player2score > ptw*0.8))) | |||||
then | then | ||||
--print("AREA NUCLEAR?" .. areanuclear) | --print("AREA NUCLEAR?" .. areanuclear) | ||||
superanimator("tensehit", 2) | superanimator("tensehit", 2) | ||||
@@ -356,7 +356,7 @@ end | |||||
function debugCheck(dt) | function debugCheck(dt) | ||||
if (gameState == "menu") then | if (gameState == "menu") then | ||||
updateTEXT = "0.7.8 Chalkboard Update" | |||||
updateTEXT = "0.7.9 Chalkboard" | |||||
end | end | ||||
dangerChecker() | dangerChecker() | ||||
elapsed = elapsed + dt | elapsed = elapsed + dt | ||||
@@ -394,7 +394,7 @@ function goalManager() | |||||
for i = 1, maxBalls do | for i = 1, maxBalls do | ||||
ball[i]:reset(i, 2) | ball[i]:reset(i, 2) | ||||
end | end | ||||
if (player2score == ptw and gameMode ~= "practice") then | |||||
if (player2score+1 >= ptw and gameMode ~= "practice") then | |||||
for i = 1, maxBalls do | for i = 1, maxBalls do | ||||
ball[i]:reset(i) | ball[i]:reset(i) | ||||
end | end | ||||
@@ -436,12 +436,12 @@ function goalManager() | |||||
AI_SPEED = difficultyl | AI_SPEED = difficultyl | ||||
if (player1score == ptw) then | |||||
if (player1score+1 >= ptw) then | |||||
ball[i]:reset(i) | ball[i]:reset(i) | ||||
sounds["win"]:play() | sounds["win"]:play() | ||||
gameState = "done" | gameState = "done" | ||||
TEXT = "Player 1 Won!" | |||||
TEXT = "Player 1 Won" | |||||
else | else | ||||
if globalState ~= "nettest" or (globalState == "nettest" and gameState == "2serve") then | if globalState ~= "nettest" or (globalState == "nettest" and gameState == "2serve") then | ||||
gameState = "2serve" | gameState = "2serve" | ||||
@@ -461,10 +461,11 @@ function goalManager() | |||||
end | end | ||||
function powerAvailability() | function powerAvailability() | ||||
if (player1nukescore >= 20 and player1nukescore < 140) then | |||||
if (player1nukescore >= 20 and player1nukescore < 200) then | |||||
potentialstrike1 = 1 | potentialstrike1 = 1 | ||||
if (((globalState ~= "clienttest" and (love.keyboard.isDown(p1control.super) or doubleclick1 == true)) or (globalState == "clienttest" and lastSentKeyP1 == p1control.super)) ) then | if (((globalState ~= "clienttest" and (love.keyboard.isDown(p1control.super) or doubleclick1 == true)) or (globalState == "clienttest" and lastSentKeyP1 == p1control.super)) ) then | ||||
player1striken = 1 | player1striken = 1 | ||||
doubleclick1 = false | |||||
player1reverbav = 0 | player1reverbav = 0 | ||||
end | end | ||||
end | end | ||||
@@ -476,8 +477,9 @@ function powerAvailability() | |||||
end | end | ||||
if (player1nukescore >= 200) then | if (player1nukescore >= 200) then | ||||
potentialnuke1 = 1 | potentialnuke1 = 1 | ||||
if ((globalState == "clienttest" and (lastSentKeyP1 == p1control.super or doubleclick1 == true))or (globalState ~= "clienttest" and love.keyboard.isDown(p1control.super))) then | |||||
if ((globalState == "clienttest" and (lastSentKeyP1 == p1control.super or doubleclick1 == true))or (globalState ~= "clienttest" and (love.keyboard.isDown(p1control.super) or doubleclick1 == true))) then | |||||
sounds["nuke"]:play() | sounds["nuke"]:play() | ||||
doubleclick1 = false | |||||
if areanuclear == 1 then | if areanuclear == 1 then | ||||
maxspeed = maxspeed + 50 | maxspeed = maxspeed + 50 | ||||
end | end | ||||
@@ -502,12 +504,13 @@ function powerAvailability() | |||||
potentialnuke1 = 0 | potentialnuke1 = 0 | ||||
end | end | ||||
end | end | ||||
if (player2nukescore >= 20 and player2nukescore <= 140) then | |||||
if (player2nukescore >= 20 and player2nukescore < 200) then | |||||
potentialstrike2 = 1 | potentialstrike2 = 1 | ||||
if (AGAINST_AI == 0) then | if (AGAINST_AI == 0) then | ||||
if ((globalState ~= "nettest" and (love.keyboard.isDown(p2control.super) or doubleclick2)) or lastSentKeyClient == p2control.super ) then | if ((globalState ~= "nettest" and (love.keyboard.isDown(p2control.super) or doubleclick2)) or lastSentKeyClient == p2control.super ) then | ||||
player2striken = 1 | player2striken = 1 | ||||
player2reverbav = 0 | player2reverbav = 0 | ||||
doubleclick2 = false | |||||
end | end | ||||
end | end | ||||
end | end | ||||
@@ -529,6 +532,7 @@ function powerAvailability() | |||||
potentialnuke2 = 1 | potentialnuke2 = 1 | ||||
if (((globalState ~= "nettest" and (love.keyboard.isDown(p2control.super) or doubleclick2)) or lastSentKeyClient == p2control.super)) and AGAINST_AI == 0 then | if (((globalState ~= "nettest" and (love.keyboard.isDown(p2control.super) or doubleclick2)) or lastSentKeyClient == p2control.super)) and AGAINST_AI == 0 then | ||||
sounds["nuke"]:play() | sounds["nuke"]:play() | ||||
doubleclick2 = false | |||||
if areanuclear == 1 then | if areanuclear == 1 then | ||||
maxspeed = maxspeed + 50 | maxspeed = maxspeed + 50 | ||||
end | end | ||||
@@ -591,6 +595,20 @@ function nuclearDraw() | |||||
player2:render() | player2:render() | ||||
end | end | ||||
function winDraw(who) | |||||
love.graphics.setColor(0, 0, 0, 1) | |||||
if who == 1 then | |||||
love.graphics.circle("fill", player2.x, player2.y, explosionRange * 100, 100) | |||||
print("cicrleexplostion at " .. explosionRange) | |||||
else | |||||
love.graphics.circle("fill", player1.x, player1.y, explosionRange * 100, 100) | |||||
end | |||||
love.graphics.setColor(1, 1, 1, 1) | |||||
love.graphics.printf(TEXT, 0, 20, VIRTUAL_WIDTH, "center") | |||||
end | |||||
function normalDraw() | function normalDraw() | ||||
if (areanuclear == 1) then | if (areanuclear == 1) then | ||||
love.graphics.clear(1, 1, 1, 1) | love.graphics.clear(1, 1, 1, 1) | ||||
@@ -724,6 +742,7 @@ function menuDraw() | |||||
AGAINST_AI = 0 | AGAINST_AI = 0 | ||||
gameState = "1serve" | gameState = "1serve" | ||||
ball[1]:reset(1, 1) | ball[1]:reset(1, 1) | ||||
player2.dy = 0 | |||||
end | end | ||||
) | ) | ||||
) | ) | ||||
@@ -751,6 +770,7 @@ function menuDraw() | |||||
AGAINST_AI = 0 | AGAINST_AI = 0 | ||||
gameState = "1serve" | gameState = "1serve" | ||||
ball[1]:reset(1, 1) | ball[1]:reset(1, 1) | ||||
player2.dy = 0 | |||||
end | end | ||||
) | ) | ||||
) | ) | ||||
@@ -766,6 +786,7 @@ function menuDraw() | |||||
AGAINST_AI = 0 | AGAINST_AI = 0 | ||||
gameState = "1serve" | gameState = "1serve" | ||||
ball[1]:reset(1, 1) | ball[1]:reset(1, 1) | ||||
player2.dy = 0 | |||||
end | end | ||||
) | ) | ||||
) | ) | ||||
@@ -837,25 +858,37 @@ function baseDraw() | |||||
if gameState == 'nuclearExplosion' then | if gameState == 'nuclearExplosion' then | ||||
nuclearDraw() | nuclearDraw() | ||||
end | end | ||||
if gameState == 'play' or gameState == '1serve' or gameState == '2serve' or gameState == 'done' then | if gameState == 'play' or gameState == '1serve' or gameState == '2serve' or gameState == 'done' then | ||||
--print("Drawing normally") | --print("Drawing normally") | ||||
normalDraw() | normalDraw() | ||||
end | end | ||||
if gameState == 'done' and player1score > player2score then | |||||
winDraw(1) | |||||
elseif gameState == 'done' and player1score < player2score then | |||||
winDraw(2) | |||||
end | |||||
end | end | ||||
if paused then | |||||
mymenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, pauseButtons, sounds, "middle") | |||||
love.keyboard.mouseisReleased = false | |||||
end | |||||
if gameState == "done" then | |||||
mymenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, doneButtons, sounds, "middle") | |||||
love.keyboard.mouseisReleased = false | |||||
end | |||||
end | end | ||||
function androidDraw() | function androidDraw() | ||||
--HOME BUTTON HERE | --HOME BUTTON HERE | ||||
mymenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, androidButtons, sounds, "android") | mymenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, androidButtons, sounds, "android") | ||||
if showTouchControls then | if showTouchControls then | ||||
love.graphics.setColor(15/255, 255/255, 15/255, 0.5) | love.graphics.setColor(15/255, 255/255, 15/255, 0.5) | ||||
love.graphics.rectangle("fill", 0, 0, 50, VIRTUAL_HEIGHT) | |||||
love.graphics.rectangle("fill", 0, 0, 100, VIRTUAL_HEIGHT) | |||||
love.graphics.setColor(15/255, 255/255, 15/255, 0.5) | love.graphics.setColor(15/255, 255/255, 15/255, 0.5) | ||||
love.graphics.rectangle("fill", VIRTUAL_WIDTH-50, 0, 50, VIRTUAL_HEIGHT) | |||||
love.graphics.rectangle("fill", VIRTUAL_WIDTH-100, 0, 50, VIRTUAL_HEIGHT) | |||||
love.graphics.setColor(255/255, 15/255, 15/255, 0.5) | love.graphics.setColor(255/255, 15/255, 15/255, 0.5) | ||||
love.graphics.rectangle("fill", 50, 0, VIRTUAL_WIDTH/2-50, VIRTUAL_HEIGHT) | |||||
love.graphics.rectangle("fill", VIRTUAL_WIDTH/2, 0, VIRTUAL_WIDTH/2-50, VIRTUAL_HEIGHT) | |||||
love.graphics.rectangle("fill", 100, 0, VIRTUAL_WIDTH/2-100, VIRTUAL_HEIGHT) | |||||
love.graphics.rectangle("fill", VIRTUAL_WIDTH/2, 0, VIRTUAL_WIDTH/2-100, VIRTUAL_HEIGHT) | |||||
love.graphics.setColor(0, 0, 0, 0.5) | love.graphics.setColor(0, 0, 0, 0.5) | ||||
love.graphics.rectangle("fill", VIRTUAL_WIDTH/2-5, 0, 10, VIRTUAL_HEIGHT) | love.graphics.rectangle("fill", VIRTUAL_WIDTH/2-5, 0, 10, VIRTUAL_HEIGHT) | ||||
end | end | ||||
@@ -1061,14 +1094,14 @@ function rules(query, i) | |||||
if gameMode == "reversegame" then | if gameMode == "reversegame" then | ||||
return ball[i]:collides(player1) | return ball[i]:collides(player1) | ||||
elseif gameMode == "normal" then | elseif gameMode == "normal" then | ||||
return ball[i].x < 0 and ball[i].disabled == false | |||||
return ball[i].x < -10 and ball[i].disabled == false | |||||
end | end | ||||
end | end | ||||
if query == "p2miss" then | if query == "p2miss" then | ||||
if gameMode == "reversegame" then | if gameMode == "reversegame" then | ||||
return ball[i]:collides(player2) | return ball[i]:collides(player2) | ||||
elseif gameMode == "normal" then | elseif gameMode == "normal" then | ||||
return ball[i].x > VIRTUAL_WIDTH-10 and ball[i].disabled == false | |||||
return ball[i].x > VIRTUAL_WIDTH and ball[i].disabled == false | |||||
end | end | ||||
end | end | ||||
end | end | ||||
@@ -1116,7 +1149,7 @@ function clientsBaseGame(dt) | |||||
for i = 1, maxBalls do | for i = 1, maxBalls do | ||||
if rules("p1hit", i) then | if rules("p1hit", i) then | ||||
if (areanuclear == 0 and striken == 1 and (player1score > ptw-2 or player2score > ptw-2)) then | |||||
if (areanuclear == 0 and striken == 1 and (player1score > ptw*0.8 or player2score > ptw*0.8)) then | |||||
--print("Calling animation") | --print("Calling animation") | ||||
superanimator("tensehit", 1) | superanimator("tensehit", 1) | ||||
--print("AREA NUCLEAR?" .. areanuclear) | --print("AREA NUCLEAR?" .. areanuclear) | ||||
@@ -1188,7 +1221,7 @@ function clientsBaseGame(dt) | |||||
shakeDuration = 1 | shakeDuration = 1 | ||||
if | if | ||||
(areanuclear == 0 and | (areanuclear == 0 and | ||||
(striken == 1 and (player1score > ptw-2 or player2score > ptw-2))) | |||||
(striken == 1 and (player1score > ptw*0.8 or player2score > ptw*0.8))) | |||||
then | then | ||||
--print("AREA NUCLEAR?" .. areanuclear) | --print("AREA NUCLEAR?" .. areanuclear) | ||||
superanimator("tensehit", 2) | superanimator("tensehit", 2) | ||||
@@ -1467,7 +1500,6 @@ function menuDemo(dt) | |||||
end | end | ||||
ball[1].x = player2.x-8 | ball[1].x = player2.x-8 | ||||
ball[1].dx = -ball[1].dx | ball[1].dx = -ball[1].dx | ||||
ball[1].dy = -ball[1].dy | |||||
end | end | ||||
if ball[1].x <= player1.x+7 then | if ball[1].x <= player1.x+7 then | ||||
sounds["beep"]:setPitch(ballSpeed / 250) | sounds["beep"]:setPitch(ballSpeed / 250) | ||||
@@ -1502,7 +1534,6 @@ function menuDemo(dt) | |||||
end | end | ||||
ball[1].x = player1.x+8 | ball[1].x = player1.x+8 | ||||
ball[1].dx = -ball[1].dx | ball[1].dx = -ball[1].dx | ||||
ball[1].dy = -ball[1].dy | |||||
end | end | ||||
if ball[1].y <= 0 then | if ball[1].y <= 0 then | ||||
@@ -2,3 +2,4 @@ VIRTUAL_WIDTH = 1280 | |||||
VIRTUAL_HEIGHT = 720 | VIRTUAL_HEIGHT = 720 | ||||
WINDOW_WIDTH = 1280 | WINDOW_WIDTH = 1280 | ||||
WINDOW_HEIGHT = 720 | WINDOW_HEIGHT = 720 | ||||
isAndroid = true |