Blame view

game/menu.lua 7.19 KB
ca0e8212   Geoffrey PREUD'HOMME   Code original
1
  function menu_load()

1dc2cce5   Geoffrey PREUD'HOMME   Jeu redémarre
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
  	imagelist = {"title", "cloud1", "cloud2", "ground", "bush1", "bush2", "powerup", "rocket", "star", "asteroid-big1", "sunglasses", "awesome", "arrow", "groundwin",

  				"asteroid-big2", "asteroid-small1", "asteroid-small2", "bullet", "littleexplosion", "warning", "wheatley", "alert", "randomshit", "bird"}

  	

  	for i = 1, #imagelist do

  		_G[imagelist[i] .. "img"] = love.graphics.newImage("graphics/" .. imagelist[i] .. ".png")

  	end

  	

  	fontimage = love.graphics.newImage("graphics/font.png")

  	

  	fontglyphs = "0123456789abcdefghijklmnopqrstuvwxyz.:/,'C-_>* !{}?"

  	fontquads = {}

  	for i = 1, string.len(fontglyphs) do

  		fontquads[string.sub(fontglyphs, i, i)] = love.graphics.newQuad((i-1)*8, 0, 8, 8, 408, 8)

  	end

  

  	playerimg = love.graphics.newImage("graphics/trosh.png")

  	playerquad = {love.graphics.newQuad(0, 0, 14, 25, 54, 25), love.graphics.newQuad(14, 0, 14, 25, 54, 25), love.graphics.newQuad(28, 0, 26, 12, 54, 25), love.graphics.newQuad(28, 12, 26, 12, 54, 25)}

  	

  	winplayerimg = love.graphics.newImage("graphics/troshwin.png")

  	winplayerquad = {}

  	for x = 1, 4 do

  		winplayerquad[x] = love.graphics.newQuad((x-1)*11, 0, 11, 26, 44, 26)

  	end

  	

  	enemyimg = love.graphics.newImage("graphics/enemy.png")

  	enemyquad = {}

  	for y = 1, 4 do

  		for x = 1, 4 do

  			enemyquad[(y-1)*4+x] = love.graphics.newQuad((x-1)*100, (y-1)*96, 100, 96, 400, 384)

  		end

  	end

  	

  	explosionimg = love.graphics.newImage("graphics/explosion.png")

  	explosionquad = {}

  	for y = 1, 5 do

  		for x = 1, 5 do

  			explosionquad[(y-1)*5+x] = love.graphics.newQuad((x-1)*66, (y-1)*81, 66, 81, 330, 405)

  		end

  	end

  	

  	bigexplosionimg = love.graphics.newImage("graphics/bigexplosion.png")

  	bigexplosionquad = {}

  	for y = 1, 5 do

  		for x = 1, 5 do

  			bigexplosionquad[(y-1)*5+x] = love.graphics.newQuad((x-1)*108, (y-1)*121, 108, 121, 540, 605)

  		end

  	end

  	

  	splatterimg = love.graphics.newImage("graphics/splatter.png")

  	splatterquad = {}

  	for x = 1, 6 do

  		splatterquad[x] = love.graphics.newQuad((x-1)*64, 0, 64, 64, 384, 64)

  	end

  	

  	birdquad = {love.graphics.newQuad(0, 0, 29, 16, 29, 32), love.graphics.newQuad(0, 16, 29, 16, 29, 32)}

  	

  	scale = 8

  	local w, h = love.graphics.getMode()

  	if w ~= 100*scale or h ~= 80*scale then

  		love.graphics.setMode(100*scale, 80*scale, false, true, 0)

  	end

  	love.graphics.setIcon( love.graphics.newImage("graphics/icon.png") )

  	

  	bgmusic = love.audio.newSource("audio/trosong.ogg")

  	bgmusic:setLooping(true)

  	lasersound = love.audio.newSource("audio/laser.wav")

  	bigexplosionsound = love.audio.newSource("audio/bigexplosion.ogg")

  	explosionsound = love.audio.newSource("audio/explosion.wav")

  	launchsound = love.audio.newSource("audio/launch.ogg")

  	gunfire = love.audio.newSource("audio/gunfire.wav")

  	space = love.audio.newSource("audio/space.ogg")

  	sunglassessound = love.audio.newSource("audio/sunglasses.ogg")

  	splat = love.audio.newSource("audio/splat.ogg")

  	ding = love.audio.newSource("audio/ding.ogg")

  	credits = love.audio.newSource("audio/credits.ogg")

  	approach = love.audio.newSource("audio/approach.ogg")

  	credits:setLooping(true)

  	

  	skipupdate = true

  	shakeamount = 0

  	shake = 0

  	fade = 0

  	playerframe = 1

  	scoreanim = 1

  	rainbowi = 0.5

  	sini = 0

  	sini2 = math.pi/2

  	scrollx = 0

  	points = 0

  	machinedelay = 0.05

  	stars = {}

  	explosions = {}

  	backgroundstripes = 10

  	sunrot = 0

  	

  	lasers = {}

  	

  	realasteroiddelay = 1

  	movement1speed = 100

  	laserdelay = 0

  	reallaserdelay = 0.4

  	starttimer = 0

  

