スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ネット上のリソースから読み込む/書き込むプログラムを作ってみた ~その1~

今回、インターネット上のリソース(画像、テキストとか)から
書きこむ/読み込むプログラム
を作ってみました。
(URLを指定して、ファイルを取得)

【余談】
作った背景について。

自分は現在、外部ファイルによって、
ゲーム内の動作を完全に書き換えるシステムを作っています。
(例えるならば、古いが、"ディスクシステム"みたいなもの)

ですが、各PCのローカルに保存した場合
外部ファイル自体を書き換える術が無いので、結局意味が無いのです。
(ゲームのアップデート版を作りました、
     再度外部ファイルをダウンロードして置き換えてください、となる)

それだと面倒臭いので、下記の様に
ネット上のリソースの読み込みが出来たらいいのでは?と思ったのです。
-------------------------------------------------
【1】ゲーム(exeファイル)を起動
【2】起動した際、ネット上にアップロードされた外部ファイルを確認
【3】新しいものに置き換わっていれば、ダウンロード
【4】ゲーム内の動作をリアルタイムで書き換えられる

-------------------------------------------------


で、そんな関数があるのか、と思ったらありました。
InternetReadFile関数です。

※この関数にかかわる機能を使うためには、
下記の様にヘッダのインクルードと、リンクを指定する必要があります。
----------------------------------------
#include <windows.h>
#include <wininet.h>
#pragma comment( lib, "Wininet.lib" )

----------------------------------------

~やり方~
【1】InternetOpen関数で、インターネットのハンドル取得
【2】InternetOpenUrl関数で、指定したURLの接続を確立
【3】InternetReadFile関数で、インターネット上のデータ読み込み
【4】InternetCloseHandle関数で、ハンドルをクローズ



関数に適切な引数を渡して、実行するだけなので特に難しいことはありません。
とりあえず、ネット上の画像を読み込んでローカルに書き出し、
そして、ローカルに書き出した画像を読み込んで表示する
プログラムを作ってみました。
(記事の一番下)

【注意】
エラー処理を入れていないので、下記の様な状況の場合の動作は保証できません。
・超巨大なファイルを読み込もうとした
・読み込み中に、インターネットの接続が切れた

【実行画像】
SampleInternetRead.jpg
※凛々しい なるほど君が表示されたら成功です。

と言うわけで、今後 自作ゲームを公開する際、
一度公開したらアップデートの手間は取らせないようにします

引き続き"ゲームの根本システム作り"を行っていきます。
早くゲーム内部の実装に入りたいですね。
(早く作りたいからと言って、全部グローバル変数の可搬性無しのコードを書いても
   長期的に見て意味が無い行為
になるので、ここは我慢である。)

【ソースコード】Sample_InternetReadFile.txt
スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント
コメントの投稿
管理者にだけ表示を許可する



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。