由于有图片的插入,所以不能调试,大神帮我康康吧!谢谢啦!
#include <graphics.h>
#include <conio.h>
#include<stdio.h>
#include<math.h>
#pragma comment(lib,"Msimg32.lib")
#undef UNICODE
#define length 1000
#define height 1000
#define PAI 3.1415
#define sharkfishnumber 3
typedef struct snode { //鲨鱼鱼儿结构体定义
int lifenumber; //生命
int x; //坐标
int y;
double vx; //速度
double vy;
time_t jzjs;
int sfjs;
struct snode* next;
}SFISH;
HDC current_hdc = NULL, buffer_hdc = NULL;
HDC srcDC = NULL;
HBITMAP bmp;
int CON = 0; IMAGE back, shayufore,shayufore1,fishxz1; SFISH* head1 = NULL, * P = NULL, * Q = NULL;
int main()
{
int i = 0, j = 0; double fishjd;
initgraph(length, height);
for (i = 0; i <= sharkfishnumber - 1; i++) { //鲨鱼列表初始化
P = (SFISH*)malloc(sizeof(SFISH));
if (i == 0) {
P->next = head1;
head1 = P;
head1->x = rand() % 800;
head1->y = rand() % 800;
head1->vx = -15;
head1->vy = 14;
head1->sfjs = 0;
Q = head1;
}
else
{
P->next = NULL;
P->x = rand() % 800;
P->y = rand() % 800;
P->sfjs = 0;
P->vx = 15;
P->vy = 14;
Q->next = P;
Q = P;
}
}
loadimage(&shayufore1, _T("D:\\捕鱼达人背景图.jpg"), length , height);
putimage(0, 0, &shayufore1);
while (1) {
current_hdc = GetDC(GetHWnd());
buffer_hdc = CreateCompatibleDC(NULL);
bmp = CreateCompatibleBitmap(current_hdc, length , height);
SelectObject(buffer_hdc, bmp);
loadimage(&back, _T("D:\\捕鱼达人背景图.jpg"), length , height);
srcDC = GetImageHDC(&back);
TransparentBlt(buffer_hdc, 0, 0, length , height, srcDC, 0, 0, length , height, 0x000000);
for (P = head1; P->next != NULL; P = P->next) { //蓝鲨鱼的显示
fishjd = atan(P->vy / P->vx);
if (fishjd > 0) {
if (P->vx > 0)
fishjd = -(PAI - fishjd);
}
else if (fishjd <= 0) {
if (P->vx > 0) {
fishjd = PAI + fishjd;
}
}
if (j == 0)
loadimage(&shayufore, _T("D:\\shark1.png"), 180, 180);//鲨鱼动作1
if (j == 1)
loadimage(&shayufore, _T("D:\\shark2.png"), 180, 180);//2
if (j == 2)
loadimage(&shayufore, _T("D:\\shark3.png"), 180, 180);//3
if (j == 3)
loadimage(&shayufore, _T("D:\\shark4.png"), 180, 180);//4
rotateimage(&fishxz1, &shayufore, fishjd);
srcDC = GetImageHDC(&fishxz1);
TransparentBlt(buffer_hdc, P->x, P->y, 180, 180, srcDC, 0, 0, 180, 180, 0x000000);
}
BitBlt(current_hdc, 0, 0, length , height, buffer_hdc, 0, 0, SRCCOPY);
j++;
if (j > 3) { //更新位置
for (P = head1; P->next != NULL; P = P->next) {
P->x = P->x + P->vx / 2;
P->y = P->y - P->vy / 2;
if (P->x < -200) {
P->x = -200; P->vx = -P->vx;
}
if (P->x > length) {
P->x = length; P->vx = -P->vx;
}
if (P->y < -200) {
P->y = -200; P->vy = -P->vy;
}
if (P->y > height + 200) {
P->y = height + 200; P->vy = -P->vy;
}
}
j = 0;
}
}
closegraph();
}