8ba25957   Geoffrey PREUD'HOMME   pseudo
105
106
      pseudo = ""

  

1dc2cce5   Geoffrey PREUD'HOMME   Jeu redémarre
107
108
109
110
111
112
      rockets = nil

      jumped = nil

      landing = nil

      sunglasses = nil

      massenemies = nil

  

ca0e8212   Geoffrey PREUD'HOMME   Code original
113
114
115
  	love.graphics.setBackgroundColor(153, 217, 234)

  	clouds = {}

  	bushes = {}

8ba25957   Geoffrey PREUD'HOMME   pseudo
116
      -- love.audio.play(bgmusic)

ca0e8212   Geoffrey PREUD'HOMME   Code original
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
  	for i = 1, 5 do

  		table.insert(clouds, cloud:new(true))

  	end

  	for i = 1, 30 do

  		table.insert(bushes, bush:new(true))

  	end

  	

  	textpos = {}

  	for i = 0, 7 do

  		textpos[i] = 10

  	end

  	playerframetimer = 0

  	playery = 50

  	playerx = 10

  	--				 1    2   3    4     5     6      7

  	startactions = {2.3, 4.6, 7, 8.20, 9.20, 10.20, 11.20}

8ba25957   Geoffrey PREUD'HOMME   pseudo
133
  	starti = -1

ca0e8212   Geoffrey PREUD'HOMME   Code original
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
  	

  end

  

  function menu_update(dt)

  	for i, v in pairs(clouds) do

  		v:update(dt)

  	end

  	for i, v in pairs(bushes) do

  		v:update(dt)

  	end

  	

  	scrollx = scrollx + dt*50

  	

  	rainbowi = math.mod(rainbowi + dt/2, 1)

  	sini = math.mod(sini + dt*10, math.pi*2)

  	sini2 = math.mod(sini2 + dt*5, math.pi*2)

  	

8ba25957   Geoffrey PREUD'HOMME   pseudo
151
  	if starti >= 0 and starttimer > startactions[starti+1] then

ca0e8212   Geoffrey PREUD'HOMME   Code original
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
  		starti = starti+1

  		if starti == 7 then

  			changegamestate("scene1")

  			return

  		end

  	end

  	

  	if starti >= 4 then

  		shakeamount = shakeamount + dt*4

  	end

  	if starti >= 5 then

  		shakeamount = shakeamount + dt*10

  	end

  	if starti >= 6 then

  		shakeamount = shakeamount + dt*50

  	end

  	

  	for i = -1, starti-1 do

  		if i >= 0 then

  			textpos[i] = textpos[i]+(textpos[i]^2*dt)

  		end

  	end

  	

  	playerframetimer = playerframetimer + dt*10

  	while playerframetimer >= 2 do

  		playerframetimer = playerframetimer - 2

  	end

  	playerframe = math.floor(playerframetimer)+1

  	

  	playermovement1(dt)

  end

  

  function menu_action()

