【古风歌曲18】《葡京游戏网址笔者的三个道姑朋友》:愿全体情深都不被辜负

初见时红鸾星动,到结尾青灯长伴。

大2时使用C++编写的点水果小游戏

二零一八年从未细听的歌,却是今后的单曲循环。全数无法走到最终的爱情,总有壹方是被辜负的,也无法用对错来计较,因为爱情本未有好坏,唯有爱或不爱!至于末了会分其他痛,作者一向皆感觉那是个别该接受的,因为当时也好的是和睦,再者未有何事是定位的、是唯有开心不曾有愁肠的,毕竟人生不及意10有8九。可很两人在早先时代的你侬作者侬之后,最后都或多或少用交恶为1段情划上句点,是人走茶凉,照旧大家都只爱自个儿?而在那首歌里从未痴怨,没有痛恨,也并未有纠缠,有的只是淡淡,不是不爱您,只是知道您爱的有史以来都不是本身,只是有时还会想着“若你与客人早两心同,何苦惹小编错付了情衷。难道看自个儿失魂落魄,你居然心动?

程序代码总共二个文件,main.cpp Fruit.h Fruit.cpp  代码将要图纸上边给出

或者是笔者太轻巧动情,才会不在意就陷入你眼眸中,“而你撑伞拥笔者入怀中,一字一句誓言多慎重。你眼中柔情千种,如脉脉春风,冰雪也消融。”是拳拳依旧有意?才让承诺轻易就收回,眼底柔情却给了另壹人。

至于讲明,由于过了一年多的时日,有点忘记了,但笔者会尽力回想并即时写出来的。

可重视着的人是舍不得让她受伤的,即使本人满心伤悲,所以原想着“或者笔者应该趁醉装疯,借你怀抱留一抹唇红,再将历史轻歌慢诵,任外人震动。”到最后也只然而是“可笔者只能假笑扮从容,侧耳听那么些重情重义,不去看您熟识脸孔,只默默喝酒,多无动于中。

次第的下载地址http://files.cnblogs.com/magicsoar/clickfruit.rar回顾了亟需的图片素材

有关你给的情伤几寸痛几分,只能故作轻便宽慰着“所幸经年漂浮尘凡中,这颗心已是疮痍满目,怎惧你以薄情为刃,添1道裂缝,又不会痛。”

 

末尾在那如人饮水冷暖自知的心绪纠葛中,只愿“此生如若错在碰到,求三个了结。”

打闹的早先分界面


葡京游戏网址 1

《作者的多少个道姑朋友》 
―以冬

 

《笔者的2个道姑朋友》是游戏剑网3的游戏者故事,道姑是娱乐中一个门派(维夏)专门的职业体型。

 

原型传说:

 

自己是3个孤儿。某天上山采药,突然下起了大雨,心神不属地到屋檐躲雨,看见二个岁数左近的少年。

娱乐中分界面

她身穿白衣,撑着雨伞向本身走来,说是要送我回家。而自己心里已经1阵悸动。他将自个儿拉入伞下,得知他是山上的道士。

葡京游戏网址 2

她将伞赠予笔者,回了巅峰。后来自己采药卖的钱买了盒金桂糕去山顶和她多谢,他打哈哈地收下了。之后小编总去给她送东西,他都会很欢呼雀跃的收下。每一遍他送笔者下山,大家联合骑马一齐打闹。记得自个儿送给他马具时,伏在自笔者耳边说一向会尊敬自身。

 

这天突然下暴雨,作者住的草屋破烂,便决定上山当道姑,长久陪着他。

 

天天都能遇见她,他1如往昔和自个儿嬉戏,但尤其频仍下山了。每一遍回到还会给自家带来栗色妆等。

打闹的了断分界面
葡京游戏网址 3

就像此过了三年,他霍然说要还俗,因为和山下卖胭脂的幼女已私定生平,道长就下山了。小编愣在原地,原来他欣赏的一向就不是本人,只是为着讨好他。

 

快捷听到道长喜宴的音信,作者伪装偶然遇上喜宴。他仍身穿白裳,看到自个儿时愣了一下。她问他自个儿是哪个人,他算得以前在山被欺诈道士的时候的四个道姑朋友。

打闹的代码

自己好想上前问她,本人的应允都能够私自的撤除?也好想在她白皙的侧脸留三个唇印,任外人惊讶,然而小编无法。只可以笑着祝福。

