목록Season 1 (107)
Graphics Programming
제작 방법 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라는 조합을 쓰기 ..
기하, 대수, 통계 개념을 뭣할러 모았느냐면... 덧붙임 1. 코시-슈바르츠 부등식은 이렇게도 증명할 수 있다. 2. 피어슨 상관계수는 두 집합의 관계를 나타낸다. 1에 가까울 수록 많이 연관있음을, -1에 가까울 수록 반대로 많이 연관있음을 뜻한다. 바로 위의 식에서도 피어슨 상관계수의 범위를 유도할 수 있지만 첫 번째 그림에서와 유도 과정이 비슷하니 생략한다.
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..
포트리스처럼 지형을 변형시키면서 충돌 검사를 하려면? 플래시 CS4 이상에서 열림 아파서 짧게 써야겠다.. 골 땡긴다 -.- 1. 투명도를 지원하는 비트맵 데이터에 땅을 그린다. 2. 땅과 포탄이 충돌하면 비트맵 데이터의 그 지점을 구덩이 모양으로 투명하게 만든다. 투명도 0인 구덩이 객체를 비트맵 데이터에서 draw 메서드로 그리면 될 줄 알았는데 아무 것도 그려지지 않아서 ByteArray를 썼다.
점들을 매끄럽게 통과하는 곡선 마우스를 움직이면 스플라인이 만들어진다. 스플라인을 마우스 위치에 따라 실시간으로 생성할 수 없기 때문에 한 간격씩 늦는다. Node 클래스 Segment 클래스 FLA 파일의 프레임 스크립트 (더럽다 -_-...) 참고 자료 『Game Programming Gems 3』 2.4절 : 비균일 스플라인
전역 함수 flash.utils.getTimer는 플래시 플레이어를 시작하고 경과한 시간을 밀리초로 반환한다. public function getTimer():int 그러면 getTimer로 며칠까지 잴 수 있을까? int로 표현할 수 있는 가장 큰 수는 2147483647이므로 2147483647 밀리초까지 가능 2147483.647 초까지 가능 35791.394116666666666666666666667 분까지 가능 596.52323527777777777777777777778 시까지 가능 24.855134803240740740740740740741 일까지 가능 약 24일 19시간까지 표현한다. 플래시 플레이어를 25일 켜두고 getTimer를 호출하면 어떻게 될까?
undefined는 타입이 없는 변수에만 할당할 수 있다. 또한 초기화하지 않은 동적 인스턴스 변수의 기본값이기도 하다. 참고로 이런 변수들이 타입 없는 변수다. var varName var varName:* 타입 있는 변수에 undefined를 할당하면 undefined가 할당되지 않는다. var obj:Object = undefined; trace(obj); // null var str:String = undefined; trace(str); // null var num:Number = undefined; trace(num); // NaN var ui:uint = undefined; trace(ui); // 0 var i:int = undefined; trace(i); // 0 var b:Boolea..