Fixed winning screen, collisions
This commit is contained in:
		
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -1,4 +1,4 @@
 | 
				
			|||||||
# Made in Blockbench 4.11.1
 | 
					# Made in Blockbench 4.11.1
 | 
				
			||||||
newmtl m_3faa339c-1a1f-acb0-d167-578e9ad5cc6b
 | 
					newmtl m_a4450cf3-b34d-625a-0f2a-2e3eff98962f
 | 
				
			||||||
map_Kd background.png
 | 
					map_Kd background.png
 | 
				
			||||||
newmtl none
 | 
					newmtl none
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 661 B After Width: | Height: | Size: 12 KiB  | 
@ -44,7 +44,6 @@ explosions_process :: proc(delta: f32) {
 | 
				
			|||||||
explosions_draw :: proc() {
 | 
					explosions_draw :: proc() {
 | 
				
			||||||
    rl.BeginBlendMode(rl.BlendMode.ADDITIVE)
 | 
					    rl.BeginBlendMode(rl.BlendMode.ADDITIVE)
 | 
				
			||||||
	#reverse for &e, i in explosions {
 | 
						#reverse for &e, i in explosions {
 | 
				
			||||||
        fmt.println(e.time)
 | 
					 | 
				
			||||||
		color := rl.ColorAlpha(e.color, 1 - ease.exponential_in(e.time / e.duration))
 | 
							color := rl.ColorAlpha(e.color, 1 - ease.exponential_in(e.time / e.duration))
 | 
				
			||||||
		rl.DrawSphere(e.position, e.radius, color)
 | 
							rl.DrawSphere(e.position, e.radius, color)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
@ -62,18 +62,14 @@ gameover_draw :: proc(state: ^GameState) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	SubtitleText := [?]cstring{"Нажмите Escape чтобы выйти"}
 | 
						SubtitleText := [?]cstring{"Нажмите Escape чтобы выйти"}
 | 
				
			||||||
	SubtitleFontSize :: 48
 | 
						SubtitleFontSize :: 48
 | 
				
			||||||
	SubtitleSpacing :: 2
 | 
					 | 
				
			||||||
	SubtitleSizes := [?]vec2{{}}
 | 
					 | 
				
			||||||
	for c, i in SubtitleText {
 | 
					 | 
				
			||||||
		SubtitleSizes = rl.MeasureTextEx(Res.Fonts.UI, c, SubtitleFontSize, SubtitleSpacing)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	rl.DrawRectangleV(gameover.position - gameover.size / 2, gameover.size, rl.Color{90, 30, 150, 10})
 | 
						rl.DrawRectangleV(gameover.position - gameover.size / 2, gameover.size, rl.Color{90, 30, 150, 10})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rl.DrawTextPro(Res.Fonts.Title, TitleText, gameover.position - {0, 100}, TitleSize / 2, 0, TitleFontSize, TitleSpacing, rl.WHITE)
 | 
						draw_text_centered(Res.Fonts.Title, TitleText, gameover.position - {0, 100}, TitleFontSize, 1, rl.WHITE)
 | 
				
			||||||
	for c, i in SubtitleText {
 | 
						for c, i in SubtitleText {
 | 
				
			||||||
		rl.DrawTextPro(Res.Fonts.UI, c, gameover.position - {0, f32(10 - i * 50)}, SubtitleSizes[i] / 2, 0, SubtitleFontSize, SubtitleSpacing, rl.WHITE)
 | 
							draw_text_centered(Res.Fonts.UI, c, gameover.position - {0, f32(10 - i * 50)}, SubtitleFontSize, 1, rl.WHITE)
 | 
				
			||||||
 | 
							// rl.DrawTextPro(Res.Fonts.UI, c, winning.position - {0, f32(10 - i * 50)}, SubtitleSizes[i] / 2, 0, SubtitleFontSize, SubtitleSpacing, rl.WHITE)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -75,6 +75,10 @@ player_update :: proc(player: ^Player, game: ^Game, delta: f32) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if !is_dead {
 | 
					    if !is_dead {
 | 
				
			||||||
        pos += vel * delta 
 | 
					        pos += vel * delta 
 | 
				
			||||||
 | 
					        if pos.y < radius {
 | 
				
			||||||
 | 
					            pos.y = radius
 | 
				
			||||||
 | 
					            vel.y = - vel.y
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        if !is_dodging {
 | 
					        if !is_dodging {
 | 
				
			||||||
            dir_vector : vec3
 | 
					            dir_vector : vec3
 | 
				
			||||||
            if intro_timer <= 0 {
 | 
					            if intro_timer <= 0 {
 | 
				
			||||||
 | 
				
			|||||||
@ -244,6 +244,10 @@ snake_hunt :: proc(game: ^Game, delta: f32) {
 | 
				
			|||||||
    Head.vel = rl.Vector3MoveTowards(Head.vel, rl.Vector3Normalize(target_diff) * 50, 40 * delta)
 | 
					    Head.vel = rl.Vector3MoveTowards(Head.vel, rl.Vector3Normalize(target_diff) * 50, 40 * delta)
 | 
				
			||||||
    Head.dir = math.atan2(-Head.vel.y, Head.vel.x)
 | 
					    Head.dir = math.atan2(-Head.vel.y, Head.vel.x)
 | 
				
			||||||
    Head.pos += Head.vel * delta
 | 
					    Head.pos += Head.vel * delta
 | 
				
			||||||
 | 
					    if Head.pos.y < Head.radius {
 | 
				
			||||||
 | 
					        Head.pos.y = Head.radius
 | 
				
			||||||
 | 
					        Head.vel.y = -Head.vel.y / 2
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
snake_shot :: proc(game: ^Game, delta: f32) {
 | 
					snake_shot :: proc(game: ^Game, delta: f32) {
 | 
				
			||||||
 | 
				
			|||||||
@ -26,7 +26,7 @@ get_vec_from_angle :: proc(angle: f32) -> vec3 {
 | 
				
			|||||||
    return rl.Vector3RotateByAxisAngle(vec3right, vec3backward, angle)
 | 
					    return rl.Vector3RotateByAxisAngle(vec3right, vec3backward, angle)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
draw_text_centered :: proc(font: rl.Font, text: cstring, pos: vec2, size: f32) {
 | 
					draw_text_centered :: proc(font: rl.Font, text: cstring, pos: vec2, size: f32, spacing : f32 = 1, color : rl.Color = rl.BLACK) {
 | 
				
			||||||
    text_size := rl.MeasureTextEx(font, text, size, 1)
 | 
					    text_size := rl.MeasureTextEx(font, text, size, 1)
 | 
				
			||||||
    rl.DrawTextPro(font, text, pos, text_size / 2, 0, size, 1, rl.BLACK)
 | 
					    rl.DrawTextPro(font, text, pos, text_size / 2, 0, size, 1, color)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										13
									
								
								winning.odin
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								winning.odin
									
									
									
									
									
								
							@ -58,22 +58,17 @@ winning_draw :: proc(state: ^GameState) {
 | 
				
			|||||||
	TitleFontSize :: 96
 | 
						TitleFontSize :: 96
 | 
				
			||||||
	TitleSpacing :: 3
 | 
						TitleSpacing :: 3
 | 
				
			||||||
	TitleText :: "GAME OVER"
 | 
						TitleText :: "GAME OVER"
 | 
				
			||||||
	TitleSize := rl.MeasureTextEx(Res.Fonts.Title, TitleText, TitleFontSize, TitleSpacing)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	SubtitleText := [?]cstring{"Тор смог спасти Асгард от Рагнарёка", "Нажмите Escape чтобы выйти"}
 | 
						SubtitleText := [?]cstring{"Тор смог спасти Асгард", "от Рагнарёка!", "Нажмите Escape чтобы выйти"}
 | 
				
			||||||
	SubtitleFontSize :: 48
 | 
						SubtitleFontSize :: 48
 | 
				
			||||||
	SubtitleSpacing :: 2
 | 
					 | 
				
			||||||
	SubtitleSizes := [?]vec2{{}, {}}
 | 
					 | 
				
			||||||
	for c, i in SubtitleText {
 | 
					 | 
				
			||||||
		SubtitleSizes = rl.MeasureTextEx(Res.Fonts.UI, c, SubtitleFontSize, SubtitleSpacing)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	rl.DrawRectangleV(winning.position - winning.size / 2, winning.size, rl.Color{90, 30, 150, 10})
 | 
						rl.DrawRectangleV(winning.position - winning.size / 2, winning.size, rl.Color{90, 30, 150, 10})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rl.DrawTextPro(Res.Fonts.Title, TitleText, winning.position - {0, 100}, TitleSize / 2, 0, TitleFontSize, TitleSpacing, rl.WHITE)
 | 
						draw_text_centered(Res.Fonts.Title, TitleText, winning.position - {0, 100}, TitleFontSize, 1, rl.WHITE)
 | 
				
			||||||
	for c, i in SubtitleText {
 | 
						for c, i in SubtitleText {
 | 
				
			||||||
		rl.DrawTextPro(Res.Fonts.UI, c, winning.position - {0, f32(10 - i * 50)}, SubtitleSizes[i] / 2, 0, SubtitleFontSize, SubtitleSpacing, rl.WHITE)
 | 
							draw_text_centered(Res.Fonts.UI, c, winning.position - {0, f32(10 - i * 50)}, SubtitleFontSize, 1, rl.WHITE)
 | 
				
			||||||
 | 
							// rl.DrawTextPro(Res.Fonts.UI, c, winning.position - {0, f32(10 - i * 50)}, SubtitleSizes[i] / 2, 0, SubtitleFontSize, SubtitleSpacing, rl.WHITE)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user