Raycasting

This commit is contained in:
MaddoScientisto 2024-04-29 23:32:40 +02:00
commit a352a671b9
3 changed files with 184 additions and 49 deletions

View file

@ -6,7 +6,7 @@ version 2
:: sfx/
:: gfx/0.gfx
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
NC0yOSAwNjoyMzowNyIscmV2aXNpb249MTQxNF1dbHo0ABENAADjRAAA8xR7WzBdPXtibXA9cHh1
NC0yOSAyMDoyNToyMiIscmV2aXNpb249MTQ5M11dbHo0AGkNAAA9RQAA8xR7WzBdPXtibXA9cHh1
AEMgEBAE8PAsZmxhZ3M9MCxwYW5feAgA2nk9MCx6b29tPTExfSwyAPEIrxsj3gN_A94j3gP_CRNu
A04TbiNOA34TAP8DjgM_A04DLiN_Iy4DngP_FAMuXgAd8AnwRU2ALSYtUB1mHQUgHYYNFQAdlh0V
DaYEAMMNFQANlh0FEL0F8BNYAB8zWAAV8CpQRIAUTx8UUA8Ujx8EQC8UTx8kQA8UHx9EDg8ZBEAP
@ -54,64 +54,65 @@ hQHTEBMPGwMOAgA2EAMOAgBfExATDgMcABSv0yAPFgVwDQUwDQYADy7wAt8SD2AEPlE8DxwsYPYV
HAdAHgAHXAcAHgAeEHwQHiAHDAcMB0xwFwAIAJ8McBcQF5AYEBgnEh7wBSABLD8cAVABHG4BQAEM
DhEOEQcOCgAiBw4DAAEMADIcBxwKAPAPDxdHDQ4BMAEcJw0nHgEwMQwHDjFQAQcMBwgHDgcBCgD-
JQ4IDggeBwEwAQccbgcBEAEXLF4XAQABF3wBFwEQEQcBFwEHEQcRQAEAAQcBBwGQARwBHAHcEiAP
MgD-GP8ogA8b0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0CLTBNCF0wPQJtQF0CLWB9cG2Q
TbAtUJkAHw8yAP9H-wAEBAQAHxwADhceFw4AHgA8ABr-BggIBIAHMAcgBxAH8AQHEAcgBzAHgEIA
HZAIADgACAAIMAgGAIEQCAAYUBhQGAoABBYAPzgACAUBHTNQBQACADgQBQACALEVAAUPGQUOBQ4F
AAYAERAGAPAAXgkFABUOBR4JDgkKKQ4JDQlASQoZDhUA8QgZSgkaHgUADgUOGUoZLhUuCRoXCgke
CRIA4AkKCToJCh4AFVkaCQ4ZTQDwAR4JCjkuBQ4VAAUJDgkeCQprAAKCAGAJPgUOBTALAFYOGR4A
BaEAPwAFEBUCHw8yALPwFBC-GCAOtA4ADtQeRDxEHiQcPxwcJB4kDF0MJB4UDA1cDQwUCAAyDD0M
CgARHQIACAoA0SQMHRwdDCQeJBw9HCRFAI-UDgAOtA4gvlUBIA8yAP9LtxOfEFAOHA4sDgwOCAAj
LgwQAAAIAAgaACo8LhgAIgweCgAxYA4MIgCPcB5MDoBe8BSIAB75DxVVgAVWBXAFXxAFcAVeBXAF
Bj4GBXAFFh4WBXAFVgQAT4BV8CVMAR8PMgD-GfAIIcEQAYwPERsMDxwhDH8QHA8cARARLxAzCvIF
MT8QEYABLgGgAR4PHAGQAR4NAZAPABANBQBfAbAx8ApwAB7wHzYpwBoZECpQKhkAChlQSjlABhkK
FgkGGhYwCQopChkKBhkGEGoJKgkWIBYKFgoJAK8wNhlGUIaQJvAGQQEfDzIA----------------
----------------------9BUD0xMX19
MgCB8B1gDdABDQGwASYBoAE2AYABFh8WFgFgASYeFgFQLWYdYAEGEQYRgAEWAQYBkAwAAQYAlRYB
gAEGAQABBggA-wZwAQYBIAEGAVABJgEAASYBUCEgISDwAIH-KIAPG9AegE8YDj1APQJtML0wHQJt
Ah0gXQJdIM0wHQJNAi0wTQhdMD0CbUBdAi1gfXBtkE2wLVCZAB8PMgD-R-8ABAQEAB8cAA4XHhcO
AB4APAAa-wYICASABzAHIAcQB-AEBxAHIAcwB4BCAB2QCAA4AAgACDAIBgCBEAgAGFAYUBgKAAQW
AD84AAgFAR0zUAUAAgA4EAUAAgCxFQAFDxkFDgUOBQAGABEQBgDwAF4JBQAVDgUeCQ4JCikOCWcJ
QEkKGQ4VAPEIGUoJGh4FAA4FDhlKGS4VLgkaFwoJHgkSAOAJCgk6CQoeABVZGgkOGU0A8AEeCQo5
LgUOFQAFCQ4JHgkKawACggBgCT4FDgUwCwBWDhkeAAWhAD8ABRAVAh8PMgCz8BQQvxggDrQOAA7U
HkQ8RB4kHD8cHCQeJAxdDCQeFAwNXA0MFAgAMgw9DAoAER0CAAgKANEkDB0cHQwkHiQcPRwkRQCP
1A4ADrQOIL5VASAPMgD-S7cTnxBQDhwOLA4MDggAIy4MEAAACAAIGgAqPC4YACIMHgoAMWAODCIA
j3AeTA6AXvAUiAAe_Q8VVYAFVgVwBV8QBXAFXgVwBQY_BgVwBRYeFgVwBVYEAE_AVfAlTAEfDzIA
-xnwCCHBEAGMDxEbDA8cIQx-EBwPHAEQES8QjQryBTE-EBGAAS4BoAEeDxwBkAEeDQGQDwAQDQUA
XwGwMfAKcAAe8B82KcAaGRAqUCoZAAoZUEo5QAYZChYJBhoWMAkKKQoZCgYZBhBqCSoJFiAWChYK
CQCvMDYZRlCGkCbwBkEBHw8yAP--------------------------------------QVA9MTF9fQ==
:: gfx/.info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yOSAwNjoyMzowNyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
NC0yOSAyMDoyNToyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
MG5pbA==
:: map/0.map
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yOSAwNjoyMzowNyIscmV2aXNpb249MTQzNV1dbHo0ANAFAAAKQgAA8Ah7e2JtcD11c2VyZGF0
NC0yOSAyMDoyNToyMiIscmV2aXNpb249MTUyNF1dbHo0AMwFAAALQgAA8Ah7e2JtcD11c2VyZGF0
YSgiaTE2IiwzMgMALyIwAQD-gy4xMAwADwEAoiozMAEAHjQUAAwBADU1ODABAD80ODABACsvNDAz
ACYfNnwABD8xMzCAAEoAAQA-MzYwXAATBAQADwEANQ9QACEvMzCAAG0PAQC6KjQ4CAEPBAMHDiAA
DwEANgSAAB8zYAEALzMwAQBHHjbUAA7sAA4kAA8BAD8OaAAPAQByHjOAAQ_AAGAPAQD-BC82MAEA
awS0Aw4QAA8BAFMMcAAHEAAvNjF-Ac8PxQBJFzEEAA8BAAYHcAEOEAAPAQBQDHAADBAAD2gEHQgB
AAhIAA_ABBoPgABCDwEA-xcOLAsPAQAULzQw0AE-HzMlBBgvNDABANT1GiIpLGhpZGRlbj1mYWxz
ZSxuYW1lPSJvYmplY3RzIixwYW5feD05Ny42AQARNxUAhXk9LTkzLjgzAQCiLHRpbGVfaD0xNgoA
EHcKAI96b29tPTF9LIEQ-2xTOTAwMGIIAA8BAP------------------jA_BEAOkZm9yZWdyb3Vu
ZIQQVi03NC4zAQADhRBWOTkuMTaaEA_EEIIvMzkEAAMPAQAFLzM5BAADDwEAISMzMvwPDwQAAC8z
MDAABBM5BAAaYgwALzMwgAAkBEQAFzAMAB85gAAQGjAMAA_AABkENAEjM2FAACJkMAEAE2MQAAAc
ABY4KAAPAAESBzAADwQAAQ9EAAIvZDABAAcHjAAJPAAPMAAJC5QACAgAHzOAAFkXMAwAD4AAPRc1
BAAIAQAvNTABAAoJgAAfZgQAAyYxNgQAJzBmBAAIPAADAQA-M2UwAQAaCYAADxEXBQiAAA4BAA48
AA8BABgPgAA2HzUEAAwEAQAaNQQADwABtg_AAOxqMmIwMDJjBAAEAQAvMmMEAAQWZIAAAAEALzI5
BAAAFmF8AAAEACYyOBwACIAAPzM1MAEAHhMzoAYvMzkEAAgLGAEIsAAPgAAtAAEAAV8AE2EQBRdh
BAADEAAvMjCAAKMiMmLgAQ_AABIPAQAIAEAHEzJ1AB4yLQAPgAAGKjMzLAIETAINpAAPgAAMJzBj
kAYfYwABCB5kgAAfMygAAA2kAA_AADQP3AIFD4AALgsBAA_AABUvMDD8CAAeYaQAD4AASQksCBc5
SAEIBAIPgAA1FzUEAA_AABEDLAAPgAAVIzNlBAAfMAEAAw7gAg8BAAsEHAMMPAANNAMLBAAOAQAP
iAENDxwCGw0YAAcEAC8wMIAADwRYBg8BAA4TY_gEBAQAH2QYAAAWYggFLjBifAEPgAAFDAwED4AA
WQ8BAEcPgACPJjAwqAIPBABBD4QQEU9zb2xpfxBVLzEwAQD-gB45DAAPAQChLzE4BAADDwEABS8x
YQQAAw8BACEvMTgEAAcPAQAFLzFhBAADLzAwkAEfLzE4BAAHDwEABScxYgQAFjkEAC8wOAQADAcB
AC8xYwQAAyYwZgQAJjFjBAAJAQAfOAQAJAcBAC8xYwQAGwkBAB84BAAkBwEALzFjBAAbCAEALzE4
BAAjCAEALzFjBAAbCAEALzE4BAAjCAEALzFjBAAbCAEALzE4BAAjCAEALzFjBAAbCAEALzE4BAAj
CAEALzFjBAAbCAEALzE4BAAjDwEAESYxYwQADwEABS8xYgQAAAQIBB9iBAAHDwEAESYxYQQADwEA
Bh84BAAkDwEAECYxYQQADwEABh84BAAkDwEAECYxYQQADwEABh84BAAkAAEAH2UEAAgDAQAOfAAL
AQAeOAQADUsNFmEcAAUEABcwbAAPBAABD4AAKB8znwsBGzgEABcwbAAPBAABD4AAbQwEAA8BAAUf
OIAA6y4xYngED4AAAQQcAAmABB9lBAAYDwEADC8xYQQAEw8BAAIvZTABAC4vMWEEABMPgAD-bx9l
BAAgDwEAEC8xYQQAEy8wZQQAHg8DIZJMYmFjawMhHziEEAA-MTU2hRARUG09MX19
DwEANgSAAB8zYAEABxAAPzQ1MAEAOx421AAO7AAOJAAPAQA-DmgADwEA-34OfAIPAQBsLzYwAQBr
BLQDDhAADwEAUwxwAAcQAC82MdwBTy82MAEAsB82EAoHBAQADzUBBwMEAA4QAA8BAFMMcAAMEAAP
AQAZDHQGHjQcAA8BABMPgABCDwEA-xcOLAsPAQAULzQw0AE-HzMlBBgvNDABANT2HCIpLGhpZGRl
bj1mYWxzZSxuYW1lPSJvYmplY3RzIixwYW5feD0tMTA3LjMBAAEXAHR5PTMwLjE2AQCyNyx0aWxl
X2g9MTYKABB3CgCPem9vbT0xfSyCEP9sUzkwMDBiCAAPAQD------------------4wPghADpWZv
cmVncm91bmSFEC83NIQQAC85OYQQjy8zOQQAAw8BAAUvMzkEAAMPAQAhIzMy-A8PBAAALzMwMAAE
EzkEABpiDAAvMzCAACQERAAXMAwAHzmAABAaMAwAD4AAGQQ0ASMzYUAAImQwAQATYxAAABwAFjgo
AA8AARIHMAAPBAABD0QAAi9kMAEABweMAAk8AA8wAAkLlAAICAAfM4AAWRcwDAAPgAA9FzUEAAgB
AC81MAEACgmAAB9mBAADJjE2BAAnMGYEAAg8AAMBAD8zZTABABoJgAAPEhcFCIAADgEADjwADwEA
GA_AADYfNQQADAQBABo1BAAPAAG2D4AA7GoyYjAwMmMEAAQBAC8yYwQABBZkgAAAAQAvMjkEAAAW
YXwAAAQAJjI4HAAIgAA-MzUwAQAeEzOgBi8zOQQACAsYAQiwAA_AAC0AAQABXwATYRAFF2EEAAMQ
AC8yMIAAoyIyYuABD4AAEg8BAAgAQAcTMnUAHjItAA_AAAYqMzMsAgRMAg2kAA_AAAwnMGOQBh9j
AAEIHmSAAB8zKAAADaQAD4AANA-cAgUPgAAuCwEAD4AAFS8wMPwIAB5hpAAPgABJCSwIFzlIAQgE
Ag_AADUXNQQAD4AAEQMsAA_AABUjM2UEAB8wAQADDuACDwEACwQcAww8AA00AwsEAA4BAA_IAQ0P
HAIbDRgABwQALzAwgAAPBFgGDwEADhNj6AQEBAAfZBgAABZiCAUuMGJ8AQ_AAAUMDAQPgABZDwEA
Rw_AAI8mMDCoAg8EAEEPhBART3NvbGl-EFUvMTABAP_AHjkMAA8BAKEvMTgEAAMPAQAFLzFhBAAD
DwEAIS8xOAQABw8BAAUvMWEEAAMvMDCQAR8vMTgEAAcPAQAFJzFiBAAWOQQALzA4BAAMBwEALzFj
BAADJjBmBAAmMWMEAAkBAB84BAAkBwEALzFjBAAbCQEAHzgEACQHAQAvMWMEABsIAQAvMTgEACMI
AQAvMWMEABsIAQAvMTgEACMIAQAvMWMEABsIAQAvMTgEACMIAQAvMWMEABsIAQAvMTgEACMIAQAv
MWMEABsIAQAvMTgEACMPAQARJjFjBAAPAQAFLzFiBAAABAgEH2IEAAcPAQARJjFhBAAPAQAGHzgE
ACQPAQAQJjFhBAAPAQAGHzgEACQPAQAQJjFhBAAPAQAGHzgEACQAAQAfZQQACAMBAA58AAsBAB44
BAANSw0WYRwABQQAFzBsAA8EAAEPgAAoHzOfCwEbOAQAFzBsAA8EAAEPgABtDAQADwEABR84gADr
LjFieAQPgAABBBwACYAEH2UEABgPAQAMLzFhBAATDwEAAi9lMAEALi8xYQQAEw_AAP9vH2UEACAP
AQAQLzFhBAATLzBlBAAeDwMhkkxiYWNrAyEfOIQQAD8xNTaFEBFQbT0xfX0=
:: map/1.map
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTI4IDIxOjA4OjM1Iixtb2RpZmllZD0iMjAyNC0w
NC0yOSAwNjoyMzowNyIscmV2aXNpb249NV1dbHo0AJoAAAA9QQAA8Ah7e2JtcD11c2VyZGF0YSgi
aTE2IiwzMgMALyIwAQD--------------------7wSIpLHBhbl94PS0yNAoA8gF5PS0xNDIsdGls
ZV9oPTE2CgAQdwoAj3pvb209MX0sTxD---------------------------------------------
--------------------BlBtPTF9fQ==
NC0yOSAyMDoyNToyMiIscmV2aXNpb249NjZdXWx6NACoAAAAcUEAAPAIe3tibXA9dXNlcmRhdGEo
ImkxNiIsMzIDAC8iMAEA--------------------_-EKIiksaGlkZGVuPWZhbHNlLHBhbl94PS0y
NAoA8gF5PS0xNDIsdGlsZV9oPTE2CgAQdwoAj3pvb209MX0sXBD-------------------------
----------------------------------------LVBtPTF9fQ==
:: map/.info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yOSAwNjoyMzowNyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
NC0yOSAyMDoyNToyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
MG5pbA==
:: sfx/0.sfx
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
NC0yOSAwNjoyMzowNyIscmV2aXNpb249MTEyM11dbHo0AEYBAABmCAAA8CdweHUAAygAAAMABA9A
NC0yOSAyMDoyNToyMiIscmV2aXNpb249MTE4NF1dbHo0AEYBAABmCAAA8CdweHUAAygAAAMABA9A
EAIOAAGgASACoA4ADxAADfDKAQIDBAUGBwAP-5AICQoLDwwPDQ8ODw8QAPAADQ8RDxIPEw8UDxUP
Fg8XEwDxAQ8YDxkPGg8bDxwPHQ8eDx8UAPEAIA8hDyIPIw8kDyUPJg8nFADxACgPKQ8qDysPLA8t
Dy4PLxQA8QAwDzEPMg8zDzQPNQ82DzcUAP8FOA85DzoPOw88Dz0PPg8-AA--8P8BAOvyJ1oBEAYP
@ -120,14 +121,14 @@ Gy-wADAA--_CH-8BAMzxHegPQAANQA8XAAsaCAYIEAIDEAUABgAIAEkXACYICVD--wnxF-4J-Bf_
CfBwKwBf-rDwcAQIAP-cH-8BAJdQ-----x8=
:: sfx/.info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yOSAwNjoyMzowNyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
NC0yOSAyMDoyNToyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
MG5pbA==
:: main.lua
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-29 06:23:07",revision=1430]]
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-29 20:25:22",revision=1507]]
include("/cirnofarm/src/game.lua")
:: .info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w
NC0yOSAwNjoyMzowNyIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
NC0yOSAyMDoyNToyMyIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0
aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs
d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ibWFwLzEubWFwIix3b3Jrc3BhY2VfaW5kZXg9

