2025年10月
      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 30 31  
無料ブログはココログ
フォト

« カクウチ@ふじはら酒専門店(2019年04月) | トップページ | Macでゲームが起動しない (TLD doesn't work on Macinosh.) »

2020年8月12日 (水)

MacでSDL2(OpenGL)初めの一歩

Sdldev200812_01 

長〜いことMacOSXのプログラミングから遠ざかっていたところ、いつの間にか自分で創ったゲーム(プログラム)が動かなくなっていたため、何とかしたく思い(今だけ)、とりあえず入り口に立ってみました。

 

SDLのサイト(↓)から、Mac OSX用のSDL2のdmgをダウンロード

https://www.libsdl.org/download-2.0.php

SDLというのは、OS間にある機能やしきたりの差異を埋めてくれるレイヤー(ラッパーのようなもの)です。

これと、OpenGLを用いれば、OSに関する振る舞いを考慮せず、ゲームプログラミングに集中できます。

 

Xcodeで、macOSのココアプロジェクトを作成 

Sdldev200812_02

ゲームというのが隣にありますが、我慢;;(Windows版の平行開発も見据えて)

 

とりあえず、以下のようにすれば、SDLが使える環境を確認できます。

Sdldev200812_03 

とりあえず、FULLSCREENのフラグは外しておきましょう。(デバッグモードだとパニックになるので;;) 

 

あとは、OpenGLに関する関数を並べて、正しく使えることを確認してみます。

(MacOSXだとデフォルトでGLUTが載っているため、ティーポットなど使えますが、他だとできない可能性があります。

 

以下OpenGLが使えることを確認するコード

//
//  main.m
//  myCoSDL
//
//  Created by KIJIBATO on 2020/08/12.
//  Copyright © 2020年 KIJIBATO All rights reserved.
//
#import <Cocoa/Cocoa.h>
#include <SDL2/SDL.h>
#include <glut/glut.h>
void glTestInit()
{
 glClearColor(0.0, 0.0, 1.0, 1.0);
 glOrtho( -3.2, 3.2, -2.4, 2.4, -1, 1 );
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
 glLoadIdentity();
 glPushMatrix();
 glTranslated( 0, 0, 0 );
 glScaled( 0.5, 0.8, 0.5 );
 glutWireTeapot(0.5);
 glPopMatrix();
}
int main(int argc, const char * argv[]) {
 int A,B;
 A=A+1;
 B=B+1;
 
 SDL_Window *window = SDL_CreateWindow("My Game Window",
            SDL_WINDOWPOS_UNDEFINED,
            SDL_WINDOWPOS_UNDEFINED,
            640, 480,
             SDL_WINDOW_OPENGL);//SDL_WINDOW_FULLSCREEN// |
 
 SDL_GLContext glcontext = SDL_GL_CreateContext(window);
 glTestInit();
 int done = 0;
 SDL_Event event;
 while ( !done ) {
  /* Check for events */
  while ( SDL_PollEvent (&event) ) {
   switch (event.type) {
    case SDL_MOUSEMOTION:
     break;
    case SDL_MOUSEBUTTONDOWN:
     break;
    case SDL_KEYDOWN:
     /* Any keypress quits the app... */
    case SDL_QUIT:
     done = 1;
     break;
    default:
     break;
   }
  }
  SDL_GL_SwapWindow(window);
  SDL_Delay (1000%60);
 }
// return NSApplicationMain(argc, argv);
 return 0;
}
以前はatlantisというサンプルが付いたひな型があったのですが、まぁ簡単にスタートできたのでいいでしょう。
この先は、テクスチャ画像、音声、ジョイスティック...更に文字の取り扱い(SDL2.0で簡単にユニコードが扱えるようになっている?)等ですかね。

« カクウチ@ふじはら酒専門店(2019年04月) | トップページ | Macでゲームが起動しない (TLD doesn't work on Macinosh.) »

自作ゲーム」カテゴリの記事

プログラム」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« カクウチ@ふじはら酒専門店(2019年04月) | トップページ | Macでゲームが起動しない (TLD doesn't work on Macinosh.) »