main.cpp

歌词:
是否情字写来都空洞 一笔壹画切磋着奉送
愿意卑微换个笑容 或陷入平庸
而你撑伞拥小编入怀中 一字一板誓言多慎重
您眼中有爱情千种 如脉脉春风 冰雪也消融
新生什么人家喜宴重逢 佳人在侧 烛影摇红
灯火缱绻 映照一双如画颜容
就像豆蔻枝头温柔的旧梦 对面不识
忽然间思绪翻涌 望你白衣如旧
表情几分冰冻 什么人知本身心惶恐
或是小编应当趁醉装疯 借你怀抱留壹抹唇红
再将历史轻歌慢诵 任别人震动
可作者不得不假笑扮从容 侧耳听这个情深义重
不去看您熟练脸孔 只默默吃酒 多无动于中……
若你早与客人两心同 何苦惹作者错付了情衷
难道说看本身失魂穷困 你依旧心动
所幸经年漂浮俗尘中 那颗心已是满目疮痍
怎惧你以薄情为刃 添壹道裂缝 又不会痛
不及将历史埋在风中 以长剑为碑 以霜雪为冢 此生借使错在遇见 求贰个结束

 

#include <stdio.h>
#include <string>
#include <Windows.h>
#include "atlimage.h"
#include "Fruit.h"

#include <vector>
using namespace std;
#define random(x) (rand()%x)
HINSTANCE hInst;
HBITMAP      bg,font,start;
HDC          hdc,mdc,bufdc;
HWND      hWnd;
DWORD      tPre,tNow,tNow2,tCheck;
RECT      rect;    
int score=0;
char cScore[20];

int numberOfBomb=0;
int const fruitLength=11;
bool gameOver=false;
bool gameStart=true;
Fruit* (myFruit[])={ new Fruit("apple.png",15,15,-9,5),
                    new Fruit("apple.png",150,15,7,5),
                    new Fruit("apple.png",40,315,1,5),
                    new Fruit("apple.png",600,215,9,-5),
                    new  Fruit("banana.png",100,125,10,6),
                    new  Fruit("banana.png",320,315,-7,7),
                    new  Fruit("banana.png",320,315,7,-7),
                    new Fruit("strawberry.png",400,415,6,8),
                    new  Fruit("pineapple.png",500,215,-5,9),
                     new  Fruit("pineapple.png",550,115,5,-9),
                     new  Fruit("watermelon.png",650,15,5,-9)};

Fruit* (Bomb[25])={new Fruit("bomb.png"),new Fruit("bomb.png"),new Fruit("bomb.png"),new Fruit("bomb.png"),
                   new Fruit("bomb.png"),new Fruit("bomb.png"),new Fruit("bomb.png"),new Fruit("bomb.png"),
                   new Fruit("bomb.png"),new Fruit("bomb.png"),new Fruit("bomb.png"),new Fruit("bomb.png"),
                   new Fruit("bomb.png"),new Fruit("bomb.png"),new Fruit("bomb.png"),new Fruit("bomb.png"),
                   new Fruit("bomb.png"),new Fruit("bomb.png"),new Fruit("bomb.png"),new Fruit("bomb.png")};

                   ;



int                    AddScore(std::string name);
ATOM                MyRegisterClass(HINSTANCE hInstance);
BOOL                InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
void                MyPaint(HDC hdc);
void                productBomb();
void                initFruit();
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    MSG msg;

    MyRegisterClass(hInstance);


    if (!InitInstance (hInstance, nCmdShow)) 
    {
        return FALSE;
    }


    GetMessage(&msg,NULL,NULL,NULL);             
    while( msg.message!=WM_QUIT )
    {
        if( PeekMessage( &msg, NULL, 0,0 ,PM_REMOVE) )
        {
            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        else
        {

            //if(gameStart==false&&gameOver==false)
            {
                tNow = GetTickCount();

                if(tNow-tPre >= 40)
                    MyPaint(hdc);
                if(gameStart==false&&gameOver==false)
                {
                    tNow2=GetTickCount();
                if(tNow-tCheck>=8000)
                    productBomb();
                }

            }
        }
    }

    return msg.wParam;
}


