여기에 일단 적다가.. 언젠가 원래 있어야할 섹션으로 이동
화면 부분, 부분을 분할해서 출력하는 용도가 아니면 룸이 아니어도 되지 않나 싶다. 아직은 활용을 제대로 못하고 있기 때문인지 좌표 때문에 손이 많이 가네.
게임을 정지시키고 싶을때, 현재 화면에 보이는 것들(이것들만 정지시키도 되는 부분이라) instance_deactivate_object()로 필요한 것만 정지시켰으나…
뭔가 잘 안됐다. 여러번 반복하면 다운의 원인이 되었다.
어떤걸 잘못 쓴걸까.. 반면,
instance_deactivate_all(false)와 instance_activate_all()는 매우 잘 되었다.
주의할 점은 deactivate 하고나면 완전 스톱이기 때문에, (내부 로직상태도 멈춘다) 다시 상태 변경이 원활하게 하고 싶으면 먼저 활성화 하고 해야한다.
with( some_inst ) { x = 1; y =1; id; // id값도 some_inst의 id 값이다. 당연하지만. }
이 경우, with(..) 구문을 사용하는 오브젝트(인스턴스)의 변수나 속성을 사용하고 싶다면, other 키워드를 사용한다.
with( some_inst ) { x = 1; y =1; id; // id값도 some_inst의 id 값이다. 당연하지만. other.id; // 이 코드를 실행하는 인스턴스의 id를 가리킨다. }
도움말에 있는 내용이지만,
특정 이벤트에서 부모 객체의 이벤트를 먼저 호출하고 싶으면,
event_inherited();
화면 해상도 또는 뷰를 사용하는 화면이 스크롤 되어도, <color darkorange>draw gui</color> 이벤트로 그린 것들은 항상 그 자리에 남아 있다.
유용하게 잘 써먹자.
// 외부 전역 오브젝트에서, 프로그램이 첫 실행시 설정 draw_set_font( fntMain ); // 필요한 오브젝트에서 출력해보기 -- 처음설정한 폰트가 그대로 유지되는가? // ** 한글 출력을 위해서는 ini 설정과 한글 스트링 로딩 작업이 필요. draw_text_color( x, y, 'test string', c_lime, c_lime, c_green, c_reen, 1 );
health는 플레이어 캐릭터에만 쓸 수 있는 전역 변수라서, 인스턴스 변수를 선언.
// 인스턴스 변수 추가 myHealth = 40;
// 충돌한 상대 인스턴스를 삭제 with(other) instance_destroy(); // 내 (적) 체력을 깍는다. myHealth -= global.currentBulletPower; // 전역 변수로 총알 파워가 10 이다,라고 설정 // 체력이 0 이면 죽는 처리 if( myHealth < 0 ) { myHealth = 0; instance_create( x, y, obj_explosion1 ); instance_create( x, y, obj_dropCoin ); instance_destroy(); }
var x1, y2, x2, y2; // 적기 인스턴스를 중심으로 아래쪽에 작은 체력 게이지 영역을 구한다. // 인스턴스의 0,0을 사용하는 대신 (sprite_xoffset, sprite_yoffset)값을 활용해서 하단 위치를 구한다. x1 = x - sprite_xoffset; y1 = y + (sprite_yoffset + 2); x2 = x + sprite_xoffset; y2 = y + sprite_yoffset + 6; // draw_healthbar()로 GM에서 기본으로 제공하는 체력 게이지를 그린다. draw_healthbar( x1, y1, x2, y2, myHealth, c_black, c_red, c_red, 0, true, true );
/// 특정 오브젝트에 살짝 튀었다가 떨어지는 것을 설정 // 오브젝트 생성시 : 살짝 위로 가도록 생성, 생성하는 CreateObject 이벤트에 코드로 추가 direction = random_range( 70, 110 ); speed = 3; /// 'Set the gravity' 액션을 추가 direction = 270 // 다른 direction 과 방향이 같다. ( 0 : right, 90 : up, 180 : left, 270 : down ) gravity = 0.2 // 숫자는 임의 입력이 가능하니 여러 숫자로 테스트. // 0.01도(아주 작은 수) 입력 가능. // 숫자가 커지면 더 빨리 떨어진다. // check 'Relative' 중력 방향이 연결된 오브젝트에 영향을 받아 direction 값이 상대적으로 달라진다. 일반적으로 쓰려면 off.
우선, 스프라이트 애니메이션이 되지 않도록 설정
image_speed = 0; // 애니메이션 되지 않도록 image_index = 0; // 첫번째 이미지만 그려지도록
Step 이벤트에서 image_index에 스프라이트 번호 0..N을 할당하면 자동으로 이미지가 변경 된다.
// Step 이벤트에서 액션은.. 뭐 알아서. draw 라든지 draw_gui라든지. image_index = 2; // 2 번 이미지를 그린다. //.. 어쩌구 저쩌구. image_index = 1; // 1번 이미지로 바꾼다.