落書きノート

ふと自分が気になった事を書いてます

ゲームプログラミング

SDLでゲームプログラミング

ゲームプログラミングで試したいことが出来たので、とりあえず雛形を作りました。いつものように単発で作っていくだけです。次回以降の記事からメニュー選択画面を作ってみたいと思います。思いつきなのでとりあえずmacOSで試しました。 #include <SDL2/SDL.h> #include <stdio.h></stdio.h></sdl2/sdl.h>…

モデルの回転

ステージでは俳優に「右に90度回って」などと指示しますが、3Dグラフィックスの世界でこれと同じことを表現するには、座標系のY軸をつかんでくるくると回します。 このような回転のことを「Y軸周りの回転」と呼びます。同様に、X軸を中心とした回転のことを…

モデルの拡大縮小

モデルの拡大縮小は、上下方向、左右方向、手前奥方向、つまり、XYZの軸方向それぞれに「倍率」を設定することで実現できます。そして、拡大縮小マトリックスを作るための関数は、D3DXMatrixScaling()です。例えば、X軸方向に2倍、Y軸方向に0.5倍、Z軸方向に…

基本的な座標変換を行うプログラム

モデルの移動 移動マトリックスを生成し、モデルに適用する方法を説明します。 今回のサンプルプログラムでは、まずD3DXMatrixIdentity()関数を使って何もしないマトリックスを生成した後、D3DXMatrixTranslation()関数を使って生成したマトリックスの成分を…

DirectX9 基本的な座標変換を行うプログラム

参考書から抜粋しています。DirectX9について以前投稿した記事の続きです。マトリックスをコードに落とし込んでいきます。 何もしないマトリックス まず、何もしないマトリックスを使って、各種のマトリックスを生成し、レンダリングパイプラインに適用する…

モデルの配置 (座標変換処理)

座標変換とマトリックス 3Dグラフィックスの世界では、モデルの配置やカメラの配置、パラメータなどを設定するために、「マトリックス」というものを利用します。マトリックスとは、数字を縦横に並べたもので、日本語で「行列」といったりもします。マトリッ…

RPGツクールMVをやってみた

SteamでRPG Maker MV(日本語名:RPGツクールMV)を買いました。サマーセールで半額です。バージョンの違うRPG Maker VX Aceなんてのも買ってみましたが、まだプレイしてません。こちらはRGSS(Ruby)が使えるようですね。MVはJavaScriptです。 RPGツクールは昔…

DirectX9 3Dモデルの表示とマテリアル適用

頂点バッファを使って表示する方法もありますが、複雑なモデルを表示するときには3Dモデリングソフトを使ってXファイルを作り、プログラムからそのファイルを読み込むようにすることが一般的です。 まずは、Xファイルを読み込む方法について載せます。Xファ…

C/C++ DirectX9 環境設定のメモ 備忘録

DirectX9のサンプルファイルをよく試すのでその設定方法を簡単に自分用にメモします。環境はVisual Studio 2015 Community Edition,DirectX9 SDK… x86とx64があるが、確認程度ならどちらでも構わないと思います。x86版で設定していきます。 ビルドするときに…

C/C++ DirectX9 頂点シェーダ 座標系 3Dオブジェクトの表示

さて、今回はオブジェクトの表示をしただけです。サンプルプロジェクトを用意し、ビルドしただけです。DirectX9の座標系は、左手座標系です。その他のOpenGLとかでは右手座標系を使っている場合があるようです。環境によって違うということですね。 頂点デー…

Javaアプレットで基本的なシューティングゲームプログラム

Javaアプレットと言っても、Javaのライブラリが利用できるので、いくらでも応用出来ると思います。大雑把にですが、ここまで出来たら想像がつきやすいと思います。 package shooting_game_applet_ver; import java.applet.Applet; import java.awt.Color; im…

VC++ DirectX9 基本的な設定と三次元シーンの構築と描画

まずはDirectXGraphicsの初期化から入る。 // レンダラーオブジェクト Renderer renderer; // レンダラーの初期化 HRESULT hr; hr = renderer.Initialize(hWnd, isFullScreen, CLIENT_WIDTH, CLIENT_HEIGHT); if(FAILED(hr)) { return 0; // 初期化失敗 } Re…

C/C++ WinAPI DirectX9 クライアント領域の計算

DirectXの積み本を消化しようと思って読んでいます。バージョンが9のため、少々古い情報となりますが、このバージョンも未だに現役で使われています。 まずはサンプルコードでビルド出来るかどうかを確認していました。ちょっと端折って書きます。 今回検証…

Javaアプレット シューティングゲーム作成その4

さっき記事を書いたばかりですが、気になって放置出来なかったので、再度やってみました。衝突判定、今度は成功しました。 package shooting_game_applet_ver; import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; import java.aw…

Javaアプレット シューティングゲーム作成その3

ここまで進みました。 package shooting_game_applet_ver; import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Iterator; import java.ut…

Javaアプレット シューティングゲーム作成その2

とりあえずここまで出来ました。細かいところはC言語と同じように作っています。 package shooting_game_applet_ver; import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event…

Javaアプレット シューティングゲームを作成 途中経過

Macで、Javaのデスクトップゲームを作成しようと思いましたが、BufferStrategyを使って、JFrameのウィンドウに図形を描画出来なかったため、アプレットで作成することにしました。アプレットでゲームを作成している人は結構多くて、参考になるサイトも多いで…

DXライブラリ シューティングゲームの一通りの機能

本当はこれにもう少しプラスしてシューティングゲームを完成させるのだろうけど、必要最低限よく使うであろう機能を実装した。 #include <stdio.h> #include <assert.h> #include "DxLib.h" const int PLAYER_MOVE_SPEED = 5; const int BULLET_MOVE_SPEED = 5; const int LAZER</assert.h></stdio.h>…