Posted by 슴갈
Posted by 슴갈
Trackback URL : http://avej.com/textcube/trackback/37

Posted by 슴갈
Trackback URL : http://avej.com/textcube/trackback/36

Posted by 슴갈
Trackback URL : http://avej.com/textcube/trackback/35
이정훈
2011/11/01 12:49
#
M/D
Reply
Permalink
안녕하세요
정말 좋은 소스 감사합니다
사막에서 물을 만난것 같습니다^^ 전체를 이해하진 못해도 부분부분
감동일 뿐입니다
opengles 의 glfixed 를 잘 알지 못해서 TextureCoord 하는 부분이
좀 낯설었습니다
openglES 에서 glFloat 을 사용할 수 있는거 같긴 한데 glFixed 를 사용하면
더 빠른건가요?
이정훈
2011/11/03 15:24
#
M/D
Reply
Permalink
감사합니다 ~~~슴갈님
게임제작 10주년 기념인 Avej 게임을 하면서 받은 감동은 말로 표현이
않되던 군여..맨처음 5.1 인치 pc게임인 인디아나존스 게임을 하면서
느꼈던 그 몰입감을 다시 느꼈습니다
어딘가에 막히면 늘 슴갈님 게임과 코드를 보면서 영감을 얻곤 합니다
TT
2011/11/10 23:32
#
M/D
Reply
Permalink
천금같은 자료이긴 하나 일반적인 방법으로 폰에 넣는것은 무리인듯 하군요 ㅜㅡ
TT
2011/11/27 20:48
#
M/D
Reply
Permalink
아, 그게 아니라 제 휴대폰이 bada os이긴 하나, 삼성앱스나 t스토어에서 다운로드 한 것 외에는 구동할 수 없는 것 같아서요..
Posted by 슴갈
Trackback URL : http://avej.com/textcube/trackback/34
Posted by 슴갈
Trackback URL : http://avej.com/textcube/trackback/33
// 2개의 field를 가지는 enum 타입에 대한 값 체크#define CHECK_INVALID_ENUM_X2(source, case1, case2) \switch (source) \{ \case case1: \case case2: \break; \default: \return false; \}// 3개의 field를 가지는 enum 타입에 대한 값 체크#define CHECK_INVALID_ENUM_X3(source, case1, case2, case3) \switch (source) \{ \case case1: \case case2: \case case3: \break; \default: \return false; \}
enum EA { EA_1, EA_2 };enum EB { EB_1, EB_2, EB_3 };bool SetSomething(EA a, EB b){CHECK_INVALID_ENUM_X2(a, EA_1, EA_2);CHECK_INVALID_ENUM_X3(b, EB_1, EB_2, EB_3);// SetSomethingInternal(a, b);return true;}
#include <stdio.h>int main(){bool r1 = SetSomething(EA(-1), EB_1);bool r2 = SetSomething(EA_1, EB(-1));printf("r1 = %d, r2 = %d\n", r1, r2);return 0;}
Posted by 슴갈
Trackback URL : http://avej.com/textcube/trackback/30

Posted by 슴갈
Trackback URL : http://avej.com/textcube/trackback/32
Posted by 슴갈
Trackback URL : http://avej.com/textcube/trackback/31
int num_chunk = read(fd, &data, sizeof(data));if (num_chunk < 0)return;num_chunk /= sizeof(data[0]);
int num_chunk = read(fd, &data, sizeof(data))/ sizeof(data[0]);if (num_chunk < 0)return;
ssize_t read(int fd, void *buf, size_t count);
- 양쪽 타입 크기가 같으면 signed 쪽를 unsigned로 변환- 양쪽 타입의 크기가 다르면 작은 쪽을 큰 타입으로 바꾼 뒤unsigned 쪽을 signed 로 변환하여 계산
#include <stdio.h>int main(){{int a = -10;unsigned int b = 10;printf("-10 / 10 = %d\n", a / b);}{short a = -10;unsigned short b = 10;printf("-10 / 10 = %d\n", a / b);}return 0;}
-10 / 10 = 429496728 /* int / unsigned int의 결과 */-10 / 10 = -1 /* short / unsigned short의 결과. */
Posted by 슴갈
Trackback URL : http://avej.com/textcube/trackback/29
void MyClass::SetValue(int value){if (this) // (1){this->m_value = value;}}
MyClass* pMyClass = CreateMyClass(…);// NULL 체크를 하지 않았음pMyClass->SetValue(100);
Posted by 슴갈
Trackback URL : http://avej.com/textcube/trackback/28
ptptomr
2010/12/30 10:24
#
M/D
Reply
Permalink
오옷 오랫만의 posting이군요. 예를들어 주신 것과 같이, 빈번한 사용자 실수가 예상되는 case (missing of checking null pointer) 에 대해 platform이 방어할 수 있는 방법이 없다니 믿기지 않습니다.
doyongid
2011/01/19 08:30
#
M/D
Reply
Permalink
와우. 좋은 내용 감사합니당
summerlight
2011/01/25 11:10
#
M/D
Reply
Permalink
가상 함수를 통한 간접 분기에서 this가 null이거나 해당 타입의 객체가 아니라면 적절한 vtable을 참조할 수 없어서 충돌이 일어납니다. 뭐 그렇다고 해도 거의 모든 컴파일러가 정적으로 결정되는 함수 호출에 대해서는 안전한 코드를 만들긴 하지만요.
표준에서 이렇게 어디에서는 허용하고 어디에서는 안 하는 식의 예외를 두면 혼란스럽기 때문에 this == null인 경우는 일관되게 정의되지 않은 동작을 하도록 한 것으로 알고 있습니다.
summerlight
2011/02/08 12:13
#
M/D
Reply
Permalink
혹시 컴파일러의 명령어 재배치나 혹은 CPU의 비순차 실행 때문에 발생하는 오류 아닐까요? this가 항상 유효하다고 가정하면 수행 효율 증대를 위해 if (this) 내부의 구문부터 투기적으로 수행을 시켜볼 수도 있는데, 여기에서 this가 NULL이라 미정의라능! 하면서 배를 째는 걸지도 모르겠습니다. 저도 예전에 명령어 재배치로 인해 발생한 문제로 (이건 멀티 쓰레드 문제였지만) 고생했던 적이 있습니다. -_-;
GP2X WIZ와 CAANNO와 bada용 게임 개발을 하자
- 슴갈
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 |