View file

@ -58,6 +58,7 @@ local weapons_manager = require(make_path("weapons"))
local Barrel = require(make_path("barrel"))
local Strawberry = require(make_path("strawberry"))
local Box = require(make_path("box"))
local NPC = require(make_path("npc"))
include(make_path("pgui" .. ".lua"))
@ -115,7 +116,8 @@ actors_db = {
{name="player",sprite=65,actor=nil},
{name="box",sprite=4,actor=Box},
{name="alarm",sprite=19,actor=nil},
{name="fan",sprite=16,actor=nil}
{name="fan",sprite=16,actor=nil},
{name="NPC",sprite=69,actor=NPC}
}
@ -307,3 +309,66 @@ function check_collisions()
end
function raycast(x1, y1, x2, y2, max_distance)
local dx = x2 - x1
local dy = y2 - y1
local step_x = dx > 0 and 1 or -1
local step_y = dy > 0 and 1 or -1
dx = dx < 0 and -dx or dx
dy = dy < 0 and -dy or dy
local fraction = dx - dy
local x = x1
local y = y1
-- calculate the distance between start and end point
local distance = (math.sqrt((x2-x1)^2 + (y2-y1)^2))\1
local scale = max_distance / distance
local px = x1 + (x2 - x1) * scale
local py = y1 + (y2 - y1) * scale
-- limit the maximum distance
if distance > max_distance then
--return x2, y2, false
return px, py, false
end
-- checking the start point
--if map_manager.is_tile_shoot_solid(flr(x / tile_width), flr(y / tile_height)) then
if map_manager.is_tile_shoot_solid(x, y) then
return x1, y1, false
end
local distance_traveled = 0
while distance_traveled <= max_distance and (x ~= x2 or y ~= y2) do
local prevX = x -- store previous positions for distance calculation
local prevY = y
if fraction >= 0 then
x += step_x
fraction -= dy
else
y += step_y
fraction += dx
end
-- calculate distance traveled
distance_traveled += math.sqrt((x - prevX) ^ 2 + (y - prevY) ^ 2)\1
-- return false as soon as a solid tile is hit
if map_manager.is_tile_shoot_solid(x, y) then
if x==x2 and y==y2 then -- return true only if hit tile is destination tile
return x, y, true
else
return x, y, false
end
end
end
-- if the loop is done without hitting a solid tile, return false
return x2, y2, true
end