ATOM MyRegisterClass(HINSTANCE hInstance)
{
    WNDCLASSEX wcex;

    wcex.cbSize = sizeof(WNDCLASSEX); 
    wcex.style            = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = (WNDPROC)WndProc;
    wcex.cbClsExtra        = 0;
    wcex.cbWndExtra        = 0;
    wcex.hInstance        = hInstance;
    wcex.hIcon            = NULL;
    wcex.hCursor        = NULL;
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground    = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName    = NULL;
    wcex.lpszClassName    = "canvas";
    wcex.hIconSm        = NULL;

    return RegisterClassEx(&wcex);
}


BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
    //HBITMAP bmp;
    hInst = hInstance;

    initFruit();

    hWnd = CreateWindow("canvas", "Soar" ,  WS_OVERLAPPEDWINDOW&~WS_THICKFRAME&~WS_MAXIMIZEBOX,
        CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, 0, 0, hInstance, 0);
    if (!hWnd)
    {
        return FALSE;
    }
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);

    hdc = GetDC(hWnd);
    mdc = CreateCompatibleDC(hdc);


    bg = (HBITMAP)LoadImage(NULL,"bg.bmp",IMAGE_BITMAP,800,600,LR_LOADFROMFILE);
    font=(HBITMAP)LoadImage(NULL,"bgOver.bmp",IMAGE_BITMAP,800,600,LR_LOADFROMFILE);
    start=(HBITMAP)LoadImage(NULL,"bgStart.bmp",IMAGE_BITMAP,800,600,LR_LOADFROMFILE);
    GetClientRect(hWnd,&rect);        
    MyPaint(hdc);

    return TRUE;
}

void initFruit()
{

}
void MyPaint(HDC hdc)
{
    COLORREF old_fcolor,old_bcolor;
    int old_tmode;

    if(gameOver==false&&gameStart==false)
    {
    char ss[80]="Score:";
    SelectObject(mdc,bg);
    BitBlt(hdc,0,0,800,600,mdc,0,0,SRCCOPY);
    sprintf(cScore, "%d", score);
    old_fcolor=SetTextColor(hdc,RGB(0,255,0));
    old_bcolor=SetBkColor(hdc,RGB(0,0,0));
    old_tmode=SetBkMode(hdc,TRANSPARENT);
    strcat(ss,cScore);
    TextOut(hdc,10,10,ss,strlen(ss));
    SetTextColor(hdc,old_fcolor);
    SetBkColor(hdc,old_bcolor);
    SetBkMode(hdc,old_tmode);

    for(int i=0;i<fruitLength;i++)
    {
        myFruit[i]->Draw(hdc);
        myFruit[i]->Move(rect);
    }
    for(int i=0;i<numberOfBomb;i++)
    {
        Bomb[i]->Draw(hdc);
        Bomb[i]->Move(rect);
    }


    tPre = GetTickCount();  
    }
    if(gameOver==true)
    {
        char ss[80]="Your Score is ";
        SelectObject(mdc,font);
        BitBlt(hdc,0,0,800,600,mdc,0,0,SRCCOPY);
        sprintf(cScore, "%d", score);
        old_fcolor=SetTextColor(hdc,RGB(255,0,0));
        old_bcolor=SetBkColor(hdc,RGB(0,0,0));
        old_tmode=SetBkMode(hdc,TRANSPARENT);
        strcat(ss,cScore);
        TextOut(hdc,10,10,ss,strlen(ss));
        SetTextColor(hdc,old_fcolor);
        SetBkColor(hdc,old_bcolor);
        SetBkMode(hdc,old_tmode);
    }
    if(gameStart==true)
    {
        SelectObject(mdc,start);
        BitBlt(hdc,0,0,800,600,mdc,0,0,SRCCOPY);
    }
}

