사용자 도구

사이트 도구


사이드바

카테고리

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 · 마지막으로 수정됨: 2022/12/07 22:30 저자 kieuns