第5講 ゲーム基礎その1
第7話 画像を斜めに動かす
第6話の問題の解答例
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
  ChangeWindowMode(true); //ウィンドウモードの切り替え
  SetGraphMode(800, 600, 32); //ウインドウサイズの変更
  if (DxLib_Init() == -1)return(-1);  // DXライブラリ初期化処理

  int h = LoadGraph("画像/00.png"); //画像に付けられた出席番号を箱hに収納
  
int x=0,y=0; //整数型の箱xとyを用意
  SetDrawScreen(DX_SCREEN_BACK); //裏画像を描画対象に加える画面のちらつき対策
  while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {
    
DrawGraph(x, y, h, true); //画像を描く
    x++; //xの値を1つ大きくする
    y++; //yの値を1つ大きくする

  }
  WaitKey();   // キー入力待ち
  DxLib_End();  // DXライブラリ終了処理
  return 0;
}
コピペ用添付ファイル
では動く角度を変えるにはどうしたらよいですか?
解答例は30行下。





















解答例
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
  ChangeWindowMode(true); //ウィンドウモードの切り替え
  SetGraphMode(800, 600, 32); //ウインドウサイズの変更
  if (DxLib_Init() == -1)return(-1);  // DXライブラリ初期化処理

  int h = LoadGraph("画像/00.png"); //画像に付けられた出席番号を箱hに収納
  int x=0,y=0; //整数型の箱iを用意
  SetDrawScreen(DX_SCREEN_BACK); //裏画像を描画対象に加える画面のちらつき対策
  while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {
    DrawGraph(x, y, h, true); //画像を描く
    
x+=2; //xの値を2つ大きくする
    y++; //yの値を1つ大きくする
  }

  WaitKey();   // キー入力待ち
  DxLib_End();  // DXライブラリ終了処理
  return 0;
}

皆さん、実は第6話や第7話のコードがゲームプログラミングの典型なのです。
1秒に60回while文は回転します。
1回のループをフレームといいますから、
1秒60フレームから構成されています。
各フレームでやっていることは、
@ 表画面に画像を描く
A 裏画面に少し移動した画像を描く
B Aが終了した時点で表画面を消す
C 表画面から裏画面に切り替える
D 表画面にさらに少し移動した画像を描く
E Dが終了した時点で裏画面を消す
F 裏画面から表画面に切り替える
ということを繰り返すということです。

基本は映画と同じ原理で画像を動かしています。
違いは、画像を描くにはコンピュータといえど多少時間がかかるので、
自分と反対の画面が画像を描く終わるまで、
待機しているという点です。
映画の場合は、すでに取ってあるフィルムの各フレームを次々に見せることよって、
動いているように見せているわけです。
各フレームは最初から描いてあったものを使用するのに対して
コンピュータゲームの場合には、
現在進行形で描いているわけです。
次話では、ゲームプログラミングの骨格をみてみます。




第6話へ   第8話へ

002

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