FC2ブログ
RPG製作講座
こちらのコンテンツはHSP3の基礎命令を覚えながら
HSP(3.0)で RPGを作ってみようという講座です。

HSP初心者の方や、RPGのソースコードを参考にしたい
という方におすすめです。
STEP.1-1
タイトルとウィンドウの変更
新しく扱う命令
  • screen命令
  • title命令
何をするのか?
  • screen命令でHSP3のウィンドウを表示させてみよう。
  • title命令でタイトルバーのタイトルを変更してみよう。
STEP.1-2
フォントサイズの変更とメッセージの表示
新しく扱う命令
  • font命令
  • mes命令
何をするのか?
  • font命令でフォントの設定を変更してみよう。
  • mes命令で画面に文字を表示してみよう。
STEP.1-3
繰り返し処理と描写先の変更
新しく扱う命令
  • repeat命令
  • loop命令
  • pos命令
何をするのか?
  • repeat命令で繰り返しの処理を命令してみよう。
  • loop命令でrepeat 命令の終わりを宣言しよう。
  • pos命令で文字の描写先を指定してみよう。
STEP.1-4
キー入力と待ち時間
新しく扱う命令
  • stick命令
  • wait命令
何をするのか?
  • stick命令でキー入力を所得しよう。
  • wait命令でプログラムを一時中断してみよう。
STEP.1-5
塗りつぶしと色変更と再描写
新しく扱う命令
  • boxf命令
  • color命令」
  • redraw命令
何をするのか?
  • boxf命令で短径を描写してみよう。
  • color命令で色の指定をしてみよう。
  • redraw命令で描写モードを切り替えてみよう。
STEP.1-6
乱数発生と時間・日付の取得
新しく扱う命令
「RANDOMIZE 命令」と「RND命令」と「GETTIME命令」

RANDOMIZE 命令で乱数発生の準備をしよう。
RND命令で実際に乱数を発生させよう。
GETTIME命令で現在の時刻データを取得してみよう。
STEP.2-1
ラベルとサブルーチン
新しく扱う命令
「GOTO命令」と「GOSUB命令」と「RETURN命令」

GOTO命令で指定ラベルにジャンプしてみよう。
GOSUB命令でサブルーチンにジャンプしてみよう。
RETURN命令でサブルーチンから復帰してみよう。
STEP.2-2
配列変数と配列の要素
新しく扱う命令
「DIM命令」と「LENGTH命令」

DIM命令で配列変数を作成してみよう。
LENGTH命令で配列の要素を取得してみよう。
STEP.2-3
画像の読み込みと画像コピー
新しく扱う命令
「BUFFER命令」と「PICLOAD命令」
「GSEL命令」と「GCOPY命令」

BUFFER命令で仮想ウィンドウを作ってみよう。
PICLOAD命令で画像ファイルを読み込んでみよう。
GSEL命令で描写先ウィンドウを切り替えてみよう。
GCOPY命令で画像ファイルをコピーしてみよう。
STEP.2-4
画面のコピーモードと比較処理
新しく扱う命令
「GMODE命令」と「SWITCH命令」と「CASE命令」
「SWBREAK命令」と「SWEND」

GMODE命令でウィンドウのコピーモードの指定をしよう。
SWITCH命令で比較ブロックの開始を宣言しよう。
CASE命令で比較値の指定をしよう。
SWBREAK命令で比較実行の脱出をしてみよう。
SWEND命令で比較ブロックの終了を宣言しよう。
STEP.2-5
テキストデータの読み込みと割り当て
新しく扱う命令
「SDIM命令」と「NOTESEL命令」と「NOTELOAD命令」
「NOTEGET命令」と「GETSTR命令」と「STRSIZE命令」
「INT命令」

SDIM命令で文字列型の配列変数を作成してみよう。
NOTESEL命令で対象バッファを指定しよう。
NOTELOAD命令でバッファにテキストデータを読み込んでみよう。
NOTEGET命令でバッファの指定行を読み込んでみよう。
GETSTR命令でバッファから文字列を読み込んでみよう。
STRSIZE命令で読み出しバイト数を取得してみよう。
INT命令で文字列データを整数値に変換しよう。
STEP.2-6
キャラクターのアニメーションと終了選択
新しく扱う命令
「ONEXIT命令」と「DIALOG命令」

ONEXIT命令で終了時のラベルジャンプ指定を決めよう。
DIALOG命令でダイアログを表示してみよう。
SRPG製作
ただただ勢い任せに作ったSRPG(シミュレーションRPG)の
サンプル・ソースコードや実行ファイル等を公開しています。

ブログを始めるきっかけとなった作品です(随時更新)

HSPでRPG製作「STEP2-4. 画面のコピーモードと比較処理」を公開しました。

HSPRPG製作「STEP2-4. 画面のコピーモードと比較処理」を公開しました。

ステップ2-4.0 画面のコピーモードと比較処理

 STEP2-4は「●」は使わずにキャラクター(?)画像を追加したいと思います。

 注目キーワード
 ・gmode命令
 ・switch命令
 ・case命令
 ・swbreak命令
 ・swend命令


ステップ2-4.1 新規命令の解説

・gmode命令画面のコピーモードを設定します。
コピーモードは1~7までありますが、今回は[ gmode 2 ] を使用しています。
コピーモード指定しないでキャラクターをコピー&描写した場合
このように黒色の部分までコピーされてしまいます。
Nstep2-4_1.JPG

・switch命令比較ブロックを開始します。
今までは[ if key = ** ]と記述していましたが
何回も同じ変数[ key ]を比較する場合などにはswitchが有効です。

・case命令比較値を指定します。
if a = * { }この部分と似た意味合いを持っています。