69
src/npc.lua Normal file
View file

@ -0,0 +1,69 @@
local Actor = require(make_path("actor2"))
local NPC = Actor:new()
function NPC:new(x,y)
local n = Actor:new(x,y)
n.spriteIndex = 69
n.range = 64 + 16
n.found = false
n.enemy_x_debug = 0
n.enemy_x_debug = 0
--n.dir_vec_debug_x = 0
--n.dir_vec_debug_y = 0
n.hit_x = 0
n.hit_y = 0
n.raycast_frames = 0
n.raycast_frames_to_wait = 120
return setmetatable(n, {__index=self})
end
function NPC:update()
local enemy_x = cirnoInstance.x + 8
local enemy_y = cirnoInstance.y + 8
self.enemy_x_debug = enemy_x
self.enemy_y_debug = enemy_y
--local dir_vec = get_direction_vector(self.x, self.y, enemy_x, enemy_y)
--self.dir_vec_debug_x = dir_vec.dir_x
--self.dir_vec_debug_y = dir_vec.dir_y
self.raycast_frames += 1
if (self.raycast_frames % self.raycast_frames_to_wait == 0) then
local hit_x, hit_y, hit_status = raycast(self.x, self.y, enemy_x, enemy_y, self.range, 2)
--if (raycast_hit) then
self.hit_x = hit_x
self.hit_y = hit_y
--end
self.found = hit_status == true
end
end
function NPC:draw()
--circfill(self.x,self.y,self.range,18)
local col = 30
spr(self.spriteIndex,self.x,self.y)
print(string.format("Found: %s", tostring(self.found)),self.x,self.y-16,col)
--print(string.format("dir_x: %.2f dir_y: %.2f",self.dir_vec_debug_x, self.dir_vec_debug_y),self.x,self.y-8,28)
--print(string.format("hit_x: %.2f dir_y: %.2f", self.hit_x, self.hit_y),self.x, self.y,28)
--line(self.x,self.y, self.enemy_x_debug, self.enemy_y_debug, 14)
line(self.x,self.y, self.hit_x, self.hit_y, col)
end
return NPC