Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if ds_list_size(springsources)>0{
- var acctempX=0, acctempY=0, xNorm, yNorm, xSpr, ySpr, xSprSpd, ySprSpd;
- for(i=0;i<sourceID;i++){
- var xSpr = ds_list_find_value(springsourcesX,i),
- ySpr = ds_list_find_value(springsourcesY,i),
- xSprSpd = ds_list_find_value(springsourcesXSpd,i),
- ySprSpd = ds_list_find_value(springsourcesYSpd,i);
- xSprAcc = 0
- ySprAcc = 0
- //point calculations
- //point accleration
- xSprAcc+=xdir*accel1
- ySprAcc+=ydir*accel1*(ds_list_size(springsources))
- for(j=0;j<sourceID;j++){
- if j!=i{
- xSprAcc+= get_normals(ds_list_find_value(springsourcesX,j),ds_list_find_value(springsourcesY,j),xSpr,ySpr,"x")*spring(ds_list_find_value(springsourcesX,j),ds_list_find_value(springsourcesY,j),xSpr,ySpr,.6,100,.6,xSprSpd,ySprSpd)
- ySprAcc+= get_normals(ds_list_find_value(springsourcesX,j),ds_list_find_value(springsourcesY,j),xSpr,ySpr,"y")*(spring(ds_list_find_value(springsourcesX,j),ds_list_find_value(springsourcesY,j),xSpr,ySpr,.6,100,.6,xSprSpd,ySprSpd))
- }
- }
- //gravity
- if position_meeting(xSpr,ySpr+1,oBlock){
- grip=true;
- }
- if !keyboard_check(ord("G")) {
- ySprAcc+=50*rGravity
- }
- //point velocity
- ds_list_replace(springsourcesXSpd,i,xSprSpd+xSprAcc/50/2)
- ds_list_replace(springsourcesYSpd,i,ySprSpd+ySprAcc/50/2)
- xSprSpd = ds_list_find_value(springsourcesXSpd,i)
- ySprSpd = ds_list_find_value(springsourcesYSpd,i)
- //point position
- //gravity and collision vertical
- repeat(abs(ySprSpd)){
- xSpr = ds_list_find_value(springsourcesX,i)
- ySpr = ds_list_find_value(springsourcesY,i)
- xSprSpd = ds_list_find_value(springsourcesXSpd,i)
- ySprSpd = ds_list_find_value(springsourcesYSpd,i)
- if (!position_meeting(xSpr,ySpr+sign(ySprSpd),oBlock)){
- ds_list_replace(springsourcesY,i,ySpr+sign(ySprSpd))
- }else{
- //don't fuck with this, it resets the speed
- ds_list_replace(springsourcesYSpd,i,0);
- break;
- }
- }
- //collision horizontal
- repeat(abs(xSprSpd)){
- xSpr = ds_list_find_value(springsourcesX,i)
- ySpr = ds_list_find_value(springsourcesY,i)
- xSprSpd = ds_list_find_value(springsourcesXSpd,i)
- ySprSpd = ds_list_find_value(springsourcesYSpd,i)
- if(!position_meeting(xSpr+sign(xSprSpd),ySpr,oBlock)) && position_meeting(xSpr,ySpr+1,oBlock) && (!position_meeting(xSpr+sign(xSprSpd),ySpr+1,oBlock)){
- ds_list_replace(springsourcesY,i,ySpr+1)
- ds_list_replace(springsourcesX,i,xSpr+sign(xSprSpd))
- }else if(!position_meeting(xSpr+sign(xSprSpd),ySpr,oBlock)){
- ds_list_replace(springsourcesX,i,xSpr+sign(xSprSpd));
- }
- else{
- if position_meeting(xSpr,ySpr+1,oBlock) && (!position_meeting(xSpr+sign(xSprSpd),ySpr-1,oBlock)){
- ds_list_replace(springsourcesX,i,xSpr+sign(xSprSpd));
- ds_list_replace(springsourcesY,i,ySpr-1);
- }else{
- ds_list_replace(springsourcesXSpd,i,0);
- xSprSpd=0
- break;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement