language:gamemaker:1-함수-정리
목차
함수 퀵 설명 func ref
keyboard_check
- keyboard_check(<키보드>) : 해당 키보드가 사용 되었는가?
sign
- sign() : 숫자가 양수면 1, 음수면 -1, 0 이면 0
abs
- abs() : 는 음수도 양수로 전환해서 리턴
place_meeting
- (bool) place_meeting(x,y,object) : 충돌 여부 판정
instance_place
- (real) instance_place(x,y,obj) : 충돌여부판정 place_meeting()보다 좀 더 정교한가? 충돌 판정이 난 오브젝트를 리턴하는 것 같은데…
instance_number
- instance_number(<object name>) : 어 뭐더라..
point_direction
- point_direction( x1, y1, x2, y2) : (x1,y1)에서 (x2,y2)를 가리키는 각도 값을 구한다 (일반 숫자임)
choose()
- choose() : 최대 15개까지 스트링,숫자,오브젝트 중에 랜덤하게 골라라.
// obj_enemy1, obj_enemy2, obj_enemy3 을 랜덤하게 선택할때, var newInst; newInst = choose( obj_enemy1, obj_enemy2, obj_enemy3 );
instance_create()
- instance_create() : 오브젝트를 새로 생성한다.
// 가장 자주 쓰는 코드 instance_create( <x pos>, <y pos>, <만들 인스턴스(오브젝트)> ); // with(instance_create()) 하면 무슨 뜻?
draw_sprite_ext
draw_sprite_ext( 스프라이트, 프레임번호, x, y, x-scale, y-scale, 회전방향, 색상, 알파값 )
- 스프라이트 : 그릴 스프라이트
- 프레임 번호 : 스프라이트의 몇번 이미지를 그리나? -1이면 현재 이미지.
- 회전 방항 : 0 : 시계 반대 방향, 90 시계 방향
- 색상 : 특정 색으로 블렌딩 처리해서 출력. c_white를 보통 사용.
- 알파값 : 스프라이트 알파값. 0 ~ 1사이의 값. 0 이면 투명, 1 불투명.
// // 적을 없앴을때, 동전 같은게 떨어져야 한다면, // spr_buttlet1은 1장짜리 작은 스프라이트 이미지 // //- Events:Create, Actions:control->Execute Code // 떨어지는 방향을 임의 설정 direction = random_range( 70, 110 ); // 떨어지는 속도 .. 그냥 3 speed = 3; // 회전 시작각, 10 ~ 70 사이 my_angle = random_range( 10, 70 ); // 회전하는 방향, 왼쪽 or 오른쪽 랜덤하게 my_angleDelta = random_range( -2, 2 ); // 중력설정(떨어지도록) //- Events:Create, Actions:Set the gravity 추가 direction = 360 gravity = 0.2 relative = true //- Events:Draw, Actions:control->Execute Code draw_sprite_ext(sprite_bullet1, 0, x, y, image_xscale, image_yscale, my_angle, image_blend, image_alpha); //if( my_angle < 80 ) my_angle += my_angleDelta; //- Events:Outside Room, Actions:Destroy the instance // 화면 밖으로 나가면 삭제되도록
draw_healthbar(...)
draw_healthbar( left of 체력게이지, top of 체력게이지, right of 체력게이지, bottom of 체력게이지, 체력의 최대 숫자, 체력게이지의 배경 색상 (c_black), 체력이 0일때의 색상?, 체력이 100%일때의 색상, 체력바가 줄어드는 방향 ( 0 = left, 1 = right, 2 = top, 3 = bottom ), 체력게이지 배경 보일건가 ( true, false ), 체력게이지 테두리 필요한가? ( true, false ) )
lengthdir_x, lengthdir_y
lengthdir_x( <지금 위치로부터 거리>, <방향> );
var next_x_pos, next_x_pos; next_x_pos = lengthdir_x( 100, 10 ); next_y_pos = lengthdir_y( 100, 10 );
현재 위치에서, 어떤 각도의 길이 몇만큼 줬을때 이동된 X의 위치를 구해주는 요긴할 듯한 함수.
// 총알 오브젝트를 만들때, 플레이어가 사용하는 총의 방향에 맞는 위치를 구한다. instance_create(x + lengthdir_x(64, image_angle), y + lengthdir_y(64, image_angle), obj_bullet);
그외
room0 : loading obj_Controller Create 알람0,1 설정 알람1 = room_speed 설정? (barrels 추가) 알람0 적obj 3개 미만 leven + 1 반복 4개의 인스턴스 생성 (instance_create(x,y,obj)) level 증가 알람0 리셋 (room_speed로 설정) 알람1 (barrel 추가) x,y 위치 랜덤으로 설정 x,y 위치가 벽과 주인공을 피해서 다시 설정 barrel 추가 알람 리셋 obj_Player Create 전역변수초기화 player obj 초기화
//make character point towards mouse var dd,ts; dd = ((((point_direction(x,y,mouse_x,mouse_y) - h_angle) mod 360) + 540) mod 360) - 180; //get the head rotation h_angle += min(abs(dd), 10) * sign(dd); dd = ((((h_angle - b_angle) mod 360) + 540) mod 360) - 180; // Get the body rotation ts = abs(dd) / 6; if abs(dd) < ts b_angle = h_angle else b_angle += sign(dd) * ts;
language/gamemaker/1-함수-정리.txt · 마지막으로 수정됨: 2024/04/23 22:44 저자 127.0.0.1