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)の
サンプル・ソースコードや実行ファイル等を公開しています。

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

スポンサーサイト

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

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

コメントの投稿

非公開コメント

カテゴリ
検索フォーム
カレンダー
04 | 2019/05 | 06
- - - 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を使ってゲームを製作しています。

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


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


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

こちらは掲示板入り口

ユーザータグ

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

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


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



更新確認ツール

FC2カウンタ



googleボットチェッカー

Googleボットチェッカー

msnボットチェッカー

MSNボットチェッカー



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