Advertisement
GameCodeurStudent

myshotter

Nov 23rd, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.67 KB | None | 0 0
  1. -- Cette ligne permet d'afficher des traces dans la console pendant l'éxécution
  2. io.stdout:setvbuf('no')
  3.  
  4. -- Empèche Love de filtrer les contours des images quand elles sont redimentionnées
  5. -- Indispensable pour du pixel art
  6. love.graphics.setDefaultFilter("nearest")
  7.  
  8. -- Cette ligne permet de déboguer pas à pas dans ZeroBraneStudio
  9. if arg[#arg] == "-debug" then require("mobdebug").start() end
  10.  
  11. math.randomseed(love.timer.getTime())
  12.  
  13.  
  14.  
  15. --ICI LES VARIABLES ET TABLES---------------------------------------------------------------------------
  16. local ecrant_courant = "menu"
  17. victory = false
  18. victoryTimer = 0
  19. heros = {}
  20. canvas = {}
  21. canvas.heros = love.graphics.newCanvas(120,80)
  22. canvas.enemy1 = love.graphics.newCanvas(80,80)
  23. canvas.enemy2 = love.graphics.newCanvas(80,80)
  24. --element char--
  25. canvas.baseChar = {}
  26. canvas.baseChar[1] = love.graphics.newCanvas(80,80)
  27. canvas.baseChar[2] = love.graphics.newCanvas(80,80)
  28. canvas.baseChar[3] = love.graphics.newCanvas(80,80)
  29. canvas.tourelleChar = love.graphics.newCanvas(40,120)
  30.  
  31. canvas.bossBase = love.graphics.newCanvas(480,360)
  32. canvas.bossTourelle = love.graphics.newCanvas(70,80)
  33. canvas.launcherType1 = {}
  34. canvas.launcherType1[1] = love.graphics.newCanvas(120,100)--basic ferme
  35. canvas.launcherType1[2] = love.graphics.newCanvas(120,100)-- ouverture porte 1/2 avec fond alien1
  36. canvas.launcherType1[3] = love.graphics.newCanvas(120,100) --ouverture 3/4 fond alien1
  37. canvas.launcherType1[4] = canvas.launcherType1[1]--basic ferme
  38. --canvas.launcherType2 = love.graphics.newCanvas(120,100) --ouverture total fond alien1
  39.  
  40.  
  41. canvas.tir1 = love.graphics.newCanvas(15,15)
  42. canvas.tir2 = love.graphics.newCanvas(15,15)
  43. canvas.tir3 = love.graphics.newCanvas(15,15)
  44. canvas.tir4 = love.graphics.newCanvas(15,25)
  45. camera = {}
  46. camera.y = 0
  47. camera.vitesse = 0.8
  48. chronotir = 0
  49. chronoLaunch = 120
  50. --------------------------ENEMY----------------------
  51. enemy = {}
  52. enemy[1] = {
  53. {0,0,1,1,1,1,0,0},
  54. {0,1,1,1,1,1,1,0},
  55. {1,1,1,1,1,1,1,1},
  56. {1,1,1,1,1,1,1,1},
  57. {1,1,1,1,1,1,1,1},
  58. {1,1,1,1,1,1,1,1},
  59. {0,1,1,1,1,1,1,0},
  60. {0,0,1,1,1,1,0,0},
  61. }
  62.  
  63. enemy[2] = {
  64. {0,0,0,0,0,0,0,0},
  65. {1,0,0,0,0,0,0,1},
  66. {1,1,0,0,0,0,1,1},
  67. {1,1,1,0,0,1,1,1},
  68. {1,1,1,0,0,1,1,1},
  69. {1,1,0,0,0,0,1,1},
  70. {1,0,0,0,0,0,0,1},
  71. {0,0,0,0,0,0,0,0},
  72. }
  73.  
  74. ----------------------------MENU----------------------------
  75. menu = {}
  76. menu.tabAlphabet = {}
  77. menu.tabAlphabet.A = {
  78. {1,1,1,1,1},
  79. {1,0,0,0,1},
  80. {1,0,0,0,1},
  81. {1,1,1,1,1},
  82. {1,0,0,0,1},
  83. {1,0,0,0,1},
  84. {1,0,0,0,1},
  85. }
  86. menu.tabAlphabet.B = {
  87. {1,1,1,1,0},
  88. {1,0,0,0,1},
  89. {1,0,0,0,1},
  90. {1,1,1,1,0},
  91. {1,0,0,0,1},
  92. {1,0,0,0,1},
  93. {1,1,1,1,0},
  94. }
  95. menu.tabAlphabet.C = {
  96. {1,1,1,1,1},
  97. {1,0,0,0,0},
  98. {1,0,0,0,0},
  99. {1,0,0,0,0},
  100. {1,0,0,0,0},
  101. {1,0,0,0,0},
  102. {1,1,1,1,1},
  103. }
  104. menu.tabAlphabet.D = {
  105. {1,1,1,0,0},
  106. {1,0,0,1,0},
  107. {1,0,0,0,1},
  108. {1,0,0,0,1},
  109. {1,0,0,0,1},
  110. {1,0,0,1,0},
  111. {1,1,1,0,0},
  112. }
  113. menu.tabAlphabet.E = {
  114. {1,1,1,1,1},
  115. {1,0,0,0,0},
  116. {1,0,0,0,0},
  117. {1,1,1,1,1},
  118. {1,0,0,0,0},
  119. {1,0,0,0,0},
  120. {1,1,1,1,1},
  121. }
  122. menu.tabAlphabet.F = {
  123. {1,1,1,1,1},
  124. {1,0,0,0,0},
  125. {1,0,0,0,0},
  126. {1,1,1,1,0},
  127. {1,0,0,0,0},
  128. {1,0,0,0,0},
  129. {1,0,0,0,0},
  130. }
  131. menu.tabAlphabet.G = {
  132. {1,1,1,1,1},
  133. {1,0,0,0,1},
  134. {1,0,0,0,1},
  135. {1,0,0,0,0},
  136. {1,0,1,1,1},
  137. {1,0,0,0,1},
  138. {1,1,1,1,1},
  139. }
  140. menu.tabAlphabet.H = {
  141. {1,0,0,0,1},
  142. {1,0,0,0,1},
  143. {1,0,0,0,1},
  144. {1,1,1,1,1},
  145. {1,0,0,0,1},
  146. {1,0,0,0,1},
  147. {1,0,0,0,1},
  148. }
  149. menu.tabAlphabet.I = {
  150. {0,0,1,0,0},
  151. {0,0,1,0,0},
  152. {0,0,1,0,0},
  153. {0,0,1,0,0},
  154. {0,0,1,0,0},
  155. {0,0,1,0,0},
  156. {0,0,1,0,0},
  157. }
  158. menu.tabAlphabet.J = {
  159. {1,1,1,1,1},
  160. {0,0,0,0,1},
  161. {0,0,0,0,1},
  162. {0,0,0,0,1},
  163. {1,0,0,0,1},
  164. {1,0,0,0,1},
  165. {1,1,1,1,1},
  166. }
  167. menu.tabAlphabet.K = {
  168. {1,0,0,0,1},
  169. {1,0,0,1,0},
  170. {1,0,1,0,0},
  171. {1,1,0,0,0},
  172. {1,0,1,0,0},
  173. {1,0,0,1,0},
  174. {1,0,0,0,1},
  175. }
  176. menu.tabAlphabet.L = {
  177. {1,0,0,0,0},
  178. {1,0,0,0,0},
  179. {1,0,0,0,0},
  180. {1,0,0,0,0},
  181. {1,0,0,0,0},
  182. {1,0,0,0,0},
  183. {1,1,1,1,1},
  184. }
  185. menu.tabAlphabet.M = {
  186. {1,0,0,0,1},
  187. {1,1,0,1,1},
  188. {1,0,1,0,1},
  189. {1,0,0,0,1},
  190. {1,0,0,0,1},
  191. {1,0,0,0,1},
  192. {1,0,0,0,1},
  193. }
  194. menu.tabAlphabet.N = {
  195. {1,0,0,0,0,0,1},
  196. {1,1,0,0,0,0,1},
  197. {1,0,1,0,0,0,1},
  198. {1,0,0,1,0,0,1},
  199. {1,0,0,0,1,0,1},
  200. {1,0,0,0,0,1,1},
  201. {1,0,0,0,0,0,1},
  202. }
  203. menu.tabAlphabet.O = {
  204. {1,1,1,1,1},
  205. {1,0,0,0,1},
  206. {1,0,0,0,1},
  207. {1,0,0,0,1},
  208. {1,0,0,0,1},
  209. {1,0,0,0,1},
  210. {1,1,1,1,1},
  211. }
  212. menu.tabAlphabet.P = {
  213. {1,1,1,1,1},
  214. {1,0,0,0,1},
  215. {1,0,0,0,1},
  216. {1,1,1,1,1},
  217. {1,0,0,0,0},
  218. {1,0,0,0,0},
  219. {1,0,0,0,0},
  220. }
  221. menu.tabAlphabet.Q = {
  222. {1,1,1,1,1},
  223. {1,0,0,0,1},
  224. {1,0,0,0,1},
  225. {1,0,0,0,1},
  226. {1,1,1,1,1},
  227. {0,0,0,1,0},
  228. {0,0,0,0,1},
  229. }
  230. menu.tabAlphabet.R = {
  231. {1,1,1,1,1},
  232. {1,0,0,0,1},
  233. {1,0,0,0,1},
  234. {1,1,1,1,1},
  235. {1,0,1,0,0},
  236. {1,0,0,1,0},
  237. {1,0,0,0,1},
  238. }
  239. menu.tabAlphabet.S = {
  240. {1,1,1,1,1},
  241. {1,0,0,0,0},
  242. {1,0,0,0,0},
  243. {1,1,1,1,1},
  244. {0,0,0,0,1},
  245. {0,0,0,0,1},
  246. {1,1,1,1,1},
  247. }
  248. menu.tabAlphabet.T = {
  249. {1,1,1,1,1},
  250. {0,0,1,0,0},
  251. {0,0,1,0,0},
  252. {0,0,1,0,0},
  253. {0,0,1,0,0},
  254. {0,0,1,0,0},
  255. {0,0,1,0,0},
  256. }
  257. menu.tabAlphabet.U = {
  258. {1,0,0,0,1},
  259. {1,0,0,0,1},
  260. {1,0,0,0,1},
  261. {1,0,0,0,1},
  262. {1,0,0,0,1},
  263. {1,0,0,0,1},
  264. {1,1,1,1,1},
  265. }
  266.  
  267.  
  268. menu.tabAlphabet.V = {
  269. {1,0,0,0,0,0,1},
  270. {1,0,0,0,0,0,1},
  271. {0,1,0,0,0,1,0},
  272. {0,1,0,0,0,1,0},
  273. {0,0,1,0,1,0,0},
  274. {0,0,1,0,1,0,0},
  275. {0,0,0,1,0,0,0},
  276. }
  277. menu.tabAlphabet.W = {
  278. {1,0,0,1,0,0,1},
  279. {1,0,1,0,1,0,1},
  280. {1,0,1,0,1,0,1},
  281. {0,1,0,0,0,1,0},
  282. {0,0,0,0,0,0,0},
  283. {0,0,0,0,0,0,0},
  284. {0,0,0,0,0,0,0},
  285. }
  286. menu.tabAlphabet.X = {
  287. {1,0,0,0,0,0,1},
  288. {0,1,0,0,0,1,0},
  289. {0,0,1,0,1,0,0},
  290. {0,0,0,1,0,0,0},
  291. {0,0,1,0,1,0,0},
  292. {0,1,0,0,0,1,0},
  293. {1,0,0,0,0,0,1},
  294. }
  295. menu.tabAlphabet.Y = {
  296. {1,0,0,0,0,0,1},
  297. {0,1,0,0,0,1,0},
  298. {0,0,1,0,1,0,0},
  299. {0,0,0,1,0,0,0},
  300. {0,0,0,1,0,0,0},
  301. {0,0,0,1,0,0,0},
  302. {0,0,0,1,0,0,0},
  303. }
  304.  
  305.  
  306.  
  307. menu.tabAlphabet.Z = {
  308. {1,1,1,1,1,1,1},
  309. {0,0,0,0,0,1,0},
  310. {0,0,0,0,1,0,0},
  311. {0,0,0,1,0,0,0},
  312. {0,0,1,0,0,0,0},
  313. {0,1,0,0,0,0,0},
  314. {1,1,1,1,1,1,1},
  315. }
  316.  
  317.  
  318. menu.tabIndexAlphabet = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}
  319.  
  320. menu.alphabetSheet = {}
  321. liste_sprites_menu = {}
  322. liste_sprites_jeu = {}
  323. liste_aliens = {}
  324. liste_tirs = {}
  325.  
  326. --NIVEAU/MAP--------------------------------------------------------------------------------------------
  327.  
  328.  
  329.  
  330.  
  331. --FONCTION NEWSQUELETTE DE BASE-------------------------------------------------------------------------
  332. function math.angle(x1,y1, x2,y2) return math.atan2(y2-y1, x2-x1) end
  333.  
  334. function collide(a1, a2)
  335. if (a1==a2) then return false end
  336. local dx = a1.x - a2.x
  337. local dy = a1.y - a2.y
  338. if (math.abs(dx) < a1.canvas:getWidth()/2+a2.canvas:getWidth()/2) then
  339. if (math.abs(dy) < a1.canvas:getHeight()/2+a2.canvas:getHeight()/2) then
  340. return true
  341. end
  342. end
  343. return false
  344. end
  345.  
  346. function CreeSpriteMenu(pIndex,pX,pY,pScaleW,pScaleH,pAnime)
  347. sprite = {}
  348. sprite.index = pIndex
  349. sprite.x = pX
  350. sprite.y = pY
  351. sprite.scaleW = pScaleW
  352. sprite.scaleH = pScaleH
  353.  
  354. table.insert(liste_sprites_menu,sprite)
  355.  
  356. return sprite
  357. end
  358.  
  359.  
  360. function CreeSpriteJeu(pNomCanvas,pX,pY,pAngle,pScaleW,pScaleH,pSpeedX,pSpeedY,pEnergy,pAnime)
  361. sprite = {}
  362. sprite.canvas = pNomCanvas
  363. sprite.x = pX
  364. sprite.y = pY
  365. sprite.angle = math.rad(pAngle)
  366. sprite.scaleW = pScaleW
  367. sprite.scaleH = pScaleH
  368. sprite.speedX = pSpeedX
  369. sprite.speedY = pSpeedY
  370. sprite.energy = pEnergy
  371. sprite.initVie = pEnergy
  372. sprite.delete = false
  373.  
  374. table.insert(liste_sprites_jeu,sprite)
  375.  
  376. sprite.frame = 1
  377. sprite.listeFrames = {}
  378. sprite.maxFrame = 1
  379.  
  380. return sprite
  381. end
  382.  
  383. function CreeAlien(pType,pX,pY,pAngle,pScaleW,pScaleH,pSpeedX,pSpeedY,pEnergy,pAnime)
  384.  
  385. alien = {}
  386. local pNomCanvas = ""
  387. if pType == 1 then
  388. pNomCanvas = canvas.enemy1
  389. alien = CreeSpriteJeu(pNomCanvas,pX,pY,pAngle,pScaleW,pScaleH,pSpeedX,pSpeedY,pEnergy,pAnime)
  390. table.insert(liste_aliens,alien)
  391. end
  392. if pType == 2 then
  393. pNomCanvas = canvas.enemy2
  394. alien = CreeSpriteJeu(pNomCanvas,pX,pY,pAngle,pScaleW,pScaleH,pSpeedX,pSpeedY,pEnergy,pAnime)
  395. table.insert(liste_aliens,alien)
  396. end
  397. if pType == 3 then --tourelle enemy octosprite
  398. pNomCanvas = canvas.launcherType1[1]
  399. alien = CreeSpriteJeu(pNomCanvas,pX,pY,pAngle,pScaleW,pScaleH,pSpeedX,pSpeedY,pEnergy,pAnime)
  400. table.insert(liste_aliens,alien)
  401. end
  402. if pType == 4 then
  403. pNomCanvas = canvas.tourelleChar
  404. alien = CreeSpriteJeu(pNomCanvas,pX,pY,pAngle,pScaleW,pScaleH,pSpeedX,pSpeedY,pAnime)
  405. table.insert(liste_aliens,alien)
  406. alien.chronotir = 0
  407. alien.type = pType
  408. alien.endormie = true
  409. alien.tourelleChar = true
  410. alien.energy = 5
  411. pNomCanvas = canvas.baseChar[1]
  412. alien = CreeSpriteJeu(pNomCanvas,pX,pY,pAngle,pScaleW,pScaleH,pSpeedX,pSpeedY,pAnime)
  413. table.insert(liste_aliens,alien)
  414. alien.chronotir = 0
  415. alien.type = pType
  416. alien.endormie = true
  417. alien.energy = 10
  418. end
  419.  
  420. if pType == 1 then
  421. local dir = math.random(1,2)
  422. if dir == 1 then
  423. alien.speedX = alien.speedX*-1
  424. else
  425. alien.speedX = alien.speedX
  426. end
  427. alien.rotate = 1
  428. elseif pType == 2 then
  429. alien.angleTir = 0
  430. elseif pType == 4 then
  431. alien.frame = 1
  432. alien.listeFrames = canvas.baseChar
  433. alien.maxFrame = #canvas.baseChar
  434. elseif pType == 3 then
  435. alien.frame = 1
  436. alien.listeFrames = canvas.launcherType1
  437. alien.maxFrame = #canvas.launcherType1
  438. end
  439. alien.chronotir = 0
  440. alien.type = pType
  441. alien.endormie = true
  442.  
  443. end
  444.  
  445. function CreeTir(pNomCanvas,pX,pY,pAngle,pScaleW,pScaleH,pSpeedX,pSpeedY,pType,pAllegance)
  446. tir = CreeSpriteJeu(pNomCanvas,pX,pY,pAngle,pScaleW,pScaleH,pSpeedX,pSpeedY,pAnime)
  447. table.insert(liste_tirs,tir)
  448. tir.type = pType
  449. tir.allegance = pAllegance
  450. end
  451.  
  452.  
  453. function loadMenu()
  454. print("chargement de l'alphabet")
  455. local n
  456. for n=1,#menu.tabIndexAlphabet do
  457. local canvas = love.graphics.newCanvas(70,70)
  458. love.graphics.setCanvas(canvas)
  459. local l,c
  460. local x,y = 0,0
  461. love.graphics.setColor(math.random(40,255),math.random(40,255),math.random(40,255))
  462. for l=1,#menu.tabAlphabet[menu.tabIndexAlphabet[n]] do
  463. for c=1,#menu.tabAlphabet[menu.tabIndexAlphabet[n]][l] do
  464. local id = menu.tabAlphabet[menu.tabIndexAlphabet[n]][l][c]
  465. if id > 0 then
  466. --love.graphics.setColor(244,235,66) pour les canvas hors lettres config des couleur dans le canvas
  467. love.graphics.rectangle("fill",x,y,10,10)
  468.  
  469. --probleme de gestion de coleur avec le code qui suit voir comment resoudre ceci
  470. -- love.graphics.setColor(255,255,255)
  471. -- love.graphics.setColor(50,152,35)
  472. -- love.graphics.rectangle("line",x,y,10,10)
  473. end
  474. x=x+10
  475. end
  476. x=0
  477. y = y + 10
  478. end
  479. table.insert(menu.alphabetSheet,canvas)
  480. end
  481. print("chargement de l'alphabet terminé")
  482.  
  483. love.graphics.setColor(255,255,255)
  484. love.graphics.setCanvas()
  485. local x = 60
  486. local y = 150
  487. local line1 = {9,3,9,0,20,15,21,20,0,4,5,2,21,20,5}
  488. -- ici première ligne
  489. local n
  490.  
  491. for n=1, #line1 do
  492.  
  493. id = line1[n]
  494. if id > 0 then
  495. CreeSpriteMenu(id,x,y,1.2,1.2)
  496. end
  497. x=x+65
  498. if n < #line1/2 then
  499. y = y-15
  500. elseif n >= #line1/2 then
  501. y = y + 15
  502. end
  503. end
  504. --ici 2ème ligne
  505. local line2 = {7,1,13,5,0,3,15,4,5,21,18,0,19,20,21,4,5,14,20}
  506. x = 150
  507. y = 350
  508. for n=1, #line2 do
  509. id = line2[n]
  510. if id > 0 then
  511. if n==1 or n==6 or n==13 then
  512. CreeSpriteMenu(id,x,y,1.5,1.5)
  513. else
  514. CreeSpriteMenu(id,x,y,0.75,0.75)
  515. end
  516. end
  517. x=x+45
  518. end
  519. --3ème ligne
  520. local line3 = {7,1,13,5,0,10,1,13,0,16,21,18,5,0,3,15,4,5}
  521. x=60
  522. y=600
  523. for n=1, #line3 do
  524.  
  525. id = line3[n]
  526. if id > 0 then
  527. if n==1 or n==5 or n>8 then
  528. CreeSpriteMenu(id,x,y,1.2,1.2)
  529. else
  530. CreeSpriteMenu(id,x,y,0.75,0.75)
  531. end
  532. end
  533. if n < #line3/2 then
  534. y = y + 8
  535. x=x+40
  536. elseif n >= #line3/2 then
  537. y = y - 7
  538. x=x+65
  539. end
  540. end
  541. --line push space
  542. local line4 = {16,21,19,8,0,19,16,1,3,5,0,6,15,18,19,20,1,18,20}
  543. x = 200
  544. y = 475
  545. for n=1, #line4 do
  546. id = line4[n]
  547. if id > 0 then
  548. if n>14 then
  549. CreeSpriteMenu(id,x,y,0.60,0.60)
  550. else
  551. CreeSpriteMenu(id,x,y,0.35,0.35)
  552. end
  553. end
  554. if n>13 then
  555. x = x+45
  556. else
  557. x=x+25
  558. end
  559. end
  560. end
  561.  
  562. function loadJeu()
  563.  
  564. --------------CANVAS HEROS---------------------------------------
  565. print("chargements des heros")
  566. love.graphics.setCanvas(canvas.heros)
  567. local h = canvas.heros:getHeight()
  568. local l = canvas.heros:getWidth()
  569. love.graphics.setColor(66, 134, 244)--bleu
  570. love.graphics.polygon("fill",0,80,120,80,60,0)
  571. --aile gauche
  572. love.graphics.setColor(244, 43, 29)--rouge
  573. love.graphics.polygon("fill",0,80,l/7*3,80,l/7*3,h-(h/3.5*3))
  574. love.graphics.setColor(161, 66, 244)--violet
  575. love.graphics.polygon("fill",0,80,l/7*2,80,l/7*2,h-(h/3.5*2))
  576. love.graphics.setColor(111, 232, 51)--vert
  577. love.graphics.polygon("fill",0,80,l/7,80,l/7,h-(h/3.5))
  578. --aile droite
  579. love.graphics.setColor(244, 43, 29)--rouge
  580. love.graphics.polygon("fill",120,80,l/7*4,80,l/7*4,h-(h/3.5*3))
  581. love.graphics.setColor(161, 66, 244)--violet
  582. love.graphics.polygon("fill",120,80,l/7*5,80,l/7*5,h-(h/3.5*2))
  583. love.graphics.setColor(111, 232, 51)--vert
  584. love.graphics.polygon("fill",120,80,l/7*6,80,l/7*6,h-(h/3.5))
  585. --bulle cockpit
  586. love.graphics.setColor(239, 236, 35)
  587. local n
  588. for n=1,15 do
  589. love.graphics.circle("fill",l/2,0+(l/7/2)+n,l/7/2)
  590. end
  591. love.graphics.setColor(255,255,255)
  592. love.graphics.setCanvas()
  593. heros = CreeSpriteJeu(canvas.heros,heros.x,heros.y,0,1,1,500,500)
  594. heros.x = largeur/2
  595. heros.y = hauteur - canvas.heros:getHeight()
  596. heros.energy = 10
  597. print("chargements des heros terminé")
  598.  
  599. -----------------------TIRS---------------------------------------
  600. print("chargment des tirs")
  601. ----tirs 1 orange----
  602. love.graphics.setCanvas(canvas.tir1)
  603. love.graphics.setColor(239, 124, 23)--orange
  604. love.graphics.circle("fill",canvas.tir1:getWidth()/2,canvas.tir1:getHeight()/2,7)
  605. love.graphics.setColor(255,255,255)
  606. love.graphics.setCanvas()
  607. ----tirs alien 1------
  608. love.graphics.setCanvas(canvas.tir2)
  609. love.graphics.setColor(247, 243, 12)--jaune
  610. love.graphics.circle("fill",canvas.tir2:getWidth()/2,canvas.tir2:getHeight()/2,7)
  611. love.graphics.setColor(255,255,255)
  612. love.graphics.setCanvas()
  613. ------tirs alien 2 -----------
  614. love.graphics.setCanvas(canvas.tir3)
  615. love.graphics.setColor(196, 65, 244)--violet
  616. love.graphics.circle("fill",canvas.tir3:getWidth()/2,canvas.tir3:getHeight()/2,7)
  617. love.graphics.setColor(255,255,255)
  618. love.graphics.setCanvas()
  619. love.graphics.setCanvas(canvas.tir4)
  620. love.graphics.setColor(196, 152, 19)--cuivre
  621. love.graphics.rectangle("fill",0,0,15,15)
  622. love.graphics.circle("fill",7.5,15,7.5)
  623. -- local n
  624. -- x,y,z = 7.5,7.5,7.5
  625. -- for n=1,50 do
  626. -- love.graphics.circle("fill",x,y,z)
  627. -- y = y + 0.02
  628. -- z = z - 0.1
  629. -- end
  630. love.graphics.setColor(255,255,255)
  631. love.graphics.setCanvas()
  632. print("chargment des tis terminé")
  633.  
  634. --------------------------CANVAS ENEMY 1------------------------
  635. print("chargement des enemys")
  636. love.graphics.setCanvas(canvas.enemy1)
  637. local x,y = 0,0
  638. for l=1,#enemy[1] do
  639. for c=1,#enemy[1][l] do
  640. local id = enemy[1][l][c]
  641. if id > 0 then
  642. love.graphics.setColor(12, 110, 247)--bleu
  643. love.graphics.rectangle("fill",x,y,9,9,5,5)
  644. end
  645. x=x+10
  646. end
  647. x=0
  648. y = y + 10
  649. end
  650. love.graphics.setColor(247, 243, 12)--jaune
  651. love.graphics.circle("fill",canvas.enemy1:getWidth()/2,canvas.enemy1:getHeight()/2,10)
  652. love.graphics.setColor(255,255,255)
  653. love.graphics.setCanvas()
  654. ----------------enemy2--------------------------
  655. love.graphics.setCanvas(canvas.enemy2)
  656. local l,c
  657. local x,y = 0,0
  658. for l=1,#enemy[2] do
  659. for c=1,#enemy[2][l] do
  660. local id = enemy[2][l][c]
  661. if id > 0 then
  662. love.graphics.setColor(66, 244, 72)--vert
  663. love.graphics.rectangle("fill",x,y,9,9,5,5)
  664. end
  665. x=x+10
  666. end
  667. x=0
  668. y = y + 10
  669. end
  670. love.graphics.setColor(196, 65, 244)--violet
  671. love.graphics.circle("fill",canvas.enemy2:getWidth()/2,canvas.enemy2:getHeight()/2,10)
  672. love.graphics.setColor(255,255,255)
  673. love.graphics.setCanvas()
  674.  
  675. ---------------------- base char 1------------------------
  676. love.graphics.setCanvas(canvas.baseChar[1])
  677. -----chenille gauche--------------
  678. love.graphics.setColor(4, 117, 25)--vert foncé
  679. love.graphics.rectangle("fill",0,0,20,20/3)
  680. love.graphics.setColor(0,0,0)
  681. love.graphics.rectangle("line",0,0,20,20/3)
  682. love.graphics.setColor(4, 117, 25)--vert foncé
  683. love.graphics.rectangle("fill",0,20/3,20,20)
  684. love.graphics.setColor(0,0,0)
  685. love.graphics.rectangle("line",0,20/3,20,20)
  686. love.graphics.setColor(4, 117, 25)--vert foncé
  687. love.graphics.rectangle("fill",0,20+20/3,20,20)
  688. love.graphics.setColor(0,0,0)
  689. love.graphics.rectangle("line",0,20+20/3,20,20)
  690. love.graphics.setColor(4, 117, 25)--vert foncé
  691. love.graphics.rectangle("fill",0,40+20/3,20,20)
  692. love.graphics.setColor(0,0,0)
  693. love.graphics.rectangle("line",0,40+20/3,20,20)
  694. love.graphics.setColor(4, 117, 25)--vert foncé
  695. love.graphics.rectangle("fill",0,60+20/3,20,20/3*2)
  696. love.graphics.setColor(0,0,0)
  697. love.graphics.rectangle("line",0,60+20/3,20,20/3*2)
  698. --------chenille droite-------------------
  699. love.graphics.setColor(4, 117, 25)--vert foncé
  700. love.graphics.rectangle("fill",60,0,20,20/3)
  701. love.graphics.setColor(0,0,0)
  702. love.graphics.rectangle("line",60,0,20,20/3)
  703. love.graphics.setColor(4, 117, 25)--vert foncé
  704. love.graphics.rectangle("fill",60,20/3,20,20)
  705. love.graphics.setColor(0,0,0)
  706. love.graphics.rectangle("line",60,20/3,20,20)
  707. love.graphics.setColor(4, 117, 25)--vert foncé
  708. love.graphics.rectangle("fill",60,20+20/3,20,20)
  709. love.graphics.setColor(0,0,0)
  710. love.graphics.rectangle("line",60,20+20/3,20,20)
  711. love.graphics.setColor(4, 117, 25)--vert foncé
  712. love.graphics.rectangle("fill",60,40+20/3,20,20)
  713. love.graphics.setColor(0,0,0)
  714. love.graphics.rectangle("line",60,40+20/3,20,20)
  715. love.graphics.setColor(4, 117, 25)--vert foncé
  716. love.graphics.rectangle("fill",60,60+20/3,20,20/3*2)
  717. love.graphics.setColor(0,0,0)
  718. love.graphics.rectangle("line",60,60+20/3,20,20/3*2)
  719. ------------ base tourelle--------------
  720. love.graphics.setColor(4, 117, 25)--vert foncé
  721. love.graphics.rectangle("fill",20,10,40,60)
  722. love.graphics.setColor(255,255,255)
  723. love.graphics.setCanvas()
  724.  
  725. ---------------------- base char 1------------------------
  726. love.graphics.setCanvas(canvas.baseChar[2])
  727. -----chenille gauche--------------
  728. love.graphics.setColor(4, 117, 25)--vert foncé
  729. love.graphics.rectangle("fill",0,0,20,20/3*2)
  730. love.graphics.setColor(0,0,0)
  731. love.graphics.rectangle("line",0,0,20,20/3*2)
  732. love.graphics.setColor(4, 117, 25)--vert foncé
  733. love.graphics.rectangle("fill",0,20/3*2,20,20)
  734. love.graphics.setColor(0,0,0)
  735. love.graphics.rectangle("line",0,20/3*2,20,20)
  736. love.graphics.setColor(4, 117, 25)--vert foncé
  737. love.graphics.rectangle("fill",0,20+20/3*2,20,20)
  738. love.graphics.setColor(0,0,0)
  739. love.graphics.rectangle("line",0,20+20/3*2,20,20)
  740. love.graphics.setColor(4, 117, 25)--vert foncé
  741. love.graphics.rectangle("fill",0,40+20/3*2,20,20)
  742. love.graphics.setColor(0,0,0)
  743. love.graphics.rectangle("line",0,40+20/3*2,20,20)
  744. love.graphics.setColor(4, 117, 25)--vert foncé
  745. love.graphics.rectangle("fill",0,60+20/3*2,20,20/3)
  746. love.graphics.setColor(0,0,0)
  747. love.graphics.rectangle("line",0,60+20/3*2,20,20/3)
  748. --------chenille droite-------------------
  749. love.graphics.setColor(4, 117, 25)--vert foncé
  750. love.graphics.rectangle("fill",60,0,20,20/3*2)
  751. love.graphics.setColor(0,0,0)
  752. love.graphics.rectangle("line",60,0,20,20/3*2)
  753. love.graphics.setColor(4, 117, 25)--vert foncé
  754. love.graphics.rectangle("fill",60,20/3*2,20,20)
  755. love.graphics.setColor(0,0,0)
  756. love.graphics.rectangle("line",60,20/3*2,20,20)
  757. love.graphics.setColor(4, 117, 25)--vert foncé
  758. love.graphics.rectangle("fill",60,20+20/3*2,20,20)
  759. love.graphics.setColor(0,0,0)
  760. love.graphics.rectangle("line",60,20+20/3*2,20,20)
  761. love.graphics.setColor(4, 117, 25)--vert foncé
  762. love.graphics.rectangle("fill",60,40+20/3*2,20,20)
  763. love.graphics.setColor(0,0,0)
  764. love.graphics.rectangle("line",60,40+20/3*2,20,20)
  765. love.graphics.setColor(4, 117, 25)--vert foncé
  766. love.graphics.rectangle("fill",60,60+20/3*2,20,20/3)
  767. love.graphics.setColor(0,0,0)
  768. love.graphics.rectangle("line",60,60+20/3*2,20,20/3)
  769. love.graphics.rectangle("line",60,60+20/3*2,20,20/3)
  770. ------------ base tourelle--------------
  771. love.graphics.setColor(4, 117, 25)--vert foncé
  772. love.graphics.rectangle("fill",20,10,40,60)
  773. love.graphics.setColor(255,255,255)
  774. love.graphics.setCanvas()
  775. ---------------------- base char 3------------------------
  776. love.graphics.setCanvas(canvas.baseChar[3])
  777. -----chenille gauche--------------
  778. love.graphics.setColor(4, 117, 25)--vert foncé
  779. love.graphics.rectangle("fill",0,0,20,20)
  780. love.graphics.setColor(0,0,0)
  781. love.graphics.rectangle("line",0,0,20,20)
  782. love.graphics.setColor(4, 117, 25)--vert foncé
  783. love.graphics.rectangle("fill",0,20,20,20)
  784. love.graphics.setColor(0,0,0)
  785. love.graphics.rectangle("line",0,20,20,20)
  786. love.graphics.setColor(4, 117, 25)--vert foncé
  787. love.graphics.rectangle("fill",0,40,20,20)
  788. love.graphics.setColor(0,0,0)
  789. love.graphics.rectangle("line",0,40,20,20)
  790. love.graphics.setColor(4, 117, 25)--vert foncé
  791. love.graphics.rectangle("fill",0,60,20,20)
  792. love.graphics.setColor(0,0,0)
  793. love.graphics.rectangle("line",0,60,20,20)
  794. love.graphics.setColor(4, 117, 25)--vert foncé
  795. love.graphics.rectangle("fill",0,80,20,20)
  796. love.graphics.setColor(0,0,0)
  797. love.graphics.rectangle("line",0,80,20,20)
  798. --------chenille droite-------------------
  799. love.graphics.setColor(4, 117, 25)--vert foncé
  800. love.graphics.rectangle("fill",60,0,20,20)
  801. love.graphics.setColor(0,0,0)
  802. love.graphics.rectangle("line",60,0,20,20)
  803. love.graphics.setColor(4, 117, 25)--vert foncé
  804. love.graphics.rectangle("fill",60,20,20,20)
  805. love.graphics.setColor(0,0,0)
  806. love.graphics.rectangle("line",60,20,20,20)
  807. love.graphics.setColor(4, 117, 25)--vert foncé
  808. love.graphics.rectangle("fill",60,40,20,20)
  809. love.graphics.setColor(0,0,0)
  810. love.graphics.rectangle("line",60,40,20,20)
  811. love.graphics.setColor(4, 117, 25)--vert foncé
  812. love.graphics.rectangle("fill",60,60,20,20)
  813. love.graphics.setColor(0,0,0)
  814. love.graphics.rectangle("line",60,60,20,20)
  815. love.graphics.setColor(4, 117, 25)--vert foncé
  816. love.graphics.rectangle("fill",60,80,20,20/3)
  817. love.graphics.setColor(0,0,0)
  818. love.graphics.rectangle("line",60,80,20,20/3)
  819. love.graphics.rectangle("line",60,80,20,20/3)
  820. ------------ base tourelle--------------
  821. love.graphics.setColor(4, 117, 25)--vert foncé
  822. love.graphics.rectangle("fill",20,10,40,60)
  823. love.graphics.setColor(255,255,255)
  824. love.graphics.setCanvas()
  825. -------------tourelle-----------------
  826. love.graphics.setCanvas(canvas.tourelleChar)
  827. love.graphics.setColor(4, 117, 25)
  828. love.graphics.rectangle("fill",12.5,75,15,45)
  829. love.graphics.circle("fill",20,60,20)
  830. love.graphics.setColor(50,125,200)
  831. love.graphics.circle("line",20,60,20)
  832. love.graphics.circle("line",25,55,5)
  833. love.graphics.setColor(50,125,200)
  834. love.graphics.rectangle("line",12.5,80,15,40)
  835. love.graphics.setColor(255,255,255)
  836. love.graphics.setCanvas()
  837.  
  838. -----------------TOURELLE LAUNCHE ALIEN-------------------
  839. -----------TYPE 1----------------
  840. ---Ferme-----------
  841. love.graphics.setCanvas(canvas.launcherType1[1])
  842. love.graphics.setColor(66, 62, 62)--gris
  843. love.graphics.rectangle("fill",0,0,120,100)
  844. love.graphics.setColor(226, 23, 9) --rouge
  845. love.graphics.rectangle("fill",50,0,20,100)
  846. love.graphics.rectangle("fill",0,40,120,20)
  847. love.graphics.setColor(255,255,255)
  848. love.graphics.setCanvas()
  849. ---ouverture 1/2-----------
  850. love.graphics.setCanvas(canvas.launcherType1[2])
  851. love.graphics.setColor(12, 110, 247)--bleu
  852. love.graphics.rectangle("fill",20,10,80,80)
  853. love.graphics.setColor(247, 243, 12)--jaune
  854. love.graphics.circle("fill",60,50,10)
  855. love.graphics.setColor(226, 23, 9) --rouge
  856. love.graphics.rectangle("fill",0,0,50,40)
  857. love.graphics.setColor(226, 23, 9) --rouge
  858. love.graphics.rectangle("fill",0,60,50,40)
  859. love.graphics.setColor(226, 23, 9) --rouge
  860. love.graphics.rectangle("fill",70,0,50,40)
  861. love.graphics.setColor(226, 23, 9) --rouge
  862. love.graphics.rectangle("fill",70,60,50,40)
  863. love.graphics.setColor(66, 62, 62)--gris
  864. love.graphics.rectangle("fill",0,0,40,30)
  865. love.graphics.setColor(66, 62, 62)--gris
  866. love.graphics.rectangle("fill",0,70,40,30)
  867. love.graphics.setColor(66, 62, 62)--gris
  868. love.graphics.rectangle("fill",80,0,40,30)
  869. love.graphics.setColor(66, 62, 62)--gris
  870. love.graphics.rectangle("fill",80,70,40,30)
  871. ---ouverture 3/4-----------
  872. love.graphics.setCanvas(canvas.launcherType1[3])
  873. love.graphics.setColor(12, 110, 247)--bleu
  874. love.graphics.rectangle("fill",20,30,80,40)
  875. love.graphics.setColor(12, 110, 247)--bleu
  876. love.graphics.rectangle("fill",30,20,60,60)
  877. love.graphics.setColor(12, 110, 247)--bleu
  878. love.graphics.rectangle("fill",40,10,40,80)
  879. love.graphics.setColor(247, 243, 12)--jaune
  880. love.graphics.circle("fill",60,50,10)
  881. love.graphics.setColor(226, 23, 9) --rouge
  882. love.graphics.rectangle("fill",0,0,30,20)
  883. love.graphics.setColor(226, 23, 9) --rouge
  884. love.graphics.rectangle("fill",0,80,30,20)
  885. love.graphics.setColor(226, 23, 9) --rouge
  886. love.graphics.rectangle("fill",90,0,30,20)
  887. love.graphics.setColor(226, 23, 9) --rouge
  888. love.graphics.rectangle("fill",90,80,30,20)
  889. love.graphics.setColor(66, 62, 62)--gris
  890. love.graphics.rectangle("fill",0,0,20,10)
  891. love.graphics.setColor(66, 62, 62)--gris
  892. love.graphics.rectangle("fill",0,80,20,10)
  893. love.graphics.setColor(66, 62, 62)--gris
  894. love.graphics.rectangle("fill",100,0,20,10)
  895. love.graphics.setColor(66, 62, 62)--gris
  896. love.graphics.rectangle("fill",100,80,20,10)
  897. -- love.graphics.setColor(226, 23, 9) --rouge
  898. -- love.graphics.setColor(226, 23, 9) --rouge
  899. -- love.graphics.rectangle("fill",50,0,20,100)
  900. -- love.graphics.rectangle("fill",0,40,120,20)
  901.  
  902. -- love.graphics.setColor(66, 62, 62)--gris
  903. -- love.graphics.rectangle("fill",0,0,120,100)
  904. -- love.graphics.setColor(226, 23, 9) --rouge
  905. -- love.graphics.rectangle("fill",50,0,20,100)
  906. -- love.graphics.rectangle("fill",0,40,120,20)
  907. -- love.graphics.setColor(255,255,255)
  908. love.graphics.setCanvas()
  909.  
  910.  
  911.  
  912. print("chargement des enemys terminé")
  913. ------------------------Creation des enemy en sprite---------------------------
  914. -- enemy1 = CreeAlien(1,largeur/2,hauteur/2,0,1,1,0,0,3)
  915. -- enemy2 = CreeAlien(2,200,100,0,1,1,0,0,4)
  916. -- tourelle = CreeAlien(4,largeur/3,hauteur/2,0,1,1,0,0)
  917. CreeAlien(3,largeur/2,hauteur/2,0,1,1,0,0)
  918.  
  919. end
  920.  
  921. -------------------------------------UPDATE-------------------------------------------------------------
  922. function updateMenu()
  923. end
  924.  
  925. --local ratioRotate = 0
  926.  
  927. function updateJeu(dt)
  928.  
  929. -- ratioRotate = ratioRotate + 0.001
  930.  
  931. ----------------------update des tirs-----------------
  932. local n
  933. for n=#liste_tirs,1,-1 do
  934. tir = liste_tirs[n]
  935. tir.y = tir.y + (tir.speedY * dt)
  936. tir.x = tir.x + (tir.speedX * dt)
  937. if tir.allegance == "horde" then
  938. if collide(tir,heros) then
  939. tir.delete = true
  940. table.remove(liste_tirs,n)
  941. print("JE SUIS TOUCHE")
  942. heros.energy = heros.energy - 1
  943. if heros.energy <= 0 then
  944. ecrant_courrant = "gameover"
  945. end
  946. end
  947. end
  948. if tir.allegance == "alliance" then
  949. local nAlien
  950. for nAlien=#liste_aliens,1,-1 do
  951. alien = liste_aliens[nAlien]
  952. if alien.endormie == false then
  953. if collide(tir,alien) then
  954. tir.delete = true
  955. table.remove(liste_tirs,n)
  956. print("ENEMY HITED")
  957. alien.energy = alien.energy - 1
  958. if alien.energy <= 0 then
  959. alien.delete = true
  960. table.remove(liste_aliens,nAlien)
  961. end
  962. end
  963. end
  964. end
  965. end
  966. if tir.y > hauteur or tir.y < 0 or tir.x > largeur or tir.x < 0 then
  967. tir.delete = true
  968. table.remove(liste_tirs,n)
  969. end
  970. end
  971.  
  972. ------update des aliens------
  973. for n=#liste_aliens,1,-1 do
  974. alien = liste_aliens[n]
  975. if alien.y >=0 then
  976. alien.endormie = false
  977. end
  978. if alien.endormie == false then
  979. alien.y = alien.y + (alien.speedY * dt)
  980. alien.x = alien.x + (alien.speedX * dt)
  981. alien.chronotir = alien.chronotir - 1
  982. if alien.type == 1 then
  983. alien.angle = alien.angle + (90*dt)--bug avec - (90*dt)
  984. if alien.angle > 360 or alien.angle < - 360 then
  985. alien.angle = alien.angle%360
  986. end
  987. -- if math.abs(math.floor(alien.angle)) == 90 or math.abs(math.floor(alien.angle)) == 180
  988. -- or math.abs(math.floor(alien.angle)) == 270 or math.abs(math.floor(alien.angle)) == 0 then
  989. if math.abs(math.floor(alien.angle))%90 == 0 then --or alien.angle %180 or alien.angle % 270 or alien.angle %360 then
  990. CreeTir(canvas.tir2,alien.x,alien.y + canvas.enemy1:getHeight()/2,0,1,1,0,500,2,"horde")
  991. CreeTir(canvas.tir2,alien.x,alien.y - canvas.enemy1:getHeight()/2,0,1,1,0,-500,2,"horde")
  992. CreeTir(canvas.tir2,alien.x + canvas.enemy1:getWidth()/2,alien.y ,0,1,1,500,0,2,"horde")
  993. CreeTir(canvas.tir2,alien.x - canvas.enemy1:getWidth()/2,alien.y,0,1,1,-500,0,2,"horde")
  994. end
  995. end
  996. if alien.type == 2 then
  997. alien.angle = alien.angle + (5*dt)
  998. if alien.chronotir <= 0 then
  999. alien.angleTir = alien.angleTir + (49*dt)
  1000. CreeTir(canvas.tir3,alien.x,alien.y,0,1,1,500*math.cos(alien.angleTir),500*math.sin(alien.angleTir),3,"horde")
  1001. CreeTir(canvas.tir3,alien.x,alien.y,0,1,1,-500*math.cos(alien.angleTir),-500*math.sin(alien.angleTir),3,"horde")
  1002. alien.chronotir = 10
  1003. end
  1004. end
  1005. if alien.type == 4 then
  1006. if alien.tourelleChar then
  1007. if alien.chronotir <= 0 then
  1008. local angle
  1009. angle = math.angle(alien.x,alien.y,heros.x,heros.y)
  1010. alien.angle = angle + 4.7
  1011. CreeTir(canvas.tir4,alien.x,alien.y,alien.angle,1,1,100*math.cos(angle),100*math.sin(angle),4,"horde")
  1012. alien.chronotir = math.random(40,60)
  1013. tir.angle = angle + 4.7
  1014. end
  1015. end
  1016. end
  1017. else
  1018. alien.y = alien.y + camera.y
  1019. end
  1020. end
  1021.  
  1022.  
  1023. --update gestion de tous les sprite jeu----------------
  1024. for n=#liste_sprites_jeu,1,-1 do
  1025. sprite = liste_sprites_jeu[n]
  1026. if sprite.maxFrame > 1 then
  1027. if sprite.type==4 then
  1028. sprite.frame = sprite.frame + 0.2
  1029. if math.floor(sprite.frame) > sprite.maxFrame then
  1030. sprite.frame = 1
  1031. else
  1032. sprite.canvas = sprite.listeFrames[math.floor(sprite.frame)]
  1033. end
  1034. elseif sprite.type == 3 then
  1035. chronoLaunch = chronoLaunch - 1
  1036. if chronoLaunch <= 0 then
  1037. sprite.frame = sprite.frame + 0.02
  1038. if math.floor(sprite.frame) > sprite.maxFrame then
  1039. sprite.frame = 1
  1040. chronoLaunch = 120
  1041. CreeAlien(1,sprite.x,sprite.y,0,1,1,50,100,3)
  1042. else
  1043. sprite.canvas = sprite.listeFrames[math.floor(sprite.frame)]
  1044. end
  1045. end
  1046. end
  1047. end
  1048. if sprite.delete == true then
  1049. table.remove(liste_sprites_jeu,n)
  1050. end
  1051. end
  1052.  
  1053. if love.keyboard.isDown("up") then
  1054. if heros.y > 0 + canvas.heros:getHeight()/2 then
  1055. heros.y = heros.y - (heros.speedY*dt)
  1056. else
  1057. heros.y = 0 + canvas.heros:getHeight()/2
  1058. end
  1059. end
  1060. if love.keyboard.isDown("down") then
  1061. if heros.y < hauteur - canvas.heros:getHeight()/2 then
  1062. heros.y = heros.y + (heros.speedY*dt)
  1063. else
  1064. heros.y = hauteur - canvas.heros:getHeight()/2
  1065. end
  1066. end
  1067. if love.keyboard.isDown("left") then
  1068. if heros.x > 0 + canvas.heros:getWidth()/2 then
  1069. heros.x = heros.x - (heros.speedX*dt)
  1070. else
  1071. heros.x = 0 + canvas.heros:getWidth()/2
  1072. end
  1073. end
  1074. if love.keyboard.isDown("right") then
  1075. if heros.x < largeur - canvas.heros:getWidth()/2 then
  1076. heros.x = heros.x + (heros.speedX*dt)
  1077. else
  1078. heros.x = largeur - canvas.heros:getWidth()/2
  1079. end
  1080. end
  1081. camera.y = camera.y + (camera.vitesse*dt)
  1082.  
  1083. end
  1084.  
  1085. --if condition gameover then
  1086. --ecrant_courant = "gameOver"
  1087. --if condition victory then
  1088. --victory = true
  1089. --victoryTimer=500
  1090. --victoryTimer = victoryTimer - 1
  1091. --if victoryTimer <= 0 then
  1092. -- ecrancourant = "victory"
  1093. --vict
  1094. --victory = true
  1095. --end
  1096.  
  1097. function updateGameOver()
  1098. end
  1099.  
  1100. function updateVictory()
  1101. end
  1102.  
  1103. -----------------------------------------DRAW-----------------------------------------------------------
  1104. function drawMenu()
  1105. local n
  1106. for n=1, #liste_sprites_menu do
  1107. sprite = liste_sprites_menu[n]
  1108. love.graphics.draw(menu.alphabetSheet[sprite.index],sprite.x,sprite.y,0,sprite.scaleW,sprite.scaleH
  1109. ,menu.alphabetSheet[sprite.index]:getWidth()/2,menu.alphabetSheet[sprite.index]:getHeight()/2)
  1110. end
  1111. love.graphics.print("nb de sprite_menu = "..tostring(#liste_sprites_menu))
  1112. end
  1113.  
  1114. function drawJeu()
  1115. local n
  1116. for n=#liste_sprites_jeu,1,-1 do
  1117. sprite = liste_sprites_jeu[n]
  1118. love.graphics.setBlendMode("alpha")
  1119. love.graphics.draw(sprite.canvas,sprite.x,sprite.y,sprite.angle,sprite.scaleW,sprite.scaleH,
  1120. sprite.canvas:getWidth()/2,sprite.canvas:getHeight()/2)
  1121. end
  1122. --dessin de la barre hp heros--
  1123. heros.initVie = 10
  1124. if heros.energy >= heros.initVie/3 * 2 then
  1125. love.graphics.setColor(51,255,0)
  1126. love.graphics.rectangle("fill",heros.x - heros.canvas:getWidth()/2, heros.y + heros.canvas:getHeight(),heros.energy*12,5)
  1127. elseif heros.energy < heros.initVie/3 * 2 and heros.energy >= heros.initVie/3 then
  1128. love.graphics.setColor(255,102,0)
  1129. love.graphics.rectangle("fill",heros.x - heros.canvas:getWidth()/2, heros.y + heros.canvas:getHeight(),heros.energy*12,5)
  1130. elseif heros.energy < heros.initVie/3 then
  1131. love.graphics.setColor(255,0,0)
  1132. love.graphics.rectangle("fill",heros.x - heros.canvas:getWidth()/2, heros.y + heros.canvas:getHeight(),heros.energy*12,5)
  1133. end
  1134. love.graphics.setColor(255,255,255)
  1135. -- love.graphics.rectangle("fill",largeur/2,hauteur/2,50,50)
  1136. -- love.graphics.setColor(51,255,0)
  1137. -- love.graphics.circle("fill",largeur/2,hauteur/2,25)
  1138. -- love.graphics.setColor(255,255,255)
  1139. -- love.graphics.print("nb sprites : "..tostring(#liste_sprites_jeu))
  1140. -- love.graphics.print("nb tirs : "..tostring(#liste_tirs),0,20)
  1141. -- love.graphics.print("hp.hero : "..tostring(heros.energy),0,30)
  1142. ---- love.graphics.print("angle = "..tostring(math.floor(liste_aliens[1].angle)),0,30)
  1143. -- love.graphics.print("pi value "..tostring(math.pi/4),0,50)
  1144. -- love.graphics.print("alien canvas = "..tostring(alien.canvas),0,60)
  1145.  
  1146. end
  1147.  
  1148. function drawGameOver()
  1149. end
  1150.  
  1151. function drawVictory()
  1152. end
  1153.  
  1154. -------------------------------------------GENERAL LOAD/UPDATE/DRAW----------------------------------------
  1155. function love.load()
  1156. love.window.setMode(1024,768)
  1157. love.window.setTitle("GameCodeurStudentShooter")
  1158.  
  1159. largeur = love.graphics.getWidth()
  1160. hauteur = love.graphics.getHeight()
  1161. loadMenu()
  1162.  
  1163. end
  1164.  
  1165. function love.update(dt)
  1166.  
  1167. if ecrant_courant == "jeu" then
  1168. updateJeu(dt)
  1169. elseif ecrant_courant == "menu" then
  1170. updateMenu()
  1171. elseif ecrant_courant == "gameover" then
  1172. updateGameOver()
  1173. elseif ecrant_courant == "victory" then
  1174. updateVictory()
  1175. end
  1176.  
  1177. end
  1178.  
  1179. function love.draw()
  1180.  
  1181. if ecrant_courant == "jeu" then
  1182. drawJeu()
  1183. elseif ecrant_courant == "menu" then
  1184. drawMenu()
  1185. elseif ecrant_courant == "gameover" then
  1186. drawGameOver()
  1187. elseif ecrant_courant == "victory" then
  1188. drawVictory()
  1189. end
  1190.  
  1191. end
  1192.  
  1193.  
  1194.  
  1195. function love.keypressed(key)
  1196. if key == "space" then
  1197. if ecrant_courant == "menu" then
  1198. ecrant_courant = "jeu"
  1199. loadJeu()
  1200. elseif ecrant_courant == "jeu" then
  1201. CreeTir(canvas.tir1,heros.x,heros.y - heros.canvas:getHeight()/2,0,1,1,0,-500,1,"alliance")
  1202. end
  1203. end
  1204. if key == "escape" then
  1205. love.event.push("quit")
  1206. end
  1207. if key =="v" then
  1208. local state = not love.mouse.isVisible() -- the opposite of whatever it currently is
  1209. love.mouse.setVisible(state)
  1210. end love.mouse.isVisible()
  1211. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement