대항해시대 온라인 6강 사선 (티크, 급가, 폭항, 고감, 돛맥, 선회맥)












스샷 날짜 : 2012년 3월












5강 예항용커터




5강 사선 (티크)


게시글 우측상단에 주소복사 버튼을 달았다.

자바스크립트로 하면 브라우저마다 다르게 해줘야해서 번거로와서 플래시를 사용했다.

swf파일을 태그로 걸 때 ~~~.swf?변수=값 형태로 글번호가 담긴 쿼리를 넘겨준 뒤 플래시에서는 LoaderInfo로 읽어들인다.

var obj:Object = LoaderInfo(this.root.loaderInfo).parameters;


 넘겨받은 글번호값으로 글주소를 완성한 뒤 클립보드에 복사하고 ExternalInterface로 alert창을 띄워주면 끝.


크롬, 파이어폭스, 돌핀브라우저(모바일), IE9 에서 테스트 해봤더니 복사가 잘 된다. (파이어폭스에서는 가끔 정지현상이 발생) 





 애니팡을 하던 중, 콤보를 빠르게 이어가기 위해 어디를 터치해야 할 지 알려 주는 어플을 만들면 어떨까 하는 생각이 들었다.  구상한 방식은 게임 플레이 시 화면에 표시되는 내용을 읽어들여서 각 블록들의 배치를 알아낸 뒤, 한 칸 이동시켰을 때 터지는 조건이 되는 그런 블록을 찾아낸다. 그렇게 블록을 찾아냈으면 그 블록이 있는 위치에 간단한 그래픽을 띄워 그곳을 터치해야 한다고 알려주는 것이었다.

 

 그 전까지 안드로이드 프로그래밍을 한 번도 해 보지 않았기 때문에 그나마 익숙한 플래시(Adobe Air)를 사용하여 만들기로 하였다. 어플리케이션의 배경을 투명하게 하여 뒤쪽의 화면을 얻어오면 될 거라고 생각했다. 그래서 플래시빌더를 실행시켜서 배경이 투명한 어플리케이션을 하나 만들어 기기에 넣어봤는데 배경이 투명하지 않고  하얗게 나온다... 관련내용을 검색해 보니 AndroidManifest.xml을 수정해야 된단다. 

 activity 태그에 android:theme="@android:style/Theme.Translucent를 넣어 apk를 생성하려고 하니 오류가 발생했다. Adobe Air로 만드는 앱에서는 android:style을 오버라이드 할 수 없다는 것이었다. 

 

 결국 이클립스에 안드로이드 개발 환경을 세팅하게 되었다.(ANE를 쓰면 됐었을수도..) 

우선 메인 Activity에  Theme.Translucent 스타일을 적용시켜보았다. 어플리케이션을 실행시키자 앱 실행 직전의 화면이 어플의 배경으로 나오는 것을 볼 수 있었으나 그냥 그림일 뿐 뒤쪽을 컨트롤은 할 수 없었다.. 

 다음에는 메인액티비티에서 Service를 띄웠는데 이번에는 어플이 띄워진 상태에서 뒤쪽의 화면을 조작할 수 있었지만, getRootView().getDrawingCache();로 드로잉캐시를 얻어보니 투명한 이미지만 나왔다..

 Service에서 Translucent테마를 적용한 액티비티를 띄워서 그 액티비티의 드로잉캐시를 얻어와 봐도 역시 0x00000000...


 phandroid를 뒤져보니 Android Screenshot Library를 쓰면 된다는 내용이 있길래 예제를 받아서 실행시켜보았다. 하지만 아래와 같이 화면전체가 빨갛게 되거나, 위쪽 일부분만 찍힌 스크린샷만 나올 뿐이었다...




 도시 해결방법을 알 수가 없었다. 그래도 라이브러리의 소스코드(소켓통신 하는 부분)을 조금 수정해서 실행은 시켜 봤는데.. 메인화면이 가로보기로 되고 화면이 노랗게 되거나 아이콘이 사라지는 등 핸드폰이 벽돌이 되어버릴 것 같은 불길한 현상들이 일어나서 그만두는 수밖에 없었다. (이 문제가 해결된다고 해도 화면 읽어오는 속도가 느려서 애니팡을 건드리기는 어려울 것 같다.)



 

Eclipse INDIGO   source level 오류


 어떤 안드로이드 앱을 만드는데 캡쳐와 관련된 특정 부분을 구현하기가 어려워서 해결방법을 검색하다가 Google Code에서 적당한 라이브러리를 찾을 수 있었다. 약 10일간의 삽질을 겪었기에 그 라이브러리(+샘플)를 얼른 내려받아 프로젝트를 import했다. 그러나 import하자마자 그 프로젝트의 코드들은 엄청난 양의 error마커를 토해냈는데 도시 이유를 알 수 없었다.. 


 에러내용들을 키워드로 다시 검색을 해 본 결과, http://kameran.tistory.com/205 이 글을 발견하여 

Compiler compliance level을 확인하였으나 이미 1.6인 상태였다. 나와 같은 문제를 겪고 있는 상황도 찾아볼 수 있었다. http://www.androidpub.com/2118520 글에서의 사례와 같이 이클립스(indigo)를 헬리오스로 다시 깔아야 하는 것 아닌가 하고 귀찮음을 느끼고 있을 때, 우연히 이 문제에 대한 해결방법을 발견하게 되었다! 








 이클립스에서 '.... only available if source level is 1.5 or greater ...' 등과 같은 오류가 발생할 때가 있는데 이클립스의 자바 컴파일러 버전설정이 코드와 맞지 않을 때 발생하는 오류이다. 아래와 같이 버전을 확인해 주었더니 오류가 사라졌다.  


1. 이클립스(인디고)에서 Window->Preferences->Java->Compiler 순으로 들어가서 Compiler compliance level을 확인한다.

   





2. 설정에 문제가 없는데도 에러가 사라지지 않는다면, 위쪽의 Configure Progject Specific Settings.. 를 클릭한다.

   




3. 해당되는 프로젝트를 선택하고 OK버튼을 누른다.  





4. Properties for *** (Filtered)라는 창이 뜨게 되는데, Enable project specific settings를 체크하고, Compiler compliance level을 맞게 설정해 주면 된다!





중심기압 910hPa 까지 발달(JMA)

4비트 RCA (Ripple Carry Adder : 전가산기)




- 1비트 전가산기





Overflow를 검출하는 4비트 전가산기





- 시뮬레이션






1bit full-adder 심볼을 사용한 4비트 가감산기입니다.

switch에 1이 들어가면 감산, 0이 들어가면 가산.

Cin에 switch가 연결된 이유는 음수를 2의보수로 표현할때 비트반전시킨뒤 1을 더하기때문.




4비트 RCA 전가산기 브레드보드에 구현



블록도는 아래링크를 참고하세요

http://tibyte.kr/112












전선은 GG..













일식, 월식





+ Recent posts