8ba25957   Geoffrey PREUD'HOMME   pseudo
185
186
187
      if starti >= 0 then

          shootlaser()

      end

ca0e8212   Geoffrey PREUD'HOMME   Code original
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
  end

  

  function menu_draw()

  	love.graphics.setColor(255, 255, 255)

  	for i, v in pairs(clouds) do

  		v:draw()

  	end

  	

  	for i = 1, 2 do

  		draw(groundimg, -math.mod(scrollx, 120) + (i-1)*120, 59)

  	end

  	for i, v in pairs(bushes) do

  		v:draw()

  	end

  	

  	love.graphics.drawq(playerimg, playerquad[playerframe], playerx*scale, playery*scale, 0, scale, scale, 7, 12)

  	for i, v in pairs(lasers) do

  		v:draw()

  	end

  

  	love.graphics.setColor(getrainbowcolor(rainbowi, 420))

  	draw(titleimg, 50, 23, math.sin(sini)/10, (math.sin(sini2)+1)/5+0.7, (math.sin(sini2)+1)/5+0.7, 50, 13)

  	

  	love.graphics.setColor(255, 0, 0)

8ba25957   Geoffrey PREUD'HOMME   pseudo
212
213
214
215
216
217
218
219
      if starti >= -1 then

  		properprint("tapes ton pseudo", 20, 40+textpos[0], scale/2)

  		properprint(pseudo, 20, 50+textpos[0], scale/2)

      end

  

  	-- if starti >= 0 then

  	-- 	properprint("directed by maurice", 13, 40+textpos[0], scale/2)

  	-- end

ca0e8212   Geoffrey PREUD'HOMME   Code original
220
  	if starti >= 1 then

97da6ed3   Geoffrey PREUD'HOMME   Menu en français
221
  		properprint("utilise les fleches", 11, 40+textpos[1], scale/2)

ca0e8212   Geoffrey PREUD'HOMME   Code original
222
223
  	end

  	if starti >= 2 then

97da6ed3   Geoffrey PREUD'HOMME   Menu en français
224
  		properprint("et la touche espace", 12, 40+textpos[2], scale/2)

ca0e8212   Geoffrey PREUD'HOMME   Code original
225
226
  	end

  	if starti >= 3 then

97da6ed3   Geoffrey PREUD'HOMME   Menu en français
227
  		properprint("pret...", 30, 40+textpos[3], scale/2)

ca0e8212   Geoffrey PREUD'HOMME   Code original
228
229
230
231
232
233
234
235
236
237
238
  	end

  	if starti >= 4 then

  		properprint("3", 40, 40+textpos[4], scale*2)

  	end

  	if starti >= 5 then

  		properprint("2", 36, 40+textpos[5], scale*3)

  	end

  	if starti >= 6 then

  		properprint("1", 32, 40+textpos[6], scale*4)

  	end

  	if starti >= 7 then

97da6ed3   Geoffrey PREUD'HOMME   Menu en français
239
  		properprint("go !", 10, 40+textpos[7], scale*6)

ca0e8212   Geoffrey PREUD'HOMME   Code original
240
241
242
243
  	end

  	

  	love.graphics.setColor(255, 255, 255)

  end

8ba25957   Geoffrey PREUD'HOMME   pseudo
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
  

  function menu_keypressed(key, unicode)

      print('key: ' .. key .. ' → ' .. unicode)

      if starti == -1 then

          if string.len(pseudo) < 16 then

              if string.sub(key, 1, 2) == 'kp' then

                  key = string.sub(key, 3, 3)

              end

              if string.len(key) == 1 and string.find(fontglyphs, key, 1, true) then

                  pseudo = pseudo .. key

              end

          end

          if key == 'backspace' then

              pseudo = string.sub(pseudo, 1, -2)

          end

          if key == 'return' and string.len(pseudo) > 3 then

              starttimer = startactions[1]

              starti = 1

          end

      end

  end