・swbreak命令比較実行を脱出します。
if a = * { }この部分と似た意味合いを持っています。

・swend命令比較ブロックを終了します。
switch~case-swbreak~swendは一連の命令になっていますので、覚えておいてください。
上記の色のソース部分のように、改行なしでも記述することができます。

こちらはswitch命令の使用例、条件分岐はこのようにして行います
	randomize
a = rnd(8)
mes ""+a+""

// 条件分岐
switch a
case 0 : mes "零" : swbreak
case 1 : mes "壱" : swbreak
case 2 : mes "弐" : swbreak
case 3 : mes "参" : swbreak
default : mes "それ以外" : swbreak
swend

ステップ2-4.2 使用するファイル一覧

・sample2.bmp

※bmpファイルがアップロード出来ないので、pngファイル形式になっています
 PNGファイルを一旦保存してから、BMPファイルに変換して頂くか
 後に記載されているURLから[ step2-4.zip ]をダウンロードしてください


画像[ sample2.bmp ]はこちらを使います
sample2.PNG

保存してソースコードのあるフォルダと同じ場所に移動してください。

ソースコードと画像のまとまったファイルはこちらです。(82.9 KB)
http://pokpokgame.huuryuu.com/rpgmake/step2-4.zip

ステップ2-4.3 ソースコードの入力
	randomize
screen 0, 400, 400
title "step2-4"

buffer 1
picload "sample2.bmp"
gsel 0

font "", 20
x = 5 // X座標
y = 5 // Y座標

// 配列変数[ マップ ]を用意する
dim map, 20, 20
map(0, 0) = 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
map(0, 1) = 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 2) = 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 3) = 1,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1
map(0, 4) = 1,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1
map(0, 5) = 1,0,1,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1
map(0, 6) = 1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1
map(0, 7) = 1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1
map(0, 8) = 1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 9) = 1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 10) = 1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 11) = 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 12) = 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 13) = 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 14) = 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 15) = 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 16) = 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 17) = 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 18) = 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
map(0, 19) = 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

// メインルーチン
*main
redraw 0
wait 5

// 背景を塗りつぶし
color 255, 255, 255
boxf
color 0, 0, 0

gosub *draw_map
gosub *draw_chr
gosub *check_key

redraw 1
goto *main

// マップを描写
*draw_map
mx = 0 // X座標を保持するための変数
my = 0 // Y座標を保持するための変数

repeat length(map)
repeat length2(map)
// マップデータが0の場合地面を描写
if map(mx, my) = 0 {
color 200, 200, 200
pos mx*20, my*20
gcopy 1, 20,0, 20,20
}

// マップデータが1の場合壁を描写
if map(mx, my) = 1 {
color 200, 200, 200
pos mx*20, my*20
gcopy 1, 0,0, 20,20
}
mx += 1
loop
my += 1 : mx = 0
loop
return

// キャラクター描写
*draw_chr
gmode 2
color 0, 0, 0
pos x*20, y*20
gcopy 1, 40,0, 20,20
return

// キー入力チェック
*check_key
stick key, 15
gosub *check_map

// [ move ]フラグが0の時だけ移動可能です
if move = 0 {
// [ key ]という変数の状態を比較する
switch key
// 左方向に進みたい時
case 1
x -= 1
if x < 0 : x = 0
swbreak
// 上方向に進みたい時
case 2
y -= 1
if y < 0 : y = 0
swbreak
// 右方向に進みたい時
case 4
x += 1
if x >= 20 : x = 19
swbreak
// 下方向に進みたい時
case 8
y += 1
if y >= 20 : y = 19
swbreak
swend
}
return

// 壁があるか調べる
*check_map
move = 0 // 動けるか判断するフラグ
switch key
case 1 : a = x - 1 : b = y : swbreak// 左方向
case 2 : a = x : b = y - 1 : swbreak// 上方向
case 4 : a = x + 1 : b = y : swbreak// 右方向
case 8 : a = x : b = y + 1 : swbreak// 下方向
default : a = cx : b = cy : swbreak// その他のキー
swend


// 移動したい座標に壁がある場合は[ move ]に1を代入
if map(a, b) = 1 : move = 1
return

ステップ2-4.4 実行結果

さて、ソースコードは入力できましたか?
入力出来たら、F5キーを押してください

このように表示されましたか?出来ていればOKです
Nstep2-4_2.JPG

貧相なキャラクターがマップ上で動き回ります、RPGぽくなってきた…かな?
まだまだRPGとは遠い存在のような気がしてなりません
しかし、このように少しずつでもソースコードを積み重ねていくのが重要です。
スポンサーサイト



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

tag : HSP ソース 講座 RPG

コメントの投稿

非公開コメント

カテゴリ
検索フォーム
カレンダー
07 | 2019/08 | 09
- - - - 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



月別アーカイブ
リンク
RSSリンクの表示
プロフィール

アクアブルブル

Author:アクアブルブル
HSPを使ってゲームを製作しています。

ランキングに参加しています。


ブログジャンキーにも登録してます。


リンクもご自由にどうぞ。

こちらは掲示板入り口

ユーザータグ

TonyuSystem クォータービュー ワーネバ JavaScript コンテスト RPG 経営シミュレーション パズル 講座 アルゴリズム ニコニコ動画 HSP ふりーむ A* SLG ゲーム Elona ブログ ソース データ構造 フリーソフト HSPコンテスト google シナリオ SRPG TRPG ミスティックシード MAP 

最新コメント
フリーソフトで面白いゲーム まとめサイト
スポンサードリンク


アフィリエイトのリンクシェアで、チャリティ活動



更新確認ツール

FC2カウンタ



googleボットチェッカー

Googleボットチェッカー

msnボットチェッカー

MSNボットチェッカー