# Tile Collisions, how can I improve on this

#### Yogen

##### Member
GML:
``````function onGround() {
//grab the layer id
var lay_id = layer_get_id("Tiles_1")
//grab the tile set id
var map_id = layer_tilemap_get_id(lay_id)

var grounded = tilemap_get_at_pixel(map_id,x,bbox_bottom+vel_y)
var onWall = tilemap_get_at_pixel(map_id,bbox_left+vel_x,y-20) - tilemap_get_at_pixel(map_id,bbox_right+vel_x,y-20)

for (var i = -25; i < 25; i ++) {
grounded = tilemap_get_at_pixel(map_id,x + i,bbox_bottom+vel_y)
}

show_debug_message(grounded)
if grounded == 0 vel_y += global.grav
else
vel_y = 0

if sides != 0 {
dir = sides
show_debug_message(momentum)
}

if grounded != 0 && sides != 0 && onWall == 0 {
momentum = approach(momentum,walk_speed,fric)
} else if sides == 0 && grounded != 0 {
momentum = approach(momentum,0,fric)
}

if onWall != 0 && wall_Leave < wall_Leave_Max wall_Leave ++

if onWall != 0 && sign(onWall) != dir {
momentum = 0
vel_x = 0
show_debug_message("you walk into a wall")
} else if onWall != 0 && sign(onWall) == dir {
onWall = false
wall_Leave = 0
momentum = approach(momentum,walk_speed,fric)
show_debug_message("you leave wall")
}

if onWall != 0 show_debug_message("stuck to wall")

vel_x = (momentum / mass)* dir

if jump state = jumping; is_jumping = false
}

function inputs() {
sides = keyboard_check(vk_right) - keyboard_check(vk_left)
//set if jumping or not
jump = keyboard_check_pressed(vk_space)
teleporting = keyboard_check_pressed(vk_shift)
}``````
Hi, I wrote this from scratch using some formulas for kinematics. any advices without using a tutorials?