목록Season 1/플래시 (29)
Graphics Programming
senocular.com의 원문 http://www.senocular.com/flash/tutorials/versions/ 도입 플래시 플랫폼에서 고려해야 하는 버전은 너무도 많다. 이들 버전은 추적하기가 그다지 쉽지 않으며 점점 복잡해진다. 이 문서에서는 여러 종류의 버전들이 어떤 관계에 있는지 윤곽을 잡아보려 한다. 플래시 플랫폼 버전을 다루기 위해 런타임, 내용물, 소스, 도구라는 네 가지 분류를 사용하겠다. 소스와 도구는 플랫폼의 개발자 측을 대표하고 런타임은 사용자 쪽에 좀 더 가깝다. 내용물은 이 둘 사이에 있다. 내용물은 개발자가 소스와 도구로 제작하면 사용자가 런타임에서 보는 것이다. 목차 런타임 플래시 플레이어 AIR 내용물 SWF 소스 액션스크립트 액션스크립트 API 플렉스 프레임워크 ..
1. 왼쪽 위의 텍스트 필드에 1~40 사이의 숫자를 입력하고 엔터를 누르면 시스템을 다시 구축한다. 2. 각 원은 조건을 나타낸다. 한 조건을 누르면 그 조건이 참이기 위한 전제 조건들을 쭉 연결한다. 인공지능 개론 책에서 규칙기반 전문가 시스템을 봤는데 개론에 걸맞게 프로그램 예제 하나 없이 이론만 설명해서 (...) 시각적으로 만들어봤다. 처음부터 끝까지 그런 식이라 아무래도 각 장을 읽을 때마다 플래시로 구현하게 될 듯하다. 참고 자료 - 2장. 규칙기반 전문가 시스템
rotateToAvoid - wonderfl build flash online 유닛들을 u1, u2, ... , uN이라 하자. 이런 식으로 이중 for문을 돌린다. for(i=0 ; i
머리 싸매고 고안한 건데 이미 있는 알고리즘이다 -_- 을 읽다보니 거의 똑같은 알고리즘이 나오는데 Ron Levine이 만들었다고 한다. 파란 상자와 빨간 상자가 이렇게 휙 움직인다면 hitTestObject() 같은 걸로 충돌 검사를 해도 도중에 충돌하는 걸 감지할 수 없다. 그래서 목적은 도중에 충돌하는 순간을 구해서 나타내는 것이다. 상황 설정 1. 물체는 AABB(안 돌린 직사각형)이다. 2. 물체는 한 프레임 동안 등속직선운동을 한다. 목적 설정 물체의 속도를 v, 한 프레임 동안의 경과 시간을 t라고 하면 물체는 v * t 만큼 움직인다. 경과 시간을 기반으로 물체가 움직인다면 t의 단위가 밀리초겠지만, 지금은 초기 위치와 나중 위치를 설정하고 두 위치 사이의 차이를 v로 삼을 것이기 때문에..
간단한 건데 자꾸 까먹네 ㅡㅡ clone(), toString() 메서드를 재정의한다. class CustomEvent { public function CustomEvent(type:String, bubbles:Boolean, cancelable:Boolean, 추가매개변수1, 추가매개변수2) { super(type, bubbles, cancelable) // bubbles랑 canceable이 필요 없으면 매개변수로 받지 말고 그냥 false나 넘겨버리자 // 추가 조작 } public override function clone( ):Event { return new CustomEvent(type, bubbles, cancelable, 추가매개변수1, 추가매개변수2) } public override f..
제작 방법 1. 가시 반지름 R과 시야각 θ를 정한다. 이것들을 이용해 벽이 없을 때의 가시 영역을 비트맵 데이터에다 칠한다. 2. 캐릭터에서 벽의 양 끝으로 직선을 긋는다. 두 직선과 원으로 감싸지는 영역을 다른 비트맵 데이터에다 칠한다. 3. 처음 비트맵 데이터에서 둘째 비트맵 데이터와 겹치는 부분을 지운다. 참 쉽죠? 소스는 좀 더 다듬고 공개
사용자가 반복된 공격 조합을 쓴다는 가정 하에, 지금까지 눌렀던 공격 조합을 토대로 지금 나올 확률이 가장 높은 공격을 예측한다. 공격은 A, S, D, F 본문 위 플래시에서 공격은 4개고 연이은 공격 3개의 조합을 활용한다. 왼쪽 그림에 보이듯 가능한 조합은 4의 3승 즉 64개다. 크기가 64인 저장 공간(보통은 배열)에 각 조합이 나온 개수를 저장하고 매번 지금 나올 확률이 가장 높은 공격을 예측하는 간단한 방법이다. 예를 들어 방금 나온 공격이 A, 방금 전에 나온 공격이 S라면 ASA, ASS, ASD, ASF중 가장 많이 나온 조합을 찾는다. ASF가 가장 많이 나온 조합이라면 지금 나올 공격을 F라고 예측한다. 하지만 사용자가 SAD라는 조합을 200번쯤 반복하다가 SAF라는 조합을 쓰기 ..
3D로 만든 표시 객체는 흐릿하게 보인다 원문 http://www.flashandmath.com/flashcs4/blursol/index.html 평범한 표시 객체다. 하지만 z 속성을 0으로 설정해서 3D로 바뀌면 이렇게 흐려진다. 원문으로 가서 오른쪽의 Make 3D 버튼을 누르면 차이가 잘 보일 것이다. 3D로 된 객체는 화면상에서 가로 세로로 1 픽셀씩 늘어난다 . 그래서 그 표시 객체의 크기 비례도 바뀐다. 즉, 수평 길이는 원래의 (width+1)/width 배로, 수직 길이는 원래의 (height+1)/height 배로 된다. Matteo가 제시한 해결법은 간단한데, 표시 객체를 3D로 만든 경우, scaleX, scaleY 속성을 늘어난 비의 역수로 조절하면 된다. mc.scaleX = w..