From 31e43b98bc1f839425b0e3106c2040417498c9f9 Mon Sep 17 00:00:00 2001 From: Madiwka3 Date: Mon, 28 Sep 2020 10:20:13 +0600 Subject: [PATCH] changed intro and main menu --- Madi.png | Bin 82439 -> 42580 bytes animator.lua | 12 ++-- eball.lua | 5 +- main.lua | 166 +++++++++++++++++++++++++++---------------- mainMenu.lua | 10 ++- music.lua | 4 +- paddle.lua | 12 ++++ src/AI.lua | 58 ++++++++++----- src/baseGame.lua | 153 ++++++++++++++++++++++++++++++++------- src/constantvars.lua | 1 - 10 files changed, 304 insertions(+), 117 deletions(-) diff --git a/Madi.png b/Madi.png index c9e9bbd858092cebd35df412a36edb240e081f98..ef698e295af51f6be203e3e6c66d382375bf5111 100644 GIT binary patch literal 42580 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 literal 82439 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 diff --git a/animator.lua b/animator.lua index 0ff97ea..94e1153 100644 --- a/animator.lua +++ b/animator.lua @@ -7,11 +7,11 @@ local diseffectRange = {[0] = 0,[1] = 0} function superanimator(type, param) if type == 'tensehit' then if param == 1 then - print("Animation called!") + --print("Animation called!") player1anim = true end if param == 2 then - print("Animation called!") + --print("Animation called!") player2anim = true end end @@ -37,14 +37,14 @@ function staticanimatorcounter(dt) end end if (player1anim) then - print("Effect range: " .. effectRange[0]) + --print("Effect range: " .. effectRange[0]) effectRange[0] = effectRange[0] + dt*24 if effectRange[0] > 7500/ballSpeed then player1animend = true end end if player1animend then - print("DISEffect range: " .. diseffectRange[0]) + --print("DISEffect range: " .. diseffectRange[0]) diseffectRange[0] = diseffectRange[0] + dt*24 if diseffectRange[0] > 50 then effectRange[0] = 0 @@ -54,14 +54,14 @@ function staticanimatorcounter(dt) end end if (player2anim) then - print("Effect range: " .. effectRange[1]) + --print("Effect range: " .. effectRange[1]) effectRange[1] = effectRange[1] + dt*24 if effectRange[1] > 7500/ballSpeed then player2animend = true end end if player2animend then - print("DISEffect range: " .. diseffectRange[1]) + --print("DISEffect range: " .. diseffectRange[1]) diseffectRange[1] = diseffectRange[1] + dt*24 if diseffectRange[1] > 50 then effectRange[1] = 0 diff --git a/eball.lua b/eball.lua index 136c63e..a291c62 100644 --- a/eball.lua +++ b/eball.lua @@ -10,6 +10,7 @@ function eball:init(x, y, width, height) self.dy = math.random(-1, 1) self.dx = 1 self.disabled = false + end function eball:collides(paddle) @@ -98,9 +99,9 @@ function eball:update(dt) else potentialnuke2 = 0 end - print("ATTEMP TO UPDATE BALL") + --print("ATTEMP TO UPDATE BALL") if self.disabled == false then - print("BALL IS BEING AUTO-UPDATED") + --print("BALL IS BEING AUTO-UPDATED" .. ballSpeed .. " " .. self.dx .. " " .. self.dy) self.x = self.x + ballSpeed * self.dx * dt self.y = self.y + ballSpeed * self.dy * dt end diff --git a/main.lua b/main.lua index 201b3aa..4d64f9a 100644 --- a/main.lua +++ b/main.lua @@ -34,6 +34,7 @@ blockinput = false wall1width = 30 nuclearanimation = 3 easternum = 0 +qq = 0 ball_DIR = 0 updaterate = 0.015 RED = 255 @@ -187,6 +188,9 @@ function love.load() if gameState == "start" then resettinggenius() gameState = "menu" + ball[1].dx = 1 + ball_DIR = 1 + ball[1].dy = 1 globalState = "menu" hardmanager() elseif (gameState == "done") then @@ -212,6 +216,9 @@ function love.load() 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" @@ -648,7 +655,7 @@ function love.load() function() speedSetter("reset") gameState = "menu" - + end ) ) @@ -809,7 +816,8 @@ function love.update(dt) --print("IMPORTANT!!!!!" .. globalState .. gameState) staticanimatorcounter(dt) - musicController('norm', 1) + player1.goal = -1 + player2.goal = -1 if gameState == "chooseIP" then checkCurrentServer(dt) end @@ -818,11 +826,18 @@ function love.update(dt) end if globalState == "base" then basegame(dt) + end if globalState == "menu" then debugCheck(dt) + if gameState ~= "animation" then + menuDemo(dt) + end + end + if gameState ~= "animation" then + musicController('norm', 1) + end - if globalState == "nettest" then --print("Confcode: " .. confirmation) if confirmation == "N" then @@ -863,11 +878,11 @@ function love.textinput(t) end end function nettest(dt) - print("nettest running") + --print("nettest running") if serverinit == false then local socket = require "socket" local address, port = IP, 12345 - print(address) + --print(address) udp = socket.udp() udp:setpeername(address, port) udp:settimeout(0) @@ -896,6 +911,7 @@ function nettest(dt) '|' .. tostring(ballSpeed) .. '|' .. tostring(paddle_SPEED) .. '|' .. tostring(player1striken) .. + '|' .. tostring(areanuclear) .. "|HOST") ts = 0 end @@ -906,18 +922,18 @@ function nettest(dt) local datawaspassed = false repeat datanumtest = datanumtest + 1 - print("LATENCY: " .. tostring(datanumtest)) + --print("LATENCY: " .. tostring(datanumtest)) data = udp:receive() if data then datawaspassed = true - print("ReceivedINFO: " .. data) + --print("ReceivedINFO: " .. data) confirmation = "N" local p = split(data, '|') - if p[16] then - if tonumber(p[17]) > 90 then + if p[17] then + if tonumber(p[18]) > 90 then confirmation = "L" end - if p[16] ~= "CLIENT" then + if p[17] ~= "CLIENT" then confirmation = "U" end elseif p[1] == "RESPONSE" then @@ -931,10 +947,10 @@ function nettest(dt) confirmation = "U" end - if p[16] then + if p[17] then if ball[1].disabled and ball[1].x > 20 and ball[1].x < VIRTUAL_WIDTH - 20 then ball[1].disabled = false - print("illegal disabling") + --print("illegal disabling") end if gameState ~= "1serve" then if (ball[1].x > VIRTUAL_WIDTH/2) then @@ -953,10 +969,11 @@ function nettest(dt) ball[1].dx, ballSpeed, paddle_SPEED, - player2striken = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]) - print("ACCEPTED") + player2striken, + areanuclear = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]), tonumber(p[16]) + --print("ACCEPTED") else - print("DECLINED") + --print("DECLINED") end else if tonumber(p[9]) > VIRTUAL_WIDTH/2 then @@ -973,10 +990,11 @@ function nettest(dt) gameState, ball[1].dx, ballSpeed, - paddle_SPEED, player2striken = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]) - print("ACCEPTED") + paddle_SPEED, player2striken, + areanuclear = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]), tonumber(p[16]) + --print("ACCEPTED") else - print("ENFORCED" .. ball[1].x .. " " .. ball[1].dx) + --print("ENFORCED" .. ball[1].x .. " " .. ball[1].dx) lastSentKeyClient = p[1] player2striken = tonumber(p[15]) player2.y = tonumber(p[4]) @@ -1028,6 +1046,7 @@ function clienttest(dt) '|' .. tostring(ballSpeed) .. '|' .. tostring(paddle_SPEED) .. '|' .. tostring(player2striken) .. + '|' .. tostring(areanuclear) .. "|CLIENT") ts = 0 end @@ -1036,17 +1055,17 @@ function clienttest(dt) local datawaspassed = false repeat datanumtest = datanumtest + 1 - print("LATENCY: " .. tostring(datanumtest)) + --print("LATENCY: " .. tostring(datanumtest)) data = udp:receive() if data then - print("RECEIVED DATA: " .. data) + --print("RECEIVED DATA: " .. data) datawaspassed = true - print("SENT TO SERVER:" .. lastSentKey) + --print("SENT TO SERVER:" .. lastSentKey) confirmation = "N" local p = split(data, '|') - if p[16] then - if p[16] ~= "HOST" then + if p[17] then + if p[18] ~= "HOST" then confirmation = "U" end if tonumber(p[17]) > 90 then @@ -1056,19 +1075,19 @@ function clienttest(dt) local die = tonumber(p[2]) if (ball[i].x <= VIRTUAL_WIDTH/2) then if tonumber(p[9]) <= VIRTUAL_WIDTH/2 then - lastSentKeyClient, ball[i].dy, player1.y, player1score, player2score, player1nukescore, player2nukescore, ball[i].x, ball[i].y, gameState, ball[i].dx, ballSpeed, paddle_SPEED, player1striken = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]) - print("ACCEPTED") + lastSentKeyClient, ball[i].dy, player1.y, player1score, player2score, player1nukescore, player2nukescore, ball[i].x, ball[i].y, gameState, ball[i].dx, ballSpeed, paddle_SPEED, player1striken, areanuclear = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]), tonumber(p[16]) + --print("ACCEPTED") else - print("DECLINED") + --print("DECLINED") end else if tonumber(p[9]) <= VIRTUAL_WIDTH/2 then - lastSentKeyClient, ball[i].dy, player1.y, player1score, player2score, player1nukescore, player2nukescore, ball[i].x, ball[i].y, gameState, ball[i].dx, ballSpeed, paddle_SPEED, player1striken = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]) - print("REROUTED") + lastSentKeyClient, ball[i].dy, player1.y, player1score, player2score, player1nukescore, player2nukescore, ball[i].x, ball[i].y, gameState, ball[i].dx, ballSpeed, paddle_SPEED, player1striken, areanuclear = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]), tonumber(p[16]) + --print("REROUTED") else lastSentKeyClient = p[1] player1.y = tonumber(p[4]) player1striken = tonumber(p[15]) - print("ENFORCED") + --print("ENFORCED") end end end @@ -1076,7 +1095,7 @@ function clienttest(dt) confirmation = "U" end end - print("GOT: " .. lastSentKeyClient) + --print("GOT: " .. lastSentKeyClient) until not data if not datawaspassed then datawaspassedtimer = datawaspassedtimer + 1 @@ -1279,6 +1298,8 @@ function love.keypressed(key) if gameState == "start" then resettinggenius() gameState = "menu" + ball[1].dx = 1 + ball[1].dy = 1 globalState = "menu" hardmanager() elseif (gameState == "done") then @@ -1304,6 +1325,8 @@ function love.keypressed(key) end else gameState = "menu" + ball[1].dx = 1 + ball[1].dy = 1 globalState = "menu" if (love.math.random(0, 20) == 1) then TEXT = "Nuclear Ching Chong" @@ -1599,7 +1622,10 @@ function love.draw(dt) love.graphics.printf("INTERNAL SERVER WAITING", 0, VIRTUAL_HEIGHT / 2, VIRTUAL_WIDTH, "center") love.graphics.printf(myip, 0, VIRTUAL_HEIGHT / 2 + 120, VIRTUAL_WIDTH, "center") end - + if isAndroid then + androidDraw() + love.keyboard.mouseisReleased = false + end simpleScale.unSet() end @@ -1662,6 +1688,7 @@ function serveBot() --THIS IS USED TO CHANGE TEXT/BALL DIRECTION ON DIFFERENT SE end if ((globalState ~= "clienttest" and love.keyboard.isDown("q")) or (globalState == "clienttest" and lastSentKeyP1 == "q") or doubleclick1) then TEXT = "Lets Begin!" + doubleclick1 = false ball_DIR = 1 if maxBalls == 1 then ball[1]:reset(1, 1) @@ -1684,6 +1711,7 @@ function serveBot() --THIS IS USED TO CHANGE TEXT/BALL DIRECTION ON DIFFERENT SE end if (AGAINST_AI == 1) then TEXT = "" + doubleclick2 = false ball_DIR = -1 if maxBalls == 1 then ball[2]:reset(i, 2) @@ -1698,6 +1726,7 @@ function serveBot() --THIS IS USED TO CHANGE TEXT/BALL DIRECTION ON DIFFERENT SE end if (((globalState == "nettest" and lastSentKeyClient == "p") or ((globalState ~= "nettest") and love.keyboard.isDown("p")) or doubleclick2)and AGAINST_AI == 0) then TEXT = "Lets Begin" + doubleclick2 = false ball_DIR = -1 if maxBalls == 1 then ball[1]:reset(1, 2) @@ -1757,6 +1786,9 @@ function resettinggenius() ts = 0 originalSpeed = 200 gameState = "menu" + ball[1].dx = 1 + ball_DIR = 1 + ball[1].dy = 1 globalState = "menu" gameMode = "normal" player1.height = 100 @@ -1795,7 +1827,7 @@ end function ballsAlive() for i = 1, maxBalls do if ball[i].disabled == false then - print("Ball " .. i .. " is not disabled") + --print("Ball " .. i .. " is not disabled") return true end end @@ -1815,32 +1847,32 @@ function checkCurrentServer(dt) end if GetIPType(IP) == 1 then if dserverinit == false then - print("Switching IP") + --print("Switching IP") socket = require "socket" address, port = IP, 12345 - print(address) + --print(address) udp = socket.udp() udp:setpeername(address, port) udp:settimeout(0) dserverinit = true end - if IP ~= address then dserverinit = false print(IP .. " doesnt equal " .. address) + if IP ~= address then dserverinit = false--print(IP .. " doesnt equal " .. address) else ts = ts + dt --print(ts) if ts > checkrate then status = "offline" - print("sent ping") + --print("sent ping") udp:send("HELLO") local data data = udp:receive() if data then - print("got answer!") + --print("got answer!") local p = split(data, '|') status = p[1] - print("answer is " .. status) + --print("answer is " .. status) else - print("no response!") + --print("no response!") end ts = 0 end @@ -1859,7 +1891,7 @@ local p2ping = 0 local requesterip local requresterport function selfHost(dt) - print("Server running") + --print("Server running") if not hostinit then local socket = require('socket') udp = socket.udp() @@ -1884,11 +1916,11 @@ end if data then if data == "HELLO" then - print("getting pinged") + --print("getting pinged") requesterip = msg_or_ip requesterport = port_or_nil else - print(string.sub(data,1,1) .. "Playerlist: " .. player1ip .. " " .. player2ip) + --print(string.sub(data,1,1) .. "Playerlist: " .. player1ip .. " " .. player2ip) if player2ip == msg_or_ip then p2data = data .. '|' .. p2ping p2ping = 0 @@ -1898,9 +1930,9 @@ end p2data = data .. '|' .. p2ping p2ping = 0 player2port = port_or_nil - print("CONNECTED: PLAYER 2 FROM: " .. player2ip) + --print("CONNECTED: PLAYER 2 FROM: " .. player2ip) elseif (player1ip ~= msg_or_ip and player2ip ~= msg_or_ip) then - print("Lobby Full!" .. player1ip .. player2ip) + --print("Lobby Full!" .. player1ip .. player2ip) end end @@ -1913,7 +1945,7 @@ end if player2ip == "none" then confirmation = "S" else - print("Player2: " .. player2ip) + --print("Player2: " .. player2ip) p2ping = p2ping + 1 if p2ping > 100 then for i = 1, maxBalls do @@ -1934,11 +1966,12 @@ end '|' .. tostring(ballSpeed) .. '|' .. tostring(paddle_SPEED) .. '|' .. tostring(player1striken) .. + '|' .. tostring(areanuclear) .. "|HOST|".. p2ping, player2ip, player2port) ts = 0 end end - print("PLAYER 2 DISCONNECTED") + --print("PLAYER 2 DISCONNECTED") p2data = nil player2ip = "none" player2port = nil @@ -1963,24 +1996,25 @@ end '|' .. tostring(ballSpeed) .. '|' .. tostring(paddle_SPEED) .. '|' .. tostring(player1striken) .. + '|' .. tostring(areanuclear) .. "|HOST|".. p2ping, player2ip, player2port) ts = 0 end end - print("SENT TO " .. player2ip .. ":" .. player2port .. " : " ..lastSentKey) + --print("SENT TO " .. player2ip .. ":" .. player2port .. " : " ..lastSentKey) end local datanumtest = 0 local datawaspassed = false if p2data and player1port then datawaspassed = true - print("ReceivedINFO: " .. p2data) + --print("ReceivedINFO: " .. p2data) confirmation = "N" local p = split(p2data, '|') - if p[16] then - if tonumber(p[17]) > 90 then + if p[17] then + if tonumber(p[18]) > 90 then confirmation = "L" end - if p[16] ~= "CLIENT" then + if p[17] ~= "CLIENT" then confirmation = "U" end elseif p[1] == "RESPONSE" then @@ -1994,10 +2028,10 @@ end confirmation = "U" end - if p[16] then + if p[17] then if ball[1].disabled and ball[1].x > 20 and ball[1].x < VIRTUAL_WIDTH - 20 then ball[1].disabled = false - print("illegal disabling") + --print("illegal disabling") end if gameState ~= "1serve" then if (ball[1].x > VIRTUAL_WIDTH/2) then @@ -2015,10 +2049,11 @@ end gameState, ball[1].dx, ballSpeed, - paddle_SPEED, player2striken = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]) - print("ACCEPTED") + paddle_SPEED, player2striken, + areanuclear = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]), tonumber(p[16]) + --print("ACCEPTED") else - print("DECLINED") + --print("DECLINED") end else if tonumber(p[9]) > VIRTUAL_WIDTH/2 then @@ -2035,10 +2070,11 @@ end gameState, ball[1].dx, ballSpeed, - paddle_SPEED, player2striken = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]) - print("ACCEPTED") + paddle_SPEED, player2striken, + areanuclear = p[1], die, tonumber(p[4]), tonumber(p[5]), tonumber(p[6]), tonumber(p[7]), tonumber(p[8]), tonumber(p[9]), tonumber(p[10]), p[11], tonumber(p[12]), tonumber(p[13]), tonumber(p[14]), tonumber(p[15]), tonumber(p[16]) + --print("ACCEPTED") else - print("ENFORCED" .. ball[1].x .. " " .. ball[1].dx) + --print("ENFORCED" .. ball[1].x .. " " .. ball[1].dx) lastSentKeyClient = p[1] player2.y = tonumber(p[4]) player2striken = tonumber(p[15]) @@ -2046,20 +2082,20 @@ end end end end - print("SENT TO " .. player1ip .. ":" .. player1port .. " : " .. string.sub(p2data,1,1)) + --print("SENT TO " .. player1ip .. ":" .. player1port .. " : " .. string.sub(p2data,1,1)) --print("1::" .. p1data) --print("2::" .. p2data) --print("SENT1: " .. player2ip .. " " .. player2port .. " " .. p1data) --print("SENT2: " .. player1ip .. " " .. player1port .. " " .. p2data) end if requesterip then - print("getting pnged!") + --print("getting pnged!") if player2ip == "none" then udp:sendto("clienttest", requesterip, requesterport) - print("clienttest av to: " .. requesterip) + --print("clienttest av to: " .. requesterip) else udp:sendto("full", requesterip, requesterport) - print("full to: " .. msg_or_ip) + --print("full to: " .. msg_or_ip) end requesterip, requesterport = nil end @@ -2111,6 +2147,9 @@ function love.touchreleased( id, x, y, dx, dy, pressure ) if gameState == "start" then resettinggenius() gameState = "menu" + ball[1].dx = 1 + ball_DIR = 1 + ball[1].dy = 1 globalState = "menu" hardmanager() @@ -2137,6 +2176,7 @@ function love.touchmoved( id, x, y, dx, dy, pressure ) if touches[existsingID].x - touches[existsingID].originalX > 200 and touches[existsingID].originalX > VIRTUAL_WIDTH/2 then hold2 = true + lastSentKey = p2control.counter else hold2 = false diff --git a/mainMenu.lua b/mainMenu.lua index 15a283d..f576c4b 100644 --- a/mainMenu.lua +++ b/mainMenu.lua @@ -105,8 +105,13 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds if (hot == i) then color = {10, 10, 0, 255} end - button.now = love.keyboard.mouseWasReleased() - if button.now and not button.last and hot == i then + --print(love.keyboard.mouseisReleased) + + button.now = love.keyboard.mouseisReleased + if location == "android" then + button.now = love.mouse.isDown(1) + end + if button.now and hot == i then love.graphics.setColor(0,0,0,1) love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) sounds['wallhit']:play() @@ -183,6 +188,7 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds end end end + love.keyboard.mouseisReleased = false end function mainMenu:addButton(text, fn) return { diff --git a/music.lua b/music.lua index 086cb14..ff63eb7 100644 --- a/music.lua +++ b/music.lua @@ -18,7 +18,7 @@ function musicController(orders, toggling) sounds['gayTheme']:setVolume(0.5) sounds['gayTheme']:play() elseif gameState == 'play' and player1score > ptw-2 or player2score > ptw-2 and areanuclear == 0 then - print(ptw-2) + --print(ptw-2) sounds['gayTheme']:stop() sounds['gayTheme3']:stop() sounds['updateMusic']:stop() @@ -27,7 +27,7 @@ function musicController(orders, toggling) sounds['gayTheme2']:setVolume(0.5) sounds['gayTheme2']:play() elseif gameState == 'play' and player1score > ptw-5 or player2score > ptw-5 and areanuclear == 0 then - print(ptw-4) + --print(ptw-4) sounds['gayTheme']:stop() sounds['gayTheme2']:stop() sounds['updateMusic']:stop() diff --git a/paddle.lua b/paddle.lua index 806e868..e8f2c69 100644 --- a/paddle.lua +++ b/paddle.lua @@ -14,9 +14,20 @@ function paddle:init(x, y, width, height, player) self.velocity = 0 self.shadowbonus = 0 self.player = player + self.goal = -1 end function paddle:update(dt) + if self.goal ~= -1 then + if self.y+self.height/2 - self.goal > 10 then + self.dy = -paddle_SPEED + elseif self.goal - (self.y+self.height/2) > 10 then + self.dy = paddle_SPEED + else + self.dy = 0 + end + + end --love.window.setTitle(tostring(player1.velocity * dt) .. " " .. tostring(player1.dy) .. " " .. tostring(dt) ) if areanuclear == 0 then self.RED = 1 @@ -67,6 +78,7 @@ function paddle:update(dt) end + end diff --git a/src/AI.lua b/src/AI.lua index 9ea73dd..b203101 100644 --- a/src/AI.lua +++ b/src/AI.lua @@ -3,26 +3,42 @@ function AI(target, ballCnt, diff) --print("CLOSEST TARGET IS " .. currentTarget) if diff < 1200 then --print ("Normal targeting ".. currentTarget .. " " .. target.x - ball[currentTarget].x .. " " .. ball[currentTarget].y - target.y) - if (ball[currentTarget].y - target.y >= target.height and target.x - ball[currentTarget].x < diff) then + if (ball[currentTarget].y - target.y >= target.height and math.abs(target.x - ball[currentTarget].x) < diff) then target.dy = AI_SPEED - elseif (target.y - ball[currentTarget].y >= -target.height/2 and target.x - ball[currentTarget].x < diff) then + elseif (target.y - ball[currentTarget].y >= -target.height/2 and math.abs(target.x - ball[currentTarget].x) < diff) then target.dy = -AI_SPEED else target.dy = 0 end else --print("Complex targeting") - + if target.x < 100 then neededTarget = predictBall(ball[currentTarget], target.x) + --print(target.x .. " found " .. neededTarget) if neededTarget ~= -1 then --print("Calculated target = " .. neededTarget) - if (target.y - neededTarget >= -target.height/2) then + if (target.y + target.height/2 - neededTarget >= 15) then target.dy = -AI_SPEED elseif (neededTarget - target.y >= target.height*0.9) then target.dy = AI_SPEED else target.dy = 0 end + end + else + neededTarget1 = predictBall(ball[currentTarget], target.x) + --print(target.x .. " found " .. neededTarget) + if neededTarget1 ~= -1 then + --print("Calculated target = " .. neededTarget) + if (target.y + target.height/2 - neededTarget1 >= 10) then + target.dy = -AI_SPEED + elseif (neededTarget1 - (target.y+target.height/2) >= 10) then + target.dy = AI_SPEED + else + target.dy = 0 + end + + end end end if @@ -79,10 +95,13 @@ function evaluateClosestBall(target) end function predictBall(target, px) --print("BALLSTATS:" .. target.x .. " " .. target.y) - if target.dx > 0 then + if target.dx > 0 and px > 100 then local ans = recursiveCalculations(px, target.x, target.y, target.dx, target.dy, 1) return ans - else + elseif target.dx < 0 and px < 100 then + local ans = recursiveCalculations(px, target.x, target.y, target.dx, target.dy, 1) + return ans + else --print("GO TO CENTER!!") return VIRTUAL_HEIGHT/2 end @@ -91,10 +110,12 @@ function recursiveCalculations(px, ex, ey, edx, edy, ifspecial) if (edy > 0) then --print ("normal" .. ex .." " .. ey .. " " .. edx .. " " .. edy) local time = (VIRTUAL_HEIGHT-40-ey) / (ballSpeed * edy) - local distance = (ballSpeed * edx) * time - --print(distance .. " " .. edx .. " " .. time .. " " .. (px-ex)) - if distance > (px - ex) then - local anstime = (px - ex) / (ballSpeed * edx) + + local distance = math.abs(ballSpeed * edx) * time + print("DOWNWARD" .. distance .. " " .. edx .. " " .. time .. " " .. math.abs(px-ex)) + if distance > math.abs(px - ex) then + print("QQ") + local anstime = math.abs(px - ex) / math.abs(ballSpeed * edx) local bonus = (ballSpeed * edy) * anstime --print("results: " .. bonus .. " " .. edx .. " " .. anstime .. " " .. (px-ex)) -- if (ifspecial == 0) then @@ -106,9 +127,12 @@ function recursiveCalculations(px, ex, ey, edx, edy, ifspecial) -- return -1 --end else - local emulatedx = ex + distance + print("SS") + local emulatedx = ex + distance * edx local emulatedy = VIRTUAL_HEIGHT-40 + print("EMULATED: " .. emulatedx .. " " .. emulatedy) local answer = recursiveCalculations(px, emulatedx, emulatedy, edx, -edy, 0) + print("GOT EMULATION RESULT AS " .. answer) --love.window.setTitle(tostring(answer) .. "recursive calc bottom") return answer end @@ -117,16 +141,16 @@ function recursiveCalculations(px, ex, ey, edx, edy, ifspecial) else --print ("inverse" .. ex .." " .. ey .. " " .. edx .. " " .. edy) local time = (ey) / math.abs((ballSpeed * edy)) - local distance = (ballSpeed * edx) * time - --print(distance .. " " .. edx .. " " .. time .. " " .. (px-ex)) + local distance = math.abs(ballSpeed * edx) * time + print("UPWARD" .. distance .. " " .. edx .. " " .. time .. " " .. math.abs(px-ex)) --print("Why th efuck ") - if distance > (px - ex) then - local anstime = (px - ex) / (ballSpeed * edx) + if distance > math.abs(px - ex) then + local anstime = math.abs(px - ex) / math.abs(ballSpeed * edx) local bonus = (ballSpeed * edy) * anstime - --print("results: " .. bonus .. " " .. edx .. " " .. anstime .. " " .. (px-ex)) + print("results: " .. bonus .. " " .. edx .. " " .. anstime .. " " .. math.abs(px-ex)) -- if (ifspecial == 0) then local answer = ey + bonus --love.window.setTitle(tostring(answer) .. "Basiccalc") @@ -135,7 +159,7 @@ function recursiveCalculations(px, ex, ey, edx, edy, ifspecial) -- return -1 -- end else - local emulatedx = ex + distance + local emulatedx = ex + distance * edx local emulatedy = 0 ----print("results: " .. bonus .. " " .. edx .. " " .. anstime .. " " .. (VIRTUAL_WIDTH-ex)) local answer = recursiveCalculations(px, emulatedx, emulatedy, edx, -edy, 0) diff --git a/src/baseGame.lua b/src/baseGame.lua index 67f7a66..131b5e9 100644 --- a/src/baseGame.lua +++ b/src/baseGame.lua @@ -43,7 +43,7 @@ function basegame(dt) if (areanuclear == 0 and striken == 1 and (player1score > ptw-2 or player2score > ptw-2)) then --print("Calling animation") - print("AREA NUCLEAR?" .. areanuclear) + --print("AREA NUCLEAR?" .. areanuclear) superanimator("tensehit", 1) end if gameMode == "practice" then @@ -75,7 +75,7 @@ function basegame(dt) sounds["nuclearhit"]:setPitch(1) sounds["nuclearhit"]:play() end - print("AREA NUCLEAR?" .. areanuclear) + --print("AREA NUCLEAR?" .. areanuclear) if areanuclear == 0 then superanimator("tensehit", 1) end @@ -172,7 +172,7 @@ function basegame(dt) (areanuclear == 0 and (striken == 1 and (player1score > ptw-2 or player2score > ptw-2))) then - print("AREA NUCLEAR?" .. areanuclear) + --print("AREA NUCLEAR?" .. areanuclear) superanimator("tensehit", 2) end if (ballSpeed > 200) then @@ -192,7 +192,7 @@ function basegame(dt) potentialnuke2 = 0 player2nukescore = 0 potentialstrike2 = 0 - print("AREA NUCLEAR?" .. areanuclear) + --print("AREA NUCLEAR?" .. areanuclear) if areanuclear == 0 then superanimator("tensehit", 2) end @@ -315,7 +315,7 @@ function basegame(dt) --love.window.setTitle('Trying to update the ball') if timeIsSlow then if ballSpeed > originalSpeed / 3 then - paddle_SPEED = 30 + paddle_SPEED = 300 ballSpeed = ballSpeed / (1 + (dt * 2)) end player1nukescore = player1nukescore - (dt * 50) @@ -333,7 +333,7 @@ function basegame(dt) end player2nukescore = player2nukescore - (dt * 50) if player2nukescore < 1 or ball[1].dx < 0 then - paddle_SPEED = 30 + paddle_SPEED = 300 timeIsSlow2 = false player2reverbav = false ballSpeed = originalSpeed @@ -390,7 +390,7 @@ function goalManager() paddle_SPEED = ballSpeed end - AI_SPEED = difficultyl / 10 + AI_SPEED = difficultyl for i = 1, maxBalls do ball[i]:reset(i, 2) end @@ -511,8 +511,9 @@ function powerAvailability() end end end - if (player2nukescore >= 140) and timeIsSlow == false and timeIsSlow2 == false and (maxBalls > 1 or (ball[1].dx > 0 and ball[1].x < VIRTUAL_WIDTH/2)) then + if (player2nukescore >= 140) and timeIsSlow == false and timeIsSlow2 == false and (maxBalls > 1 or (ball[1].dx > 0 and ball[1].x > VIRTUAL_WIDTH/2)) then player2reverbav = 1 + --print("Available counter, " .. globalState .. tostring(love.keyboard.isDown(p2control.counter))) if (globalState ~= "nettest" and (love.keyboard.isDown(p2control.counter) or hold2)) or lastSentKeyClient == p2control.counter then sounds["time"]:play() player2reverbav = false @@ -667,6 +668,9 @@ function menuDraw() love.graphics.rectangle("fill", wall.wallx, wall.wally, 10, wall.wallheight) end end + player1:render() + player2:render() + ball[1]:render("controlled") if gameState == "touchcontrols" then if doubleclick1 or doubleclick2 then gameState = "menu" @@ -780,7 +784,7 @@ function menuDraw() love.keyboard.mouseisReleased = false end if gameState == "multiMode" then - mymenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, playerCountButtons, sounds, "playercount") + mymenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, playerCountButtons, sounds, "middle") love.keyboard.mouseisReleased = false end if gameState == "prdiff" then @@ -792,6 +796,7 @@ function menuDraw() love.graphics.translate(VIRTUAL_WIDTH * 0.4, VIRTUAL_HEIGHT * 0.5) love.graphics.rotate(rotation) love.graphics.setFont(smallfont) + love.graphics.setColor(200/255, 200/255, 200/255, 1) if isAndroid then love.graphics.print("Tap to Start", WINDOW_WIDTH / -10, VIRTUAL_HEIGHT / 8) else @@ -819,9 +824,6 @@ function baseDraw() if gameState ~= 'animation' then --print("Drawing notanimtaion") love.graphics.setFont(scorefont) - if isAndroid then - androidDraw() - end menuDraw() end end @@ -832,13 +834,9 @@ function baseDraw() nuclearDraw() end if gameState == 'play' or gameState == '1serve' or gameState == '2serve' or gameState == 'done' then - print("Drawing normally") + --print("Drawing normally") normalDraw() end - if isAndroid then - androidDraw() - love.keyboard.mouseisReleased = false - end end @@ -1089,13 +1087,13 @@ function clientsBaseGame(dt) if (lastSentKeyP1 == p1control.up) then player1.dy = (paddle_SPEED + p2bonus) * -1 - print("moving player1 up") + --print("moving player1 up") elseif (lastSentKeyP1 == p1control.down) then player1.dy = paddle_SPEED + p2bonus - print("moving player1 down") + --print("moving player1 down") else player1.dy = 0 - -- print("stopping player") + ----print("stopping player") end if ((love.keyboard.isDown(p2control.up) or sectortouched(1))) then player2.dy = (paddle_SPEED + p2bonus) * -1 @@ -1117,7 +1115,7 @@ function clientsBaseGame(dt) if (areanuclear == 0 and striken == 1 and (player1score > ptw-2 or player2score > ptw-2)) then --print("Calling animation") superanimator("tensehit", 1) - print("AREA NUCLEAR?" .. areanuclear) + --print("AREA NUCLEAR?" .. areanuclear) end if gameMode == "practice" then player1score = player1score + 1 @@ -1188,7 +1186,7 @@ function clientsBaseGame(dt) (areanuclear == 0 and (striken == 1 and (player1score > ptw-2 or player2score > ptw-2))) then - print("AREA NUCLEAR?" .. areanuclear) + --print("AREA NUCLEAR?" .. areanuclear) superanimator("tensehit", 2) end if (ballSpeed > 200) then @@ -1208,7 +1206,7 @@ function clientsBaseGame(dt) potentialnuke2 = 0 player2nukescore = 0 potentialstrike2 = 0 - print("AREA NUCLEAR?" .. areanuclear) + --print("AREA NUCLEAR?" .. areanuclear) if areanuclear == 0 then superanimator("tensehit", 2) end @@ -1409,4 +1407,111 @@ function GetIPType(ip) -- if we get here, assume we've been given a random string return 3 -end \ No newline at end of file +end + +function menuDemo(dt) + paddle_SPEED = 200 + ballSpeed = 200 + if ball[1].dx > 0 then + AI(player2, maxBalls, 1300) + player1.goal = 360 + elseif ball[1].dx < 0 then + AI(player1, maxBalls, 1300) + player2.goal = 360 + end + print(neededTarget, neededTarget1) + --print("menu demo active") + ball[1]:update(dt) + player1:update(dt) + player2:update(dt) + if ball[1].x < player1.x+15 then + player1.y = ball[1].y-player1.height + end + if ball[1].x > player2.x-15 then + player2.y = ball[1].y-player2.height + end + if ball[1].x >= player2.x-7 then + select = math.random(1, 2) + if ball[1].dy < 0 then + select = math.random(1, 5) + if select == 1 then + ball[1].dy = -1 + elseif select == 2 then + ball[1].dy = -1.2 + elseif select == 3 then + ball[1].dy = -1.5 + elseif select == 4 then + ball[1].dy = -1.8 + elseif select == 5 then + ball[1].dy = -2 + end + else + select = math.random(1, 5) + if select == 1 then + ball[1].dy = 1 + elseif select == 2 then + ball[1].dy = 1.2 + elseif select == 3 then + ball[1].dy = 1.5 + elseif select == 4 then + ball[1].dy = 1.8 + elseif select == 5 then + ball[1].dy = 2 + end + end + ball[1].x = player2.x-8 + ball[1].dx = -ball[1].dx + ball[1].dy = -ball[1].dy + end + if ball[1].x <= player1.x+7 then + select = math.random(1, 2) + if ball[1].dy < 0 then + select = math.random(1, 5) + if select == 1 then + ball[1].dy = -1 + elseif select == 2 then + ball[1].dy = -1.2 + elseif select == 3 then + ball[1].dy = -1.5 + elseif select == 4 then + ball[1].dy = -1.8 + elseif select == 5 then + ball[1].dy = -2 + end + else + select = math.random(1, 5) + if select == 1 then + ball[1].dy = 1 + elseif select == 2 then + ball[1].dy = 1.2 + elseif select == 3 then + ball[1].dy = 1.5 + elseif select == 4 then + ball[1].dy = 1.8 + elseif select == 5 then + ball[1].dy = 2 + end + end + ball[1].x = player1.x+8 + ball[1].dx = -ball[1].dx + ball[1].dy = -ball[1].dy + end + + if ball[1].y <= 0 then + soundtype = love.math.random(1, 5) + sounds["wallhit"]:setPitch(ballSpeed / 250) + sounds["wallhit"]:play() + ball[1].y = 0 + ball[1].dy = -ball[1].dy + end + + -- -4 to account for the ball's size + if ball[1].y >= VIRTUAL_HEIGHT - 40 then + soundtype = love.math.random(1, 5) + sounds["wallhit"]:setPitch(ballSpeed / 250) + sounds["wallhit"]:play() + ball[1].y = VIRTUAL_HEIGHT - 40 + ball[1].dy = -ball[1].dy + + end +end \ No newline at end of file diff --git a/src/constantvars.lua b/src/constantvars.lua index fe18bf6..99d6012 100644 --- a/src/constantvars.lua +++ b/src/constantvars.lua @@ -2,4 +2,3 @@ VIRTUAL_WIDTH = 1280 VIRTUAL_HEIGHT = 720 WINDOW_WIDTH = 1280 WINDOW_HEIGHT = 720 -isAndroid = false \ No newline at end of file