C语言小游戏---画面愤怒的小鸟

学习B站 https://www.bilibili.com/video/av34118200?p=41

还没写完,1、撞柱子没死呢 2、没计分呢

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<graphics.h>
#include<conio.h>
#pragma comment(lib,"Winmm.lib")

int width, high; // screen dimention
IMAGE img_bk,img_bird,img_bird_1,img_bar_up,img_bar_up_1,img_bar_down,img_bar_down_1; // define image name
int bird_x, bird_y; // bird position
int bar_x, bar_up_y, bar_down_y; // bar position
int bird_fly_step,bird_down_step; // control step
int score; 

void startup() { // init data
    width = 432;
    high = 675;

    initgraph(width,high);  // draw screen
    // load images
    loadimage(&img_bk,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bk.jpeg");
    loadimage(&img_bird,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bird.jpg");
    loadimage(&img_bird_1,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bird_1.jpg");
    loadimage(&img_bar_up,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bar_up2.gif");
    loadimage(&img_bar_up_1,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bar_up1.gif");
    loadimage(&img_bar_down,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bar_down2.gif");
    loadimage(&img_bar_down_1,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bar_down1.gif");

    // bird position
    bird_x = 100;
    bird_y = 200;
    // bar position
    bar_x = 250;
    bar_up_y = -380;
    bar_down_y = 350;
    // control bird step
    bird_fly_step = 40;
    bird_down_step = 13;

    BeginBatchDraw();
    // play background music - repeat
    mciSendString("open E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\background.mp3 alias bkmusic",NULL,0,NULL);
    mciSendString("play bkmusic repeat", NULL,0,NULL);

    score = 0;
}

void show() { // show windows
    putimage(0,0,&img_bk);     // show background picture
    putimage(bird_x,bird_y,&img_bird_1,NOTSRCERASE); // show bird
    putimage(bird_x,bird_y,&img_bird,SRCINVERT);
    putimage(bar_x,bar_up_y,&img_bar_up_1,NOTSRCERASE); // show bar up
    putimage(bar_x,bar_up_y,&img_bar_up,SRCINVERT);
    putimage(bar_x,bar_down_y,&img_bar_down_1,NOTSRCERASE);  // show bar down
    putimage(bar_x,bar_down_y,&img_bar_down,SRCINVERT);    

    FlushBatchDraw();
}

void updateWithoutInput() {
    if(bird_y<high)  // bird auto go down
        bird_y+=bird_down_step;

    if(bird_x==bar_x) {
        if(bird_y>bar_down_y-140 && bird_y<bar_down_y)
            score++;
        else exit(0);
    }

    if(bar_x>0)  // move bar
        bar_x-=13;
    else {
        bar_x = width;  // new bar

        int randPosition = rand() % (high-50);
        bar_up_y = randPosition - 670 ;
        bar_down_y = randPosition + 70 ;
    }
    Sleep(150);
}

void updateWithInput() {
    char input;
    if(kbhit()) { //runing while user push keyboard
        input = getch();
        if(input == ‘ ‘ && bird_y>20)   // control bird move up
        {
            bird_y = bird_y - bird_fly_step;
            // bird fly with music
            mciSendString("close   jpmusic",NULL,0,NULL);
            mciSendString("open E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\Jump.mp3 alias jpmusic",NULL,0,NULL);
            mciSendString("play jpmusic",NULL,0,NULL);
        }
    }
}

void gameover()
{
    EndBatchDraw(); // end batch picture
    getch();
    closegraph();  // close graph

}
int main() {
    startup(); // init data
    while(1) { // game loop run
        show(); // show windows
        updateWithoutInput(); //update don‘t need user
        updateWithInput(); //update need user
    }
    gameover();
    return 0;
}

原文地址:https://www.cnblogs.com/lely/p/12188222.html

时间: 2024-10-27 02:57:49

C语言小游戏---画面愤怒的小鸟的相关文章

C语言小游戏设计报告

课程设计名称:贪吃蛇小游戏 专业班级:计科15-2 学号:150809229 姓名:XXX 一.设计目标 通过设计,培养学生对电脑的动手能力,使学生巩固<C语言程序设计>课程学习的内容,掌握编写程序的基本方法,强化对其的动手能力,可以独自完成程序的编写. 二.设计内容和要求 设计内容 编写贪吃蛇的小游戏,使其可以成功运行并且操作玩耍. 设计要求 1)源程序要有适当的注释,使程序便于阅读. 2)要有程序运行结果作为依据 三.程序流程 1.编写地图 运用函数,数组编写地图 2.相同的方法把蛇添加进

【C语言探索之旅】 第一部分第八课:第一个C语言小游戏

? 内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型 文

C语言 小游戏之贪吃蛇

还记得非常久曾经听群里人说做贪吃蛇什么的,那时候大一刚学了C语言,认为非常难,根本没什么思路. 前不久群里有些人又在谈论C语言贪吃蛇的事了,看着他们在做,我也打算做一个出来. 如今大三,经过了这一年半的编程,如今认为这个C语言的贪吃蛇还是比較简单的,花的时间不非常多! 我认为主要是思路正确,基本上就米什么大的问题. 如今贴上我的代码和我的详解,希望大家多交流. 首先说下我这个贪吃蛇仅仅是一个简单的,游戏结束有2种可能:一碰墙,二自杀即蛇头碰到蛇身. 如有不好之处,请见谅把. 首先说下我这个贪吃蛇

C语言小游戏开发之贪吃蛇

寒假期间一时兴起,想着用C语言能开发出贪吃蛇小游戏应该是一件不错的事!但C语言学习过程中从来都是字符界面的编程,如何能有"图形化"的效果呢?于是小编就在度娘, 谷歌等网站搜索了一番,发现了一些有用的Win32 API函数,于是小编的心一下子激动了起来,有了这些API函数也许能够实现哟!开始吧! 编程之前小编的构思是这样的,贪吃蛇小游戏应该实现的有: 1.贪吃蛇在不进行控制的条件下应该能够自主前进. 2.玩家可以通过WASD键来控制贪吃蛇的前进方向. 3.运行过程中若贪吃蛇撞击到墙壁或自

C语言小游戏: 2048.c

概要:2048.c是一个C语言编写的2048游戏,本文将详细分析它的源码和实现.C语言是一种经典实用的编程语言,本身也不复杂,但是学会C语言和能够编写实用的程序还是有一道鸿沟的.本文试图通过一个例子展示如何用C语言实现一个简单但有用的程序. 一.程序简介 本文分析的代码是mevdschee在GitHub上的项目2048.c,游戏的规则和安装说明都可以到主页查看,本文不再赘述.顺便一提,这个程序虽然是纯C编写的,但是它适用于Linux终端,因此如果你想要看一下运行效果可能需要一个Linux. 20

【C语言小游戏】 中国象棋

人人对战 [email protected]:~$ cat main.c  //  main.c //  象棋 //  車马相仕帅仕相马車 //  十十十十十十十十十 //  十炮十十十十十炮十 //  兵十兵十兵十兵十兵 //  十十十十十十十十十 //  --楚河-汉界-- //  十十十十十十十十十 //  卒十卒十卒十卒十卒 //  十炮十十十十十炮十 //  十十十十十十十十十 //  車马象士将士象马車 // #include <stdio.h> #include <stdb

c语言小游戏

#include<windows.h> #include<stdio.h> #include<time.h> #include"function.h" LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,UINT wparam,UINT lparam); int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hpre,LPSTR lPstring,int ncmd) {

【C语言小游戏】 贪吃蛇

windows编译运行 源代码: /*这是一个贪吃蛇代码,运行环境VC++6.0(亲测完美运行)*/ /*该程序在dos系统下运行,不需要graphics.h头文件*/ #include <windows.h> #include <stdlib.h> #include <time.h> #include <stdio.h> #include <string.h> #include <conio.h> #define N 21 int 

C语言实现双人控制的战斗小游戏

实现功能 1.双人分别控制小人移动 2.子弹碰撞 3.可改变出弹方向 4.血条实体化 前言 这个游戏是看了知乎一位非常好的老师的专栏后练手写的,(至于是哪位,知乎搜C语言小游戏最牛逼的那位) 有老师系统性的交这些的确规范了许多,我之前自己摸索写的游戏相对它来说规范性是大大的不抵. 我大致是看了一个飞机游戏的代码,学会了实时更新函数与用户输入更新函数,与设置子弹体. 在此基础上我结合我最近学的弹球写出了这个靠风骚走位的双人战斗小游戏.下面是图与具体实现. 0.游戏主体   while(1) {•