首页 > 其他分享 >raylib U1S03 - 反弹球

raylib U1S03 - 反弹球

时间:2024-12-28 15:08:12浏览次数:6  
标签:20 img raylib int U1S03 40 WINDOW playerimg 反弹球

#include <raylib.h>
#include<bits/stdc++.h>
using namespace std;
#define WINDOW_WIDTH 800
#define WINDOW_HEIGHT 600
int main() {
	
	//初始化窗口
	InitWindow(WINDOW_WIDTH, WINDOW_HEIGHT,"Test");
	
	SetTargetFPS(60);
	
	//创建一个40*40,透明背景的图片
	Image img=GenImageColor(40,40,BLANK);
	//在图片中绘制一个以(20,20)为圆心,半径为20的红色圆
	ImageDrawCircle(&img,20,20,19,RED);
	
	//注意texture才是最终被画到窗口上的东西,
	Texture texture = LoadTextureFromImage(img);
	
	UnloadImage(img); //不再需要使用img,释放掉
	
	//创建一个玩家的金色传说
	Image playerimg=GenImageColor(40,40,BLANK);
	ImageDrawCircle(&playerimg,20,20,19,GOLD);
	Texture playertexture = LoadTextureFromImage(playerimg);
	UnloadImage(playerimg);
	
	int x=0,y=0;
	int speedx=8,speedy=3;
	//开启程序的主循环
	while (!WindowShouldClose()) {
		if(x+speedx>=WINDOW_WIDTH-40 || x+speedx<=0){
			speedx*=-1;
		}
		if(y+speedy>=WINDOW_HEIGHT-40 || y+speedy<=0){
			speedy*=-1;
		}
		x+=speedx;
		y+=speedy;
		
		int px=GetMouseX();
		int py=GetMouseY();
		
		//绘制帧,这一Part都是放在循环的最后的
		BeginDrawing();//开始绘制
		ClearBackground(WHITE);//重新绘制一些背景。
		DrawTexture(texture,x,y,WHITE);//把咱们的小球元素画上去
		DrawTexture(playertexture,px-20,py-20,WHITE);
		EndDrawing();//结束绘制
	}
	
	//释放texture对象
	UnloadTexture(texture); 
	UnloadTexture(playertexture);
	
	//关闭窗口
	CloseWindow();
	return 0;
}

标签:20,img,raylib,int,U1S03,40,WINDOW,playerimg,反弹球
From: https://www.cnblogs.com/evencai/p/18637518

相关文章

  • raylib U1S02、在窗口上画小圆球
    这篇笔记我们实现在窗口上画上几个小球,然后让小球反弹运动的功能。分成两个部分:第一部分简单说一下基本原理第二部分讲实现代码。不喜欢看原理的同学可以直接跳到第二部分去。原理简单地理解,我们在计算机上看到的所有画面,都是计算机渲染出来的一个个图片,这些图片在屏幕上一......
  • 基于EasyX和Raylib的打字母游戏
    原版代码地址https://codebus.cn/yangw/letters-shooting-game基于Raylib实现时,由于Raylib需要显式设置FPS,getchar这样的调用是不能用的。因此一开始的welcom......
  • 基于EasyX和Raylib的鼠标操作
    EasyX提供的鼠标操作需要结合WindowsAPI使用,比较简陋。官方示例用法是在//https://codebus.cn/yangw/mouse-operation。Raylib可以提供强大的多的鼠标操作。不过......
  • 基于EasyX和Raylib的星空
    基于EasyX//程序名称:星空//编译环境:VisualC++6.0,EasyX_20200902//最后更新:2009-2-22//#include<graphics.h>#include<time.h>#include<conio.h>#define......
  • 基于EasyX和Raylib的字符阵
    字符阵是EasyX的经典样例程序:https://codebus.cn/yangw/character-matrix使用raylib替代easyx.除了常规的API替换,还需要额外调用SwapScreenBuffer().由于Dr......
  • 基于EasyX和Raylib的自由落体小球
    这个简陋的小游戏,在《C和C++游戏趣味编程》第三章,是逐次迭代写成的。这里贴出基于easyx和raylib的各自实现。基于EasyX//根据《C和C++游戏趣味编程》第二章仿......
  • 基于EasyX和Raylib的十字消除
    基于EasyX//根据《C和C++游戏趣味编程》第10章十字消除写出#include<graphics.h>#include<conio.h>//_kbhit()#include<stdio.h>#include<stdlib.h>#inc......
  • 基于EasyX和Raylib的别碰方块
    基于EasyX//根据《C和C++游戏趣味编程》第三章别碰方块写出#include<graphics.h>#include<conio.h>//_kbhit()#include<stdio.h>//检测按下了空格键voi......
  • 基于EasyX和Raylib的推箱子
    基于EasyX//根据《C和C++游戏趣味编程》第九章推箱子写出#include<graphics.h>#include<conio.h>//_kbhit()#include<stdio.h>#include<stdlib.h>//玩......
  • 基于EasyX和Raylib的坚持100秒
    EasyX//根据《C和C++游戏趣味编程》第12章坚持100秒写出#include<graphics.h>#include<conio.h>//_kbhit()#include<stdio.h>#include<stdlib.h>#include......