自分は最近龍神録プログラミングの館でシューティングの学習をはじめたのですが。
第31章 早苗風☆弾を作ってみようでプロジェクトを開いてプログラムを変えずにデバッグを開始をすると
背景のグラフィックが弾のグラフィックの代わりに出現します。
どのようにプログラムを変えれば正しいグラフィックになりますか?
環境は
OS : Windows 10
コンパイラ : Visual Studio 2015
です。
C言語は在学中の高校で学習しましたがわかるかどうか怪しい所があります。
よろしくお願いします。
龍神録プログラミングの館で勉強中にバグが出てきました。
Re: 龍神録プログラミングの館で勉強中にバグが出てきました。
まずは、今のプログラムを提示することでしょう。質問者さんがどういうコードを書いたのか、ポインタ さんが書きました: どのようにプログラムを変えれば正しいグラフィックになりますか?
回答しようとする側には今のところ全くわかっていません。その状態で、「どのように変えれば」と
言われましても、何とも答えようがありません。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 龍神録プログラミングの館で勉強中にバグが出てきました。
>C言語は在学中の高校で学習しましたがわかるかどうか怪しい所があります。
>第31章 早苗風☆弾を作ってみようでプロジェクトを開いてプログラムを変えずにデバッグを開始
おぬしできるな!すごい。私のVS2008では正常に動きました。DXライブラリのバージョンは新しいですか。
http://csi.nisinippon.com/31.png
>第31章 早苗風☆弾を作ってみようでプロジェクトを開いてプログラムを変えずにデバッグを開始
おぬしできるな!すごい。私のVS2008では正常に動きました。DXライブラリのバージョンは新しいですか。
http://csi.nisinippon.com/31.png
Re: 龍神録プログラミングの館で勉強中にバグが出てきました。
DXライブラリは3.16fをダウンロードしたばかりです。
上記の対応もいたしました。
それと自分もVS2008をダウンロードして同じようにプログラムを変えずにデバックを開始したら
弾が敵の雑魚グラフィックに変わりました。
コードについてはもう少しお待ちください。
上記の対応もいたしました。
それと自分もVS2008をダウンロードして同じようにプログラムを変えずにデバックを開始したら
弾が敵の雑魚グラフィックに変わりました。
コードについてはもう少しお待ちください。
Re: 龍神録プログラミングの館で勉強中にバグが出てきました。
コードは自分で書いたものでなく龍神録プログラミングの館でダウンロードしたもので自分は書き換えていないのです。
自分でこのバグに関係ないと思った部分は書いてませんがこの関数のコードを書いてほしいというときは言ってください。
すぐに書き込みます。
多いと思いますが自分ではこれ以上絞れませんでした。
画像読み込み
敵ボスグラフィック関係
敵ボス関係
ボスの弾幕情報
struct.h
自分でこのバグに関係ないと思った部分は書いてませんがこの関数のコードを書いてほしいというときは言ってください。
すぐに書き込みます。
多いと思いますが自分ではこれ以上絞れませんでした。
画像読み込み
#include "../include/GV.h"
void load(){
img_eff_bom[0] = LoadGraph( "../dat/img/effect/bom0.png" );
img_eff_bom[1] = LoadGraph( "../dat/img/effect/bom1.png" );
img_eff_bom[2] = LoadGraph( "../dat/img/char/body.png" );
img_eff_bom[3] = LoadGraph( "../dat/img/bullet/bom_title0.png" );
img_etc[1] = LoadGraph( "../dat/img/enemy/hp.png" );
img_etc[2] = LoadGraph( "../dat/img/enemy/bossback.png" );
img_etc[5] = LoadGraph( "../dat/img/enemy/bossback3.png" );
img_etc[6] = LoadGraph( "../dat/img/enemy/bossback4.png" );
img_etc[7] = LoadGraph( "../dat/img/enemy/hp_boss.png" );//ボスのHP
LoadDivGraph( "../dat/img/bullet/b0.png" , 5 , 5 , 1 , 76 , 76 , img_bullet[0] ) ;
LoadDivGraph( "../dat/img/bullet/b1.png" , 6 , 6 , 1 , 22 , 22 , img_bullet[1] ) ;
LoadDivGraph( "../dat/img/bullet/b2.png" , 10 , 10 , 1 , 5 , 120 , img_bullet[2] ) ;
LoadDivGraph( "../dat/img/bullet/b3.png" , 5 , 5 , 1 , 19 , 34 , img_bullet[3] ) ;
LoadDivGraph( "../dat/img/bullet/b4.png" , 10 , 10 , 1 , 38 , 38 , img_bullet[4] ) ;
LoadDivGraph( "../dat/img/bullet/b5.png" , 3 , 3 , 1 , 14 , 16 , img_bullet[5] ) ;
LoadDivGraph( "../dat/img/bullet/b6.png" , 3 , 3 , 1 , 14 , 18 , img_bullet[6] ) ;
LoadDivGraph( "../dat/img/bullet/b7.png" , 10 , 10 , 1 , 16 , 16 , img_bullet[7] ) ;
LoadDivGraph( "../dat/img/bullet/b8.png" , 10 , 10 , 1 , 12 , 18 ,img_bullet[8] ) ;
LoadDivGraph( "../dat/img/bullet/b9.png" , 3 , 3 , 1 , 13 , 19 , img_bullet[9] ) ;
LoadDivGraph( "../dat/img/bullet/b10.png" , 8 , 8 , 1 , 8 , 8 , img_bullet[10] ) ;
LoadDivGraph( "../dat/img/enemy/hit_effect.png" , 5 , 5 , 1 , 140 , 140 , img_del_effect ) ;
LoadDivGraph( "../dat/img/char/riria.png" , 8 , 8 , 1 , 100 , 100 , img_dot_riria ) ;
LoadDivGraph( "../dat/img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
LoadDivGraph( "../dat/img/enemy/0.png" , 9 , 3 , 3 , 32 , 32 , img_enemy[0] ) ;
img_cshot[0]=LoadGraph("../dat/img/char/bl_00.png");
img_cshot[1]=LoadGraph("../dat/img/char/bl_01.png");
img_back[0] = LoadGraph("../dat/img/back/0/back0.png");
敵ボスグラフィック関係
#include "../include/GV.h"
extern void graph_back_main();
void graph_bullet(){
int i,j,eff;
double disp_angle;
SetDrawMode( DX_DRAWMODE_BILINEAR ) ;//線形補完描画
for(i=0;i<SHOT_MAX;i++){//敵の弾幕数分ループ
if(shot[i].flag>0){//弾幕データがオンなら
for(j=0;j<SHOT_BULLET_MAX;j++){//その弾幕が持つ弾の最大数分ループ
if(shot[i].bullet[j].flag!=0){//弾データがオンなら
if(shot[i].bullet[j].eff==1)
SetDrawBlendMode( DX_BLENDMODE_ADD, 200+GetRand(55)) ;
if(bullet_info[shot[i].bullet[j].knd].kaiten==1)
disp_angle=PI2*(shot[i].bullet[j].cnt%120)/120;
else
disp_angle=shot[i].bullet[j].angle+PI/2;
DrawRotaGraphF(
shot[i].bullet[j].x+FX+dn.x, shot[i].bullet[j].y+FY+dn.y,
1.0, disp_angle,
img_bullet[shot[i].bullet[j].knd][shot[i].bullet[j].col],TRUE);
if(shot[i].bullet[j].eff==1)
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0) ;
}
}
}
}
//ボス
if(boss_shot.flag>0){//弾幕データがオンなら
for(j=0;j<BOSS_BULLET_MAX;j++){//その弾幕が持つ弾の最大数分ループ
if(boss_shot.bullet[j].flag!=0){//弾データがオンなら
eff=0;
if(boss_shot.bullet[j].kaiten==1)
disp_angle=PI2*(boss_shot.bullet[j].cnt%120)/120;
else
disp_angle=boss_shot.bullet[j].angle+PI/2;
if(boss_shot.bullet[j].eff_detail==1){//風雨にも負けず用弾エフェクト
SetDrawBlendMode( DX_BLENDMODE_ADD, 100+GetRand(155)),eff=1 ;
DrawRotaGraphF(
boss_shot.bullet[j].x+FX+dn.x, boss_shot.bullet[j].y+FY+dn.y,
1.3, disp_angle,
img_bullet[boss_shot.bullet[j].knd][boss_shot.bullet[j].col],TRUE);
}
if(boss_shot.bullet[j].eff==1)
SetDrawBlendMode( DX_BLENDMODE_ADD, 200+GetRand(55)),eff=1 ;
if(boss_shot.bullet[j].eff==2)
SetDrawBlendMode( DX_BLENDMODE_ADD, 255+GetRand(100)),eff=1 ;
DrawRotaGraphF(
boss_shot.bullet[j].x+FX+dn.x, boss_shot.bullet[j].y+FY+dn.y,
1.0, disp_angle,
img_bullet[boss_shot.bullet[j].knd][boss_shot.bullet[j].col],TRUE);
if(eff==1)
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0) ;
}
}
}
SetDrawMode(DX_DRAWMODE_NEAREST);//描画形式を戻す
}
void graph_main(){
if(bright_set.brt!=255)SetDrawBright(bright_set.brt,bright_set.brt,bright_set.brt);
graph_back_main();//背景描画メイン
graph_effect(0);//敵が死ぬエフェクト
if(bright_set.brt!=255)SetDrawBright(255,255,255);
graph_effect(4);//喰らいボムのエフェクト
if(bright_set.brt!=255)SetDrawBright(bright_set.brt,bright_set.brt,bright_set.brt);
graph_boss();
graph_enemy();//敵の描画
graph_cshot();//自機ショットの描画
if(bright_set.brt!=255)SetDrawBright(255,255,255);
graph_ch();//自機の描画
if(bright_set.brt!=255)SetDrawBright(bright_set.brt,bright_set.brt,bright_set.brt);
graph_bullet();//弾の描画
if(bright_set.brt!=255)SetDrawBright(255,255,255);
graph_effect(1);//ボムのエフェクト
graph_effect(2);//ボム線のエフェクト
graph_effect(3);//ボムキャラのエフェクト
graph_board();//ボードの描画
graph_develop();
}
#include "../include/GV.h"
#include "../include/func.h"
#define V0 10.0
//ボスの弾幕を計算する
void boss_shot_calc(){
int i;
boss.endtime--;
if(boss.endtime<0)
boss.hp=0;
for(i=0;i<BOSS_BULLET_MAX;i++){
if(boss_shot.bullet[i].flag>0){
boss_shot.bullet[i].x+=cos(boss_shot.bullet[i].angle)*boss_shot.bullet[i].spd;
boss_shot.bullet[i].y+=sin(boss_shot.bullet[i].angle)*boss_shot.bullet[i].spd;
boss_shot.bullet[i].cnt++;
if(boss_shot.bullet[i].cnt>boss_shot.bullet[i].till){
if(boss_shot.bullet[i].x<-50 || boss_shot.bullet[i].x>FMX+50 ||
boss_shot.bullet[i].y<-50 || boss_shot.bullet[i].y>FMY+50)
boss_shot.bullet[i].flag=0;
}
}
}
boss_shot.cnt++;
}
//弾幕をセット
void enter_boss_shot(){
memset(&boss_shot , 0, sizeof(boss_shot_t));//弾情報初期化
boss_shot.flag=1;
boss.wtime=0;//待機時間0
boss.state=2;//弾幕中状態に
boss.hp=boss.set_hp[boss.knd];//HP設定
boss.hp_max=boss.hp;
}
//ボスをセット
void enter_boss(int num){
if(num==0){//中ボス開始時の時は
memset(enemy,0,sizeof(enemy_t)*ENEMY_MAX);//雑魚敵を消す
memset(shot,0,sizeof(shot_t)*SHOT_MAX);//弾幕を消す
boss.x=FMX/2;//ボスの初期座標
boss.y=-30;
boss.knd=-1;//弾幕の種類
}
boss.flag=1;
boss.hagoromo=0;//扇を広げるかどうかのフラグ
boss.endtime=99*60;//残り時間
boss.state=1;//待機中状態に
boss.cnt=0;
boss.graph_flag=0;//描画フラグを戻す
boss.knd++;
boss.wtime=0;//待機時間を初期化
memset(&boss_shot,0,sizeof(boss_shot_t));//ボスの弾幕情報を初期化
input_phy(60);//60カウントかけて物理的計算で定位置に戻す
}
//ボスの弾幕メイン
void boss_shot_main(){
if(stage_count==boss.appear_count[0] && boss.flag==0)//開始時間なら
enter_boss(0);//開始
if(boss.flag==0)//ボスが登録されて無ければ戻る
return;
calc_boss();
if(boss.phy.flag==1)//物理演算移動オンなら
calc_phy();//物理計算を
if(boss.state==2 && (boss.hp<=0 || boss.endtime<=0)){//弾幕中で体力が無くなったら
se_flag[1]=1;//敵のピチュリ音
se_flag[11]=1;
enter_boss(1);//次の弾幕を登録
}
if(boss.state==1){//弾幕間の待機時間
waitandenter();
}
if(boss.state==2){//弾幕中なら
boss_shot_bullet[boss.knd]();//弾幕関数へ
boss_shot_calc();//弾幕計算
}
boss.cnt++;
}
void boss_shot_bulletH005(){
#define TM005 820
#define RANGE005 100.0
#define LEM005 4
int i,j,k,n,t=boss_shot.cnt%TM005,t2=boss_shot.cnt;
static int sst,bnum;
static double sx,sy,sangle;
//1周期の最初なら
if(t==0){
sst=0;
sx=boss.x;
sy=boss.y-RANGE005;
sangle=PI/5/2+PI/2;
bnum=0;
}
//星を描く
if(sst<=4){
for(i=0;i<2;i++){
sx+=cos(sangle)*LEM005;//座標を計算
sy+=sin(sangle)*LEM005;
//円と交わったら
if((sx-boss.x)*(sx-boss.x)+(sy-boss.y)*(sy-boss.y)>RANGE005*RANGE005){
sangle-=(PI-PI/5);//方向転換
sst++;//ステータス変換
if(sst==5)break;//5なら終わる
}
for(j=0;j<5;j++){//星を5つ描く
if((k=search_boss_shot())!=-1){
boss_shot.bullet[k].flag=1;
boss_shot.bullet[k].state=j;
boss_shot.bullet[k].cnt=0;
boss_shot.bullet[k].spd=0;
boss_shot.bullet[k].knd=10;
boss_shot.bullet[k].col=j;
boss_shot.bullet[k].angle=-PI/2+PI2/5*j;
boss_shot.bullet[k].x=sx;
boss_shot.bullet[k].y=sy;
boss_shot.bullet[k].vx = cos(sangle)*1.4*1.2;
boss_shot.bullet[k].vy = sin(sangle)*1.4;
boss_shot.bullet[k].base_angle[0]=sangle-PI+PI/20*bnum;
}
}
bnum++;
}
se_flag[0]=1;
}
for(i=0;i<BOSS_BULLET_MAX;i++){
if(boss_shot.bullet[i].flag>0){
int cnt=boss_shot.bullet[i].cnt;
//ステータスが10未満なら
if(boss_shot.bullet[i].state<10){
if(t==150){//150なら星を5方向に発射
boss_shot.bullet[i].spd=4;//スピード
boss_shot.bullet[i].cnt=0;//カウンタリセット
boss_shot.bullet[i].state+=10;//ステータス番号変更
}
}
else if(boss_shot.bullet[i].state<20){//10~19なら
if(cnt<=80){//減速
boss_shot.bullet[i].spd-=0.05;
}
if(cnt==100){//セットした基準角度から綺麗な曲線を描く
boss_shot.bullet[i].angle=boss_shot.bullet[i].base_angle[0];
}
if(cnt>=100 && cnt<160){//加速
boss_shot.bullet[i].spd+=0.015;
}
}
}
}
}
//ショットに関する構造体
typedef struct {
//フラグ、種類、カウンタ、どの敵から発射されたかの番号、色
int flag, knd, cnt, num;
//ベース角度、ベーススピード
double base_angle[10], base_spd[1];
bullet_t bullet[BOSS_BULLET_MAX];
}boss_shot_t;
//ボスの情報
typedef struct {
int flag, cnt, knd, wtime, state, endtime, hagoromo, graph_flag;
int hp, hp_max;
int appear_count[2], set_hp[DANMAKU_MAX], back_knd[DANMAKU_MAX];
double x, y, dx, dy, ang, spd;
phy_t phy;
}boss_t;
Re: 龍神録プログラミングの館で勉強中にバグが出てきました。
ファイルが不足してると思う。?。
#include "../include/GV.h"
void load(){
img_board[10] = LoadGraph("../dat/img/board/10.png");
img_board[11] = LoadGraph("../dat/img/board/11.png");
img_board[12] = LoadGraph("../dat/img/board/12.png");
img_board[20] = LoadGraph("../dat/img/board/20.png");
img_chetc[0] = LoadGraph( "../dat/img/char/atari.png" );
img_chetc[2] = LoadGraph( "../dat/img/char/ball.png" );
img_eff_bom[0] = LoadGraph( "../dat/img/effect/bom0.png" );
img_eff_bom[1] = LoadGraph( "../dat/img/effect/bom1.png" );
img_eff_bom[2] = LoadGraph( "../dat/img/char/body.png" );
img_eff_bom[3] = LoadGraph( "../dat/img/bullet/bom_title0.png" );
img_etc[1] = LoadGraph( "../dat/img/enemy/hp.png" );
img_etc[2] = LoadGraph( "../dat/img/enemy/bossback.png" );
img_etc[5] = LoadGraph( "../dat/img/enemy/bossback3.png" );
img_etc[6] = LoadGraph( "../dat/img/enemy/bossback4.png" );
img_etc[7] = LoadGraph( "../dat/img/enemy/hp_boss.png" );//ボスのHP
LoadDivGraph( "../dat/img/bullet/b0.png" , 5 , 5 , 1 , 76 , 76 , img_bullet[0] ) ;
LoadDivGraph( "../dat/img/bullet/b1.png" , 6 , 6 , 1 , 22 , 22 , img_bullet[1] ) ;
LoadDivGraph( "../dat/img/bullet/b2.png" , 10 , 10 , 1 , 5 , 120 , img_bullet[2] ) ;
LoadDivGraph( "../dat/img/bullet/b3.png" , 5 , 5 , 1 , 19 , 34 , img_bullet[3] ) ;
LoadDivGraph( "../dat/img/bullet/b4.png" , 10 , 10 , 1 , 38 , 38 , img_bullet[4] ) ;
LoadDivGraph( "../dat/img/bullet/b5.png" , 3 , 3 , 1 , 14 , 16 , img_bullet[5] ) ;
LoadDivGraph( "../dat/img/bullet/b6.png" , 3 , 3 , 1 , 14 , 18 , img_bullet[6] ) ;
LoadDivGraph( "../dat/img/bullet/b7.png" , 10 , 10 , 1 , 16 , 16 , img_bullet[7] ) ;
LoadDivGraph( "../dat/img/bullet/b8.png" , 10 , 10 , 1 , 12 , 18 ,img_bullet[8] ) ;
LoadDivGraph( "../dat/img/bullet/b9.png" , 3 , 3 , 1 , 13 , 19 , img_bullet[9] ) ;
LoadDivGraph( "../dat/img/bullet/b10.png" , 8 , 8 , 1 , 8 , 8 , img_bullet[10] ) ;
LoadDivGraph( "../dat/img/enemy/hit_effect.png" , 5 , 5 , 1 , 140 , 140 , img_del_effect ) ;
LoadDivGraph( "../dat/img/char/riria.png" , 8 , 8 , 1 , 100 , 100 , img_dot_riria ) ;
LoadDivGraph( "../dat/img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
LoadDivGraph( "../dat/img/enemy/0.png" , 9 , 3 , 3 , 32 , 32 , img_enemy[0] ) ;
img_cshot[0]=LoadGraph("../dat/img/char/bl_00.png");
img_cshot[1]=LoadGraph("../dat/img/char/bl_01.png");
img_back[0] = LoadGraph("../dat/img/back/0/back0.png");
sound_se[0]=LoadSoundMem("../dat/se/enemy_shot.wav");
sound_se[1]=LoadSoundMem("../dat/se/enemy_death.wav");
sound_se[2]=LoadSoundMem("../dat/se/cshot.wav");
sound_se[3]=LoadSoundMem("../dat/se/char_death.wav");
sound_se[8]=LoadSoundMem("../dat/se/hit.wav");
sound_se[11]=LoadSoundMem("../dat/se/boss_change.wav");
sound_se[14]=LoadSoundMem("../dat/se/bom0.wav");
sound_se[15]=LoadSoundMem("../dat/se/bom1.wav");
ChangeVolumeSoundMem( 50, sound_se[0] ) ;
ChangeVolumeSoundMem(128, sound_se[1] ) ;
ChangeVolumeSoundMem(128, sound_se[2] ) ;
ChangeVolumeSoundMem( 80, sound_se[3] ) ;
ChangeVolumeSoundMem( 80, sound_se[8] ) ;
}
//敵の出現情報をエクセルから読み込んで格納する関数
void load_story(){
int n,num,i,fp;
char fname[32]={"../dat/csv/storyH0.csv"};
int input[64];
char inputc[64];
fp = FileRead_open(fname);//ファイル読み込み
if(fp == NULL){
printfDx("read error\n");
return;
}
for(i=0;i<2;i++)//最初の2行読み飛ばす
while(FileRead_getc(fp)!='\n');
n=0 , num=0;
while(1){
for(i=0;i<64;i++){
inputc[i]=input[i]=FileRead_getc(fp);//1文字取得する
if(inputc[i]=='/'){//スラッシュがあれば
while(FileRead_getc(fp)!='\n');//改行までループ
i=-1;//カウンタを最初に戻して
continue;
}
if(input[i]==',' || input[i]=='\n'){//カンマか改行なら
inputc[i]='\0';//そこまでを文字列とし
break;
}
if(input[i]==EOF){//ファイルの終わりなら
goto EXFILE;//終了
}
}
switch(num){
case 0: enemy_order[n].cnt =atoi(inputc);break;
case 1: enemy_order[n].pattern =atoi(inputc);break;
case 2: enemy_order[n].knd =atoi(inputc);break;
case 3: enemy_order[n].x =atof(inputc);break;
case 4: enemy_order[n].y =atof(inputc);break;
case 5: enemy_order[n].sp =atof(inputc);break;
case 6: enemy_order[n].bltime =atoi(inputc);break;
case 7: enemy_order[n].blknd =atoi(inputc);break;
case 8: enemy_order[n].col =atoi(inputc);break;
case 9: enemy_order[n].hp =atoi(inputc);break;
case 10:enemy_order[n].blknd2 =atoi(inputc);break;
case 11:enemy_order[n].wait =atoi(inputc);break;
case 12:enemy_order[n].item_n[0]=atoi(inputc);break;
case 13:enemy_order[n].item_n[1]=atoi(inputc);break;
case 14:enemy_order[n].item_n[2]=atoi(inputc);break;
case 15:enemy_order[n].item_n[3]=atoi(inputc);break;
case 16:enemy_order[n].item_n[4]=atoi(inputc);break;
case 17:enemy_order[n].item_n[5]=atoi(inputc);break;
}
num++;
if(num==18){
num=0;
n++;
}
}
EXFILE:
FileRead_close(fp);
}
Re: 龍神録プログラミングの館で勉強中にバグが出てきました。
プログラムをよく見て配列に格納されている画像を表示すると何故かimg_bullet[10][2]に
b10.pngの分割画像ではなく別ファイルに入れている背景の画像が読み込まれていました。
間違ってデータを読み込むことや、画像データをまた別の画像データで上書きはできますか?
b10.pngの分割画像ではなく別ファイルに入れている背景の画像が読み込まれていました。
間違ってデータを読み込むことや、画像データをまた別の画像データで上書きはできますか?
Re: 龍神録プログラミングの館で勉強中にバグが出てきました。
>間違ってデータを読み込むことや、画像データをまた別の画像データで上書きはできますか?
私も何度もコンピューターを疑ったけれども最終的には”コンピューターが正しい”と気付くのですよね。まず自分を疑った方が早いのですが一度思い込むと自分では分からない。(そういう意味ではここに質問するだけで気が付くこともあるみたいですぐ”自己解決しました!”と言って去る人もたまにおられますから)もういちど勘違いがないか見てみてください。(コンピューターは腹立たしい位”間違って”データを読み込むことや、画像データをまた(勝手に)別の画像データで上書きはしてはくれないですよね)
私も何度もコンピューターを疑ったけれども最終的には”コンピューターが正しい”と気付くのですよね。まず自分を疑った方が早いのですが一度思い込むと自分では分からない。(そういう意味ではここに質問するだけで気が付くこともあるみたいですぐ”自己解決しました!”と言って去る人もたまにおられますから)もういちど勘違いがないか見てみてください。(コンピューターは腹立たしい位”間違って”データを読み込むことや、画像データをまた(勝手に)別の画像データで上書きはしてはくれないですよね)
Re: 龍神録プログラミングの館で勉強中にバグが出てきました。
プロジェクトファイルの解凍からゆっくり丁寧にやったら普通に出来ました。
boxさん
Mathさん
ありがとうございました。Mathさんの最後の言葉を心にとめて学習していこうと思います。
boxさん
Mathさん
ありがとうございました。Mathさんの最後の言葉を心にとめて学習していこうと思います。