HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
1125
おぼDishでのシューティングゲームの背景設定について。【改訂】4解決


おぼ

リンク

2017/11/25(Sat) 22:03:44|NO.81907

たびたびすいません。おぼです。

せんだっての質問内容がわかりにくかったように思ったので、改訂版です。

「はじめてつくる スマホアプリプログラミング HSP3dish入門」7章ー6を参考にしています。

すると、背景設定について2つの疑問が出てくるのです。

一つ目は、
http://fast-uploader.com/file/7067169318236/
に書いた通りです。あんまり気にしなくてもいいのだったらいいのですが・・・。

二つ目は、
http://fast-uploader.com/file/7067169355194/
に書きました。こっちのほうが重要かもしれません。背景を設定した画像すべてを表示するにはどうすればよいのでしょうか?ご教授願います。

main.cの以下下の部分が書き換えてあります。

hgio_veew(320,480); //hgio_scale(1.0f,1.0f); hgio_autoscale(0); hgio_uvfix(1);

画像ファイル名は、bg.pngとすると、スクリプトでかかわってくるのは

略 #include "hsp3dish.as" title "Dish Shooting" *init ; 画面の準備 ; celload "title.png",2 celload "chr.png",3 celload "bg.png",4 mmload "explos.wav",0 mmload "inject.wav",1 mmload "sel.wav",2 mmload "cappi08.mp3",3 *gtitle_start mmstop mmplay 2 *gtitle ; スタートボタンチェック ; stick a,$130 if a&128 : end if a&$130 : goto *gamestart redraw 0 ; タイトルの表示 ; gmode 0,320,480 pos 0,0:gcopy 2,0,0 ; スコアの表示 ; color 255,255,255 pos 0,0:mes "SCORE:"+score redraw 1 await 1000/30 goto *gtitle *gamestart ; ゲーム開始時の変数リセット ; mmplay 3 ; 音楽を鳴らす mmplay 2 score = 0 ; スコア sizex=ginfo_sx:sizey=ginfo_sy ; 画面サイズ mx=sizex/2:my=sizey-80 ; 自機のX,Y座標 mxlimit=sizex-48 ; 自機X最大値 mylimit=sizey-48 ; 自機Y最大値 mapx=0:mapy=0 ; 背景表示用の座標 mflag=0 ; 自機の爆発フラグ frame=0 ; フレーム数 ; 自機レーザー用変数リセット ; lmax=4 dim lflag,lmax dim lx,lmax dim ly,lmax ; 敵用変数リセット ; emax=16 etime=0 einter=18 dim eflag,emax : dim etype,emax dim ex,emax : dim ey,emax dim epx,emax : dim epy,emax exlimit = sizex+48 eylimit = sizey+48 ; 敵ミサイル用変数リセット ; amax=16 msrint=2 dim aflag,amax dim ax,amax : dim ay,amax dim apx,amax : dim apy,amax axlimit = exlimit * 100 aylimit = eylimit * 100 *main redraw 0 ; 背景の表示 ; gmode 0,320,480 pos 0,mapy:gcopy 4,0,0 if mapy>0 { gmode 0,320,mapy pos 0,0:gcopy 4,0,960-mapy } mapy=mapy+2:if mapy>960 : mapy=mapy-960 ; それぞれの処理を呼び出す ; stick a,$10f if a&128 : end gosub *my_move gosub *laser_move gosub *enemy_move gosub *missile_move 略
のあたりの設定かなと思ったりしたのですが、わかりませんでした。

いろいろ書きましたが、どんな小さなことでも構いませんので、どうすればよかったのかご教授お願いいたします。



この記事に返信する


しまくろねこ

リンク

2017/11/26(Sun) 09:46:42|NO.81910

こんにちは。

1つ目は正直ちょっとわかりません。
背景画像のようなのであまり気にされなくても良いような気もしますが・・・。

2つ目はスクリプトをみると背景をgcopyで表示しているようですが、背景画像全体を表示させるには代わりにgzoomやcelputで縮小して表示してあげれば良いような気がします。
main.cについてですが、これはAndroid実機でのアプリを端末の画面サイズに合わせて自動拡大縮小してくれる機能でして、特定の画像を自動拡大してくれるわけではありませんので注意が必要です。



おぼ

リンク

2017/11/30(Thu) 23:34:58|NO.81932

回答くださりありがとうございます。おぼです。

gzoomとcelputをためしてみましたが、celputだと画像に変化が見られたのですが、私の書き方が悪いのかうまくいきませんでした。

*main redraw 0 ; 背景の表示 ; gmode 0,320,480 pos 0,mapy:celput 4,0,100,0,0.0 if mapy>0 { gmode 0,320,mapy pos 0,0:gcopy 4,0,960-mapy } mapy=mapy+2:if mapy>960 : mapy=mapy-960 ; それぞれの処理を呼び出す ;

gzoomはこんな感じにしました。

*main redraw 0 ; 背景の表示 ; gmode 0,320,480 pos 0,mapy:gzoom 320,480,4,0,0,0,0,0 if mapy>0 { gmode 0,320,mapy pos 0,0:gcopy 4,0,960-mapy } mapy=mapy+2:if mapy>960 : mapy=mapy-960 ; それぞれの処理を呼び出す

まだまだ慣れていないのでおかしなことを書いてしまっているかもしれませんが、解決策があればご教授願います。



おぼ

リンク

2017/12/2(Sat) 01:32:37|NO.81940

こんばんわ。おぼです。

自己解決しました。

bg.pngのサイズを、320x960 にするとうまく表示できました。

ご意見くださった皆様「しまくろねこさん」ありがとうございました。



おぼ

リンク

2017/12/2(Sat) 02:06:41|NO.81941

すいません。おぼです。

解決したのでチェック入れときます・・・。



ONION software Copyright 1997-2021(c) All rights reserved.