Spawner for barrels

This commit is contained in:
MaddoScientisto 2024-04-26 13:31:42 +02:00
commit 2507ba301c
4 changed files with 144 additions and 97 deletions

View file

@ -6,74 +6,75 @@ version 2
:: sfx/
:: gfx/0.gfx
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
NC0yNiAwOToyMjo1NCIscmV2aXNpb249ODIzXV1sejQALQgAAG49AADzFHtbMF09e2JtcD1weHUA
NC0yNiAxMTozMToxOCIscmV2aXNpb249ODcyXV1sejQAcggAANo9AADzFHtbMF09e2JtcD1weHUA
QyAQEATw8CxmbGFncz0wLHBhbl94CADaeT0wLHpvb209MTF9LDIA8QivGyPeA34D3iPeA-4JE24D
ThNuI04DfhMA-wOOAz4DTgMuI34jLgOeA-4UAy5eAB3wCfBFTYAtJi1QHWYdBSAdhg0VAB2WHRUN
pgQAww0VAA2WHQUQvQXwE1gAHzNYABXwKlBEgBRPHxRQDxSPHwRALxRPHyRADxQfH0QODxkEQA8U
PhoNDxkOBEANLgoACg0ODARADR4aAAoJDBQAQA5KCQoSAEEOKgAKJQASXiIA714NDA4EUBQ_DRSA
RPAVkwAd8AjwFZxADH8QHDAMfgwODCCcHgwgDH8cDAcAH30GAAajDgwwDH0cQJzwFG8AHzFvABb3
BAY-GVBpLllOGQ4ZXlkeeVAeGbADACHADgMAXynAGfAXWwAPD0UCBQ8yAEf8Ac8TLxEPE18RDxM-
EQ8TDB8NACgMTw4AIywvDgC0HA8RfxMMLxE-Ex8gAAAbAB9PDQAO8QA8Di8RLgwtjh0ODC0ObQ4H
ACcMXQgAfzwOLD0OHd7IAB3Z9AwPHzQedB40HiQeJAYA8QBEDiQe1B6EHiQOlB6EDjQEAAYeABCE
BAA-DvQJZgId-0H-FgA2DoYOFgUWDgUmBTYONgUOZgUGDkYOFgVWDgb_AFYORg42BTYOJgUGDoYO
BgUmDgYFZg5GDib_AIYOlgU2DhYFtg52BSYFFg42BZYOVoAAHvIAFQMMDxAMDhwODA4MbxUOCgBR
HQwdDC0LALEdDgwdDA4tDhwOLQoAUgwtHC0MCgA0Dl0OCgA-DD0MDAACBSIABTYABUoAAl8AMy0M
TXMAI20MCQA-DP0DxQAd0B8V1B6UDx8kHgQNZB0GAD8UHSQIAAQwdB40BABQDYQelA0SACZ0DSAA
FzQGAH8EDRQNhB7UigAd4NQfFLQPHwQfFAQfH3QeCAABHgIsBB0IAJAUDiQeVB1UHlQSAIUOZB0E
HoQOBAYACiwAElQGAF4OZB3UHdACD-wDb-EUQF8UcB4PFT8fLkAeDxUOPx8PFQ4NDiAeDQ4NPx8O
DQ4NDhAGAGE8DQ4NHgALADENDhwHABE_BgAhHA4HABEeBgAnDhQaACUUDhoA4CwNDixeTA4NTA0O
AA48FgBSPA4QDixaAEEOIA4MCgBhDQ4cDkAuCgBPHnBeQMsAJAA-AFEuQA4PH0kAYw4NLiAOLAsA
MRwOEMkAYA4NPAAOTAgAUUwuTC5MogAgFEy2ADccFBzOACwcHucANQ4AHhkACBoBEiDUAG4NHkAu
PC68AA-rAUHQE51QDX8QDVANDl8YDgcAQgw-HgwJAD8LHAsKABISOwgAEFwGAE5_DVCd-AcPuAAX
DzIAq5AGBwYHHxYGBx4JALEGBw4WHhYeZgcGHgMAAQIAdRYelh4WBwYCAHIeBgemHhYODgADKABS
Vh4WHlYcAAZJABKmHAAfBkgAAAIoADxmHhZJAF8WDiYehsQAHfYA9QHfGBXeFd8VFd4V3hXdBgB-
9QLdFd31AVAAHU-2AA0GAgDKL-YBYwEfRw8WDQ4CADgVDQ4CAHP1AQ8TLwwv6AggHwwiCRkPIwkZ
DwoJDw4ACXE-DA8TLxEvFgA1jxMfIAA3bxEPDgA-DwxfEAAEAUAAIQw-DgAv3xN1Ax8PMgD--0Vf
-xQS0B4CAAYPfwYdT-8UEPA1ACEv0B4CAAcPTwAd4PBIKLCIYIhgGNAY0AjgAgAQGAYAH2BMAR7D
ERSQFAAPFA8fBA4PPAmVDg0OBB4NBA0OAgDHBA0eBK4EDh0ErQQtBAAbDQIAQx0kDQQCADk0DQQC
AG8AFJAU8BHmAB47ERTAnAAoMA6aAIAgHgSeIB0EbQsAWh0EbR4NDQAiBA0OAFINJA0EPRAAMA0E
TUYAMcRABBMAIQRQEAAeIJoAD7YCbyIfFBwCD7kCOD8SwC4CAAIf-psBHh7QngAP0gIrmXAI4Ahw
FEAIMI8CGgiPAhUIjwIwTghOkQJdTQhNBC0GABQNAgAYCJkCGAiZAgMaACENAHMAX4AY0BhQ0gFP
mGAI4AiAFDAIQOQAGghzAxUY4wAhPhjjACA9GNcADAYAA78AJwQY4gAXGOEAAxgAzw0AFDAYMBRw
GNAYYJIBHS-w8OQCbC-_ELMAHk-Q-xQQywI5L-4STgAdWFA4sCjAAgBvmHB4oEjwnQ0fj1AYAGhQ
_BDw1AUeAO0BAgIArrA4kFhQiGB48Gh_AA-8AW9hMDwPHCxgwhGRBwwOHDAcDgxHEBWQDgxnDA4w
HhcOAgAyDEAOCQDwISAeIFcADjAeIDcwHkAsCBwQHkAHLAgcB0AeAAdcBwAeAB4QfBAeIAcMBwwH
THAXAAgAnwxwFxAXkBgQGH8BHvIEMCw-HHAcbmAMDhEOEQcOYAwHDgMAYGAMBxwHHAgA-zAPF0cN
DlAcJw0nHoAMBw6gBwwHCAcOB3AHDA4IDggeB1AHHG4HMBcsXhcgF3wAF0AHABcABxAHkAcAB7Ac
ABxwBCAPMgD-GP8ngA8b0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0CLTBNCF0wPQJtQF0C
LWB9cG2QTbAtkwH-Sw8yABz-AAQEBAAfHAAOFx4XDgAeADwAGv8GCAgEgAcwByAHEAfwBAcQByAH
MAeAQgAdkAgAOAAIAAgwCAYAgRAIABhQGFAYCgAEFgA-OAAINwEfDzIA--------------------
------------------------w1A9MTF9fQ==
RPAVkwAdkfASoTABHxABHgIAEyAIAA8KAASuDxGhDSAODxwPDAQARA4RAA4MAAQEAPIQIQ4FAQAO
DB4PDA4LDA4RDA4BBQAOCw4LDB4LDgEMAR4AEwsCACABC0MAxQseDB4LDAsBDA4FEBwAYyEOASCu
INsAHzHbABb3BAY-GVBpLllOGQ4ZXlkeeVAeGbADACHADgMAXynAGfAXWwAPD7ECBQ8yAEf8Ac8T
LxEPE18RDxM-EQ8TDB8NACgMTw4AIywvDgC0HA8RfxMMLxE-Ex8gAAAbAB9PDQAO8QA8Di8RLgwt
jh0ODC0ObQ4HACcMXQgAfzwOLD0OHd7IAB3Z9AwPHzQedB40HiQeJAYA8QBEDiQe1B6EHiQOlB6E
DjQEAAYeABCEBAA-DvQJ0gId-0H-FgA2DoYOFgUWDgUmBTYONgUOZgUGDkYOFgVWDgb_AFYORg42
BTYOJgUGDoYOBgUmDgYFZg5GDib_AIYOlgU2DhYFtg52BSYFFg42BZYOVoAAHvIAFQMMDxAMDhwO
DA4MbxUOCgBRHQwdDC0LALEdDgwdDA4tDhwOLQoAUgwtHC0MCgA0Dl0OCgA-DD0MDAACBSIABTYA
BUoAAl8AMy0MTXMAI20MCQA-DP0DxQAd0B8V1B6UDx8kHgQNZB0GAD8UHSQIAAQwdB40BABQDYQe
lA0SACZ0DSAAFzQGAH8EDRQNhB7UigAd4NQfFLQPHwQfFAQfH3QeCAABHgIsBB0IAJAUDiQeVB1U
HlQSAIUOZB0EHoQOBAYACiwAElQGAF4OZB3UHdACD-wDb-EUQF8UcB4PFT8fLkAeDxUOPx8PFQ4N
DiAeDQ4NPx8ODQ4NDhAGAGE8DQ4NHgALADENDhwHABE_BgAhHA4HABEeBgAnDhQaACUUDhoA4CwN
DixeTA4NTA0OAA48FgBSPA4QDixaAEEOIA4MCgBhDQ4cDkAuCgBPHnBeQMsAJAA-AFEuQA4PH0kA
Yw4NLiAOLAsAMRwOEMkAYA4NPAAOTAgAUUwuTC5MogAgFEy2ADccFBzOACwcHucANQ4AHhkACBoB
EiDUAG4NHkAuPC68AA-rAUHQE51QDX8QDVANDl8YDgcAQgw-HgwJAD8LHAsKABISOwgAEFwGAE5_
DVCdaAgPuAAXDzIAq5AGBwYHHxYGBx4JALEGBw4WHhYeZgcGHgMAAQIAdRYelh4WBwYCAHIeBgem
HhYODgADKABSVh4WHlYcAAZJABKmHAAfBkgAAAIoADxmHhZJAF8WDiYehsQAHfYA9QHfGBXeFd8V
Fd4V3hXdBgB-9QLdFd31AVAAHU-2AA0GAgDKL-YBYwEfRw8WDQ4CADgVDQ4CAHP1AQ8TLwwv6Agg
HwwiCRkPIwkZDwoJDw4ACXE-DA8TLxEvFgA1jxMfIAA3bxEPDgA-DwxfEAAEAUAAIQw-DgAv3xN1
Ax8PMgD--0Vf-xQS0B4CAAYPfwYdT-8UEPA1ACEv0B4CAAcPTwAd4PBIKLCIYIhgGNAY0AjgAgAQ
GAYAH2BMAR7DERSQFAAPFA8fBA4PPAmVDg0OBB4NBA0OAgDHBA0eBK4EDh0ErQQtBAAbDQIAQx0k
DQQCADk0DQQCAG8AFJAU8BHmAB47ERTAnAAoMA6aAIAgHgSeIB0EbQsAWh0EbR4NDQAiBA0OAFIN
JA0EPRAAMA0ETUYAMcRABBMAIQRQEAAeIJoAD7YCbyIfFBwCD7kCOD8SwC4CAAIf-psBHh7QngAP
0gIrmXAI4AhwFEAIMI8CGgiPAhUIjwIwTghOkQJdTQhNBC0GABQNAgAYCJkCGAiZAgMaACENAHMA
X4AY0BhQ0gFPmGAI4AiAFDAIQOQAGghzAxUY4wAhPhjjACA9GNcADAYAA78AJwQY4gAXGOEAAxgA
zw0AFDAYMBRwGNAYYJIBHS-w8OQCbC-_ELMAHk-Q-xQQywI5L-4STgAdWFA4sCjAAgBvmHB4oEjw
nQ0fj1AYAGhQ_BDw1AUeAO0BAgIArrA4kFhQiGB48Gh_AA-8AW9hMDwPHCxgwhHwCAcMDhwwHA4M
RwwODDAMDgxnDA4wHhcOAgAyDEAOCQDwISAeIFcADjAeIDcwHkAsCBwQHkAHLAgcB0AeAAdcBwAe
AB4QfBAeIAcMBwwHTHAXAAgAnwxwFxAXkBgQGH8BHvIEMCw-HHAcbmAMDhEOEQcOYAwHDgMAYGAM
BxwHHAgA-zAPF0cNDlAcJw0nHoAMBw6gBwwHCAcOB3AHDA4IDggeB1AHHG4HMBcsXhcgF3wAF0AH
ABcABxAHkAcAB7AcABxwBCAPMgD-GP8ngA8b0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0C
LTBNCF0wPQJtQF0CLWB9cG2QTbAtkwH-Sw8yABz-AAQEBAAfHAAOFx4XDgAeADwAGv8GCAgEgAcw
ByAHEAfwBAcQByAHMAeAQgAdkAgAOAAIAAgwCAYAgRAIABhQGFAYCgAEFgA-OAAINwEfDzIA----
----------------------------------------w1A9MTF9fQ==
:: gfx/.info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yNiAwOToyMjo1NCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
NC0yNiAxMTozMToxOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
MG5pbA==
:: map/0.map
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yNiAwOToyMjo1NCIscmV2aXNpb249ODQzXV1sejQAewMAAPlBAADwCHt7Ym1wPXVzZXJkYXRh
KCJpMTYiLDMyAwAvIjABAP--jD80ODABAF4vNDABAAs-MTMw9AL--1wOBAMOIAAPAQBGEzMEAAgB
AC8zMAEATi80OBgADw4kAA8BADkOaAAPAQD----------8v3GyIpLGhpZGRlbj1mYWxzZSxuYW1l
PSJvYmplY3RzIixwYW5feD0tOTMuMwEAARcAdXk9MTUzLjYBALI3LHRpbGVfaD0xNgoAEHcKAI96
b29tPTF9LIMQ-58uMTAMAA8BAP-vL2EwgADtDwEA--------------9LD4MQA6Zmb3JlZ3JvdW5k
hhATNHkQTy0xMTBuELMvMzkEAAMPAQBRYzMyMDAwOQQAGmIMAA-kG1AKgAAaMAwAHzMAAW0WOIwB
DwQAAQ_AADYPAQAFHmOUAAgIAB8zgABZFzAMAA_AAD0XNQQACAEALzUwAQAID4AAOB808iEFD4AA
1B81BAAMBAEAGjUEAA_AADYPAQAiD4AA-zhqMmIwMDJjBAAEAQAvMmMEAAQfZIAANz8zNTABAB4v
M2KAAGsvMDCAAPwfMoAAO2cyODAwMjkEAB9hAAFIL2QwXAAOACgADiQADwEALw5YAA9cAAMvMzIk
AAEPAQAvD4AABgz8CA_AASUfM4AAIwF8CBc5BAAPpAECDwEALwGAABc1BAAPgAARAywALzMwAQAz
DuACDzAADAMcAw4BAA_QAycPiAEDDxwCEw8BAAMPgABHDZwBD4AA3Q4BAA_AAK4FCAMPBAAkD24Q
MV9zb2xpZO8g-_oJzQMvOTABANYvMWEEAAMPAQBVLzFhBAADLzAwkAFTJzFiBAAWOQQALzA4BAAK
DwEANx84BAAiDwEANx84BAAiD4ABNx84BAAjDwEANS8xOAQAIw8BADUvMTgEACMPAQA1LzE4BAAj
DwEANS8xOAQAIw8BADUvMWIEAAAECAQfYgQABw8BADYfOAQAIg8BADcfOAQAIg8BADcfOAQAIg8B
ADceOAQAD4EQAhs4BAAPAQA1HjgEAB8zoQsBGzgEAA8BADUfOIAA-2wuMWJ4BA_AAAEEHAAOgAQP
AQA0HzgEABIPAQBGLzE4BAATDwEARS8xOAQAEw8BAEUvMTgEABMPAQBGHzgEACIPAQA3HzgEACIP
7yC2TGJhY2vvIA_GEClQbT0xfX0=
NC0yNiAxMTozMToxOCIscmV2aXNpb249ODkxXV1sejQAnAMAABVCAADwCHt7Ym1wPXVzZXJkYXRh
KCJpMTYiLDMyAwAvIjABAP_DLjEwDAAPAQDhPzQ4MAEAXi80MAEACz8xMzABAHMXNAQADwEANQ9Q
ACEfM4AAbg8BALoqNDgIAQ8EAwcOIAAPAQA2BIAAHzNgAQAvMzABAE4vNDgYAA8OJAAPAQA5DmgA
DwEAch4zgAEPgABgDwEA---------7-1HSIpLGhpZGRlbj1mYWxzZSxuYW1lPSJvYmplY3RzIixw
YW5feD0tMTUyLjgzAQABFwBpeT0tMTAxFwCSdGlsZV9oPTE2CgAQdwoAj3pvb209MX0shBAJDwEA
----mi9hMIAA7Q8BAP--------------Sw_EEAOvZm9yZWdyb3VuZIcQ4i8zOQQAAw8BAFFjMzIw
MDA5BAAaYgwAHzOAAF0aMAwAHzMAAW0WOIwBDwQAAQ_AADYPAQAFHmOUAAgIAB8zgABZFzAMAA_A
AD0XNQQACAEALzUwAQAIDwABUB8wgADUHzUEAAwEAQAaNQQADwABtg_AAOxqMmIwMDJjBAAEAQAv
MmMEAAQfZIAANz8zNTABAB4vM2KAAGsvMDCAAPwfMoAAO2cyODAwMjkEAB9hAAFIL2QwXAAOACgA
DiQADwEALw5YAA9cAAMvMzIkAAEPAQAvD4AABgz8CA_AASUfM4AAIwF8CBc5BAAPpAECDwEALwGA
ABc1BAAPgAARAywALzMwAQAzDuACDzAADAMcAw4BAA_QAycPiAEDDxwCEw8BAAMPgABHDZwBD4AA
3Q4BAA_AAK4FCAMPBAAkD4cQMU9zb2xpghBWDwEA-4QISgIvOTABANYvMWEEAAMPAQBVLzFhBAAD
LzAwkAFTJzFiBAAWOQQALzA4BAAKDwEANx84BAAiDwEANx84BAAiD4ABNx84BAAjDwEANS8xOAQA
Iw8BADUvMTgEACMPAQA1LzE4BAAjDwEANS8xOAQAIw8BADUvMWIEAAAECAQfYgQABw8BADYfOAQA
Ig8BADcfOAQAIg8BADcfOAQAIg8BADceOAQAD4IQAhs4BAAPAQA1HjgEAB8zogsBGzgEAA8BADUf
OIAA-2wuMWJ4BA_AAAEEHAAOgAQPAQA0HzgEABIPAQBGLzE4BAATDwEARS8xOAQAEw8BAEUvMTgE
ABMPAQBGHzgEACIPAQA3HzgEACIPCSG2TGJhY2sJIU4xMi4zhxAoMjYWAA_HEAZQbT0xfX0=
:: map/.info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yNiAwOToyMjo1NCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
NC0yNiAxMTozMToxOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
MG5pbA==
:: sfx/0.sfx
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
NC0yNiAwOToyMjo1NCIscmV2aXNpb249Njk5XV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
NC0yNiAxMTozMToxOCIscmV2aXNpb249NzMzXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W
DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P
Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g
@ -82,14 +83,14 @@ L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J
8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw==
:: sfx/.info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yNiAwOToyMjo1NCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
NC0yNiAxMTozMToxOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
MG5pbA==
:: main.lua
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-26 09:22:54",revision=950]]
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-26 11:31:18",revision=995]]
include("/cirnofarm/src/game.lua")
:: .info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w
NC0yNiAwOToyMjo1NCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
NC0yNiAxMTozMToxOCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0
aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs
d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9