void productBomb()
{
    if(numberOfBomb<20)
    {
        Bomb[numberOfBomb]->changePosition(rect);
        numberOfBomb++;
    }
    tCheck = GetTickCount();  
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    WORD mouseX=0;
    WORD mouseY=0;  

    switch (message)
    {
        case WM_KEYDOWN:                    
            if(wParam==VK_ESCAPE)        
                PostQuitMessage(0);
            if(gameOver==true)
            {
                if(wParam==82||wParam==114)
                {
                    numberOfBomb=0;
                    gameOver=false;
                    gameStart=true;
                }
            }
            if(gameStart==true)
            {
                if(wParam==32)
                {
                    gameStart=false;
                    score=0;
                }
            }
            break;

        case WM_DESTROY:                    
            DeleteDC(mdc);
            DeleteObject(bg);
            DeleteObject(font);
            for(int i=0;i<fruitLength;i++)
            {
                myFruit[i]->Destroy();
            }
            for(int i=0;i<20;i++)
            {
                Bomb[i]->Destroy();
            }
            ReleaseDC(hWnd,hdc);
            PostQuitMessage(0);
            break;
        case WM_LBUTTONDOWN:
            mouseX=LOWORD(lParam);
            mouseY=HIWORD(lParam);
            for(int i=0;i<fruitLength;i++)
            {
                if(myFruit[i]->checkClick(mouseX,mouseY))
                {
                    myFruit[i]->changePosition(rect);
                    score+=AddScore(myFruit[i]->GetName());
                }
            }
            for(int i=0;i<numberOfBomb;i++)
            {
                if(Bomb[i]->checkClick(mouseX,mouseY))
                {
                    gameOver=true;
                }
            }
        default:                            
            return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}
int  AddScore(std::string name)
{
    if(name=="apple.png")
    {
        return 100;
    }
    if(name=="banana.png")
    {
        return 50;
    }
    if(name=="strawberry.png")
    {
        return 50;
    }
     if(name=="pineapple.png")
    {
        return 25;
    }

     if(name=="watermelon.png")
    {
        return 10;
    }
     return 0;

}

 

 

Fruit.h

#pragma once
#include <string>
#include "atlimage.h"
using namespace std;
class Fruit
{
private: 
    std::string name;
    int positionX;
    int positionY;
    int speedX;
    int speedY;
    CImage image;
public:
    Fruit(void);
    ~Fruit(void);
    Fruit(CString);
    Fruit(CString name,int positionX,int positionY,int speedX,int speedY);
    void changePosition(RECT rect);
    void Draw(HDC);
    int GetX();
    int GetY();
    string GetName();
    void Move(RECT rect);
    bool checkClick(WORD mouseX,WORD mouseY);
    void Destroy();
};

Fruit.cpp

 

#include "Fruit.h"
#include <string>
using namespace std;
#define random(x) (rand()%x)
Fruit::Fruit(void)
{
}
Fruit::Fruit(CString name,int positionX,int positionY,int speedX,int speedY)
    {
        this->name=name;
        image.Load(name);
        this->positionX=positionX;
        this->positionY=positionY;
        this->speedX=speedX;
        this->speedY=speedY;
    }
Fruit::Fruit(CString name)
{
    this->name=name;
    image.Load(name);
}

Fruit::~Fruit(void)
{
}
void Fruit::changePosition(RECT rect)
    {
        positionX=random(rect.right-image.GetWidth());
        positionY=random(rect.bottom-image.GetHeight());
        speedX=random(28)-14;
        int i=rand()/2;
        int j=sqrt((double)(200-speedX*speedX));
        speedY=(i==1)?j:-j;
    }
void Fruit:: Draw(HDC hdc)
    {
        image.TransparentBlt (hdc,positionX,positionY,image.GetWidth(),image.GetHeight(),RGB(255,255,255));
    }
void Fruit::Move(RECT rect)
    {
        positionX+=speedX;
        positionY+=speedY;
        if(positionX <= 0)
        {
            positionX = 0;
            speedX = -speedX;
        }
        else if(positionX >= rect.right-image.GetWidth())
        {
            positionX = rect.right - image.GetWidth();
            speedX = -speedX;
        }
        if(positionY<=0)
        {
            positionY = 0;
            speedY = -speedY;
        }
        else if(positionY>= rect.bottom-image.GetHeight())
        {
            positionY = rect.bottom - image.GetHeight();
            speedY = -speedY;
        }
    }
void Fruit::Destroy()
{
    image.Destroy();
}
string Fruit::GetName()
{
    return name;
}
bool Fruit::checkClick(WORD mouseX,WORD mouseY)
    {

        if(mouseX>positionX&&mouseX<positionX+image.GetWidth())
        {
            if(mouseY>positionY&&mouseY<positionY+image.GetHeight())
                return true;
        }
        return false;
    }
int Fruit::GetX()
{
    return positionX;
}
int Fruit::GetY()
{
    return positionY;
}