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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0211
くろクォータービュー4未解決


くろ

リンク

2007/2/11(Sun) 18:13:25|NO.5598

また質問します。今ゲームを作ってます。
クォータービューと言うのを使ってみたくてここの掲示板を見て
画面にひし形を出すことは出来ました。
このひし形にキャラを乗っける?にはどうしたら良いんでしょうか?
よろしくお願いします。



この記事に返信する


アキス

リンク

2007/2/12(Mon) 15:18:01|NO.5615

某参考書の第7章に載ってますよ。
持っているって言ってましたよね・・。



KIMU

リンク

2007/3/2(Fri) 00:07:22|NO.5960

何を聞きたいのかはっきりしない・・・
マップ表示とキャラ表示で違うところは無いと思うんだけど・・・


MAX_X=10 :MAX_Y=10 :MAPMAX_X=MAX_X :MAPMAX_Y=MAX_X :BSIZE=32 :BHSIZ=BSIZE/2 :BQSIZ=BSIZE/4 SPOS_X=640/2-BHSIZ :SPOS_Y=480/2-BQSIZ*10+50 :max_x_=MAX_X-1 :max_y_=MAX_Y-1 screen 1,32*5,32*2,8,0,0:cls 4:gsel 1,2:randomize repeat 5: r=100+rnd(100):g=r/2+50+rnd(50):b=50+rnd(80):x=cnt*32 repeat 2:color r*(cnt=0)+20,g,b:p2=cnt*2+x,16+x,32-cnt+x,16+x:p3=24,16,24,32-cnt:gsquare -1,p2,p3:loop:loop color 50,50,50:circle 8,20+32,32-8,28+32,1 :color 50,250,250 :p2=16,32-10,16,10:p3=8+32,14+32,32-8+32,14+32:gsquare -1,p2,p3 color 250,250,50:circle 0+11,4+32,32-11,4+8+32,1 buffer 2,640,480 :cls 2 :color 50,200,250:dim map,MAPMAX_X,MAPMAX_Y repeat MAPMAX_X*MAPMAX_Y :map(cnt\MAPMAX_X,cnt/MAPMAX_Y)=rnd(5) :x=(cnt\MAPMAX_X)*BHSIZ:y=(cnt/MAPMAX_Y)*BHSIZ line x+BHSIZ,y+BHSIZ,x,y+BHSIZ:line x+BHSIZ,y:loop color 0,80,80:boxf 0,SPOS_Y,:gmode 2,BSIZE,BSIZE,255 //裏画面にマップを作成 repeat MAX_Y ycnt=cnt repeat MAX_X pos (cnt-ycnt)*BHSIZ+SPOS_X,(cnt+ycnt)*BQSIZ+SPOS_Y gcopy 1,map(cnt,ycnt)*BSIZE,0 loop loop gsel 0,1:width ,,150,100 repeat redraw 0:gmode 0:pos 0,0 :gcopy 2,0,0,640,480 //マウス座標からmap配列の要素に変換(map要素:me_x、me_y) map_mx=mousex-SPOS_X-BHSIZ ;マウス座標から基準座標を引く(SPOS_X,SPOS_Y がmap(0,0)の位置) map_my=mousey-SPOS_Y-BHSIZ ;-BHSIZはマウスカーソルとマップとの見た目の位置を合わせるため vmpos_x=(map_my+map_mx/2) ;仮想マップ座標_X=Y +(X / 2)-(ブロックサイズ/2) vmpos_y=(map_my-map_mx/2) ;仮想マップ座標_Y=Y -(X / 2) me_x=vmpos_x/BHSIZ ;map要素_X=仮想マップ座標_X /(ブロックサイズ/2) me_y=vmpos_y/BHSIZ ;map要素_Y=仮想マップ座標_Y /(ブロックサイズ/2) mouse_on=1 ;マップ範囲外かのフラグ(mouse_on:0=範囲外 1=範囲内) if me_x<0 {me_x=0 :mouse_on=0}else{if me_x>max_x_ {me_x=max_x_ :mouse_on=0}} if me_y<0 {me_y=0 :mouse_on=0}else{if me_y>max_y_ {me_y=max_y_ :mouse_on=0}} //map要素からマップ上の座標に変換(マップカ−ソル座標:mc_x、mc_y) mc_x=(me_x-me_y)*BHSIZ+SPOS_X ;マップカ−ソル座標_X=(map要素_X - map要素_Y)*(ブロックサイズ/2)+ 基準座標X mc_y=(me_y+me_x)*BQSIZ+SPOS_Y ;マップカ−ソル座標_Y=(map要素_Y + map要素_X)*(ブロックサイズ/4)+ 基準座標Y gmode 5,,,128.0+sin(0.1*cnt)*128 ;マウスカーソル位置のマップを光らせる(マップカ−ソル) pos mc_x,mc_y :gcopy 1,map(me_x,me_y)*BSIZE,0,BSIZE,BSIZE ;マップカ−ソル表示 //マウスが表示マップ内でクリックされたら map要素をキャラmap要素に(キャラmap要素:cex、cey) if ((ky&256)>0) and mouse_on {cex=me_x :cey=me_y} //キャラmap要素からマップ座標に変換(キャラ座標:sc_cx、sc_cy) sc_cx=(cex-cey)*BHSIZ+SPOS_X :sc_cy=(cey+cex)*BQSIZ+SPOS_Y pos sc_cx,sc_cy :gmode 2 :gcopy 1,0,32,32,32 ;キャラ表示 repeat 2:color 255*cnt,255*cnt,255*cnt:pos mousex-10-cnt,mousey-16-cnt:mes ""+(me_x)+","+str(me_y):loop pos me_x*BHSIZ,me_y*BHSIZ :color 200,200,200 :mes "■":pos cex*BHSIZ,cey*BHSIZ :color 250,60,60 :mes "●" color 0,255,0 :boxf vmpos_x-2,vmpos_y-2,vmpos_x+2,vmpos_y+2 redraw 1:await 15 :stick ky,$fff:if ky=128{end}:loop



Needle

リンク

2007/4/8(Sun) 17:56:19|NO.7166

自分が居る座標のパーツを表示した後に、その上に自キャラを表示。マップと動くキャラは別扱い



f

リンク

2007/7/7(Sat) 02:25:06|NO.9294

age



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