View file

@ -70,9 +70,17 @@ function _update()
weapons_manager.update()
for b in all(actors) do
for a in all(actors) do
a:update()
end
for b in all(bullets) do
b:update()
end
for p in all(particles) do
p:update()
end
end
LAYERS = {
@ -83,6 +91,8 @@ LAYERS = {
}
actors = {}
bullets = {}
particles = {}
function _draw()
cls(0)
@ -94,8 +104,24 @@ function _draw()
end
function spawn_objects()
local b = Barrel:new(32,32)
add(actors,b)
local width = 32
local height = 32
for x=0,width,1 do
for y=0,height,1 do
local tile = map_manager.get_layer_tile(x,y,1)
if (tile == 3) then
local b = Barrel:new(x*tile_width,y*tile_height)
add(actors,b)
end
end
end
end
function render_layer(layer)
@ -114,9 +140,13 @@ function render_layer(layer)
b:draw()
end
-- for b in all(bullets) do
-- b:draw()
-- end
end
for b in all(bullets) do
b:draw()
end
for p in all(particles) do
p:draw()
end
end
end

View file

@ -38,6 +38,10 @@ function M.get_layer_tile(x,y,layer)
return get_layer_tile(x,y,layer)
end
function M.get_layer_tile(x,y,layer)
return get_layer_tile(x,y,layer)
end
-- function M.can_move(x,y)
-- return is_tile(0,x,y)
-- end

View file

@ -6,7 +6,6 @@ local Actor = require(make_path("actor2"))
M = {}
local weapons = {}
local bullets = {}
-- local particles = {}
weapon = {
@ -39,7 +38,7 @@ Particle.spriteIndex=81
function Particle:update()
self.life-=1
if self.life<=0 then
del(actors,self)
del(particles,self)
end
end
@ -47,37 +46,47 @@ end
-- spr(self.spriteIndex,self.x,self.y)
-- end
bullet = {
x=0,
y=0,
dx=0,
dy=0,
spriteIndex=80,
destroy_sprite_index=66,
life=100,
damage=1,
}
bullet.__index = bullet
function bullet:new(x, y, dx, dy)
local o = setmetatable({}, bullet)
o.x = x
o.y = y
o.dx = dx
o.dy = dy
return o
end
function bullet:destroy()
Bullet = Actor:new()
--function Bullet:new()
--
--end
Bullet.dx=0
Bullet.dy=0
Bullet.spriteIndex = 80
Bullet.damage=1
-- bullet = {
-- x=0,
-- y=0,
-- dx=0,
-- dy=0,
-- spriteIndex=80,
-- destroy_sprite_index=66,
-- life=100,
-- damage=1,
-- }
-- bullet.__index = bullet
-- function bullet:new(x, y, dx, dy)
-- local o = setmetatable({}, bullet)
-- o.x = x
-- o.y = y
-- o.dx = dx
-- o.dy = dy
-- return o
-- end
function Bullet:destroy()
-- Create particle
local p = Particle:new(self.x, self.y)
add(actors, p)
add(particles, p)
del(bullets,self)
end
function bullet:check_collision()
function Bullet:check_collision()
if (map_manager.is_tile_shoot_solid(self.x,self.y)) then
self:destroy()
@ -85,7 +94,7 @@ function bullet:check_collision()
end
function bullet:update()
function Bullet:update()
self.x+=self.dx
self.y+=self.dy
@ -97,7 +106,7 @@ function bullet:update()
self:check_collision()
end
function bullet:draw()
function Bullet:draw()
spr(self.spriteIndex,self.x,self.y)
end
@ -109,7 +118,10 @@ function M.create_bullet(new_x, new_y, dir_x, dir_y)
local normalized_dir_x = dir_x / length
local normalized_dir_y = dir_y / length
local b = bullet:new(new_x, new_y, normalized_dir_x * 2, normalized_dir_y * 2)
local b = Bullet:new(new_x, new_y, normalized_dir_x * 2, normalized_dir_y * 2)
b.dx = normalized_dir_x * 2
b.dy = normalized_dir_y * 2
add(bullets, b)
@ -151,9 +163,9 @@ function M.init()
end
function M.draw()
for b in all(bullets) do
b:draw()
end
--for b in all(bullets) do
-- b:draw()
--end
-- for p in all(particles) do
-- p:draw()
@ -161,9 +173,9 @@ function M.draw()
end
function M.update()
for b in all(bullets) do
b:update()
end
--for b in all(bullets) do
-- b:update()
--end
-- for p in all(particles) do
-- p:update()