GSI


CrashLanding 소스를 보면서 Texture2D 클래스를 보니까. 전체 텍스처에 대한 처리만 가능하도록 되어 있었습니다.
그래서 이걸 메소드를 하나더 만들어서 텍스처의 일부 영역을 화면에 뿌리고자 할려고 했습니다.

이때 Texture2D를 상속해서 Texture2DEx로 만들려고 했지만.. 
에러가 주루룩 떠드군요.. 

그래서 생각한 결과 Categories를 사용하게 되었습니다.
이 내용은 검색을 해보면 많이 나옵니다.

우선 구현한 내용을 아래에 기술합니다.

1. Texture2DEx.h, m 을 만듭니다.

2. 아래와 같이 코드를 헤더 파일에 작성합니다.


#import <Foundation/Foundation.h>

#import "Texture2D.h"


@interface Texture2D (SpriteAnimation)

- (void) drawAtPointTest:(CGPoint)point;

@end



3. 아래와 같이 코드를 소스 파일에 작성합니다.

#import "Texture2DEx.h"


@implementation Texture2D (SpriteAnimation)


- (void) drawAtPointTest:(CGPoint)point 

{

_maxS = 63.0 / 256.0// test

GLfloat coordinates[] = { 0, _maxT,

_maxS, _maxT,

0, 0,

_maxS, 0 };

GLfloat width = (GLfloat)_width * _maxS,

height = (GLfloat)_height * _maxT;

width = 63.0; // test

GLfloat vertices[] = { -width / 2 + point.x, -height / 2 + point.y, 0.0,

width / 2 + point.x, -height / 2 + point.y, 0.0,

-width / 2 + point.x, height / 2 + point.y, 0.0,

width / 2 + point.x, height / 2 + point.y, 0.0 };

glBindTexture(GL_TEXTURE_2D, _name);

glVertexPointer(3, GL_FLOAT, 0, vertices);

glTexCoordPointer(2, GL_FLOAT, 0, coordinates);

glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

}


@end


Posted by gsi
:


## Style1
NSArray* array = [NSArray arrayWithObjects:object1, object2, object3 nil];
NSEnumerator* enumerator = [array objectEnumerator];
NSString* aString = @"son";
id anObject = [enumerator nextObject];
while (anObject != nil)
{
  [anObject doSomethingWithString:aString];
  anObject = [enumerator nextObject];
}

## Style2
NSArray* array = [NSArray arrayWithObjects:object1, object2, object3 nil];
NSEnumerator* enumerator = [array objectEnumerator];
NSString* aString = @"son";
id anObject = nil;
while ((anObject = [enumerator nextObject]))
{
  [anObject doSomethingWithString:aString];
}

##Style3
NSArray* array = ''';
for(id object in someContainer)
{
  ...
}
Posted by gsi
:


한달도 남겨 두지 않은 상태에서 사태에 대해서.. 주워 듣다 보니..
결국 이걸 보게 되었네요.

학교라는 시스템에 붙잡혀 있고 싶지 않았던 저로서는.. 자격증 조차도 반감을 가지고 사는데요.
결국.. 자신의 경력에도 족쇠를 채우겠다는 의미로 보입니다.

물론 장단점은 있지만..
기존의 경력 자체를 무의미 하게 만들더군요..

고졸 개발자가 얼마나 될지 모르지만..
현재 시점에서 등급을 보니
초급기술자에 해당하더군요. -.- (거의 7년 이상을 *빠지게.. 일했는데..)
내 나이 33살에.. 군대 갔다 오면 23살인데.. 10년 빡세게 해서.. 회사를 다녀도 초급 기술자 입니다.

결국 기사 자격증을 따지 그랬냐.. 이런 질문이 날라 오는 상황이네요..

앞으로도.. 이 기술자신고 자료를 통한 큰 업무들이 저의 발목을 잡을지도 모르겠네요.
등록하라고 해서 등록은 하겠지만. 그동안 제가 밤잠 안자가며, 노력한 세월들이 단지 등급 초급에 머물고 있으니
분통이 터집니다. (걍 무시하고 살고 싶네요.. 그래도 밥벌이는 하겠죠.. ^^)

대학을 나왔다는 그 기준 하나로 몇년 생활을 하면, 중급 기술자가 되는 시대~~
하지만.. 그 사람들 일부 보다는 제가 더 실력은 있다고 인정하지만.
서류 심사에서 바로 떨어지는 사태.. 생길지도 모르겠네요. 씁슬하군요..

이런 모든 상황들이 대학교를 무조건 가야 한다는 근시안적인 제도를 만들어 내고,
고등학교 입시를 만들어 내고..
유치원생이 영어 공부에 6개월 1000 만원을 들이는 시대..
이젠 태교 교육에도 몇백만원 들이는 시대가 오겠네요.. 쩝..

아.. 개발을 정말 재미나게 할려면.. 이민을 가야 할까요?..
여러분들 의견은 어떠신가요?
Posted by gsi
:


CrashingLanding 인가..
그 소스를 기반 코드로 해서 지금 다른 프로그램을 좀 만들고 있다.

Objective-C의 코딩도 아직 익숙하지 않고,
하지만.. 오픈지엘 코드는 조금은.. 손에 익은 터라..

오늘 작업 하면서 비행기의 스프라이트가 한 이미지에 3장 짜리로 구성되어져 있었다.

189 * 55 인데..
즉. 가로 63 사이즈로 3장이 있는 것이다.

이것을 로그해서 드로잉을 해보니 제대로 나왔다.
즉, 189라는 2의 승수가 아닌 정보를 2의 승수로 내부적 처리를 하게 되는거 같다.

하지만.. 이때 텍스처의 좌표를 3등분해서 추가를 해보면..
값이 제대로 표시가 되지 않는다.
내부적으로 다르게 처리 되어지는거 같았다.

그래서 이미지를 189 * 55를 256 * 55 로 크롭을 시켜서
이미지를 확장 시켰다.

그 이후에 63.0 / 256.0 으로 해서 텍스트 좌표를 추가 하니까.. 제대로 표시가 되었다.

소스 코드 및 관련 이미지들은.. 솔직히 맥에서 어떻게 스크린샷을 뜨는지도 몰겠고 ^^..
그래서 걍 패스..

혹시나 관련 질문이 있으시면 코멘트 부탁 해요..
Posted by gsi
:


...
<script type="text/javascript">
  function getDate()
  {
    var date = new Date();
    ....
  }

  window.setInterval(getDate, 1000);
  // 1초(1000)마다 window 를 호출한다.

</script>
<title> Javascript Timer </title>
</head>
<body>
...

화면의 특정 부분을 주기적으로 업데이트 하기 위해서는
위와 같이 window.setInterval() 메소드를 사용해서 타이머를 연동하면 된다.
이걸 사용해서 ajax 를 연동하게 되면 특정 DB나 기타 다른 내용들을
주기적으로 해당 div 등에 연동이 가능하다.
Posted by gsi
: