Tech
Forums
Jobs
Books
Events
Interviews
Live
More
Learn
Training
Career
Members
Videos
News
Blogs
Contribute
Article
Blog
Video
Ebook
Interview Question
.NET
.NET Core
.NET MAUI
.NET Standard
Active Directory
ADO.NET
Agile Development
AI
AJAX
AlbertAGPT
Alchemy
Alexa Skills
Algorand
Algorithms in C#
Android
Angular
ArcObject
ASP.NET
ASP.NET Core
Augmented Reality
Avalanche
AWS
Azure
Backbonejs
Big Data
BizTalk Server
Blazor
Blockchain
Bootstrap
Bot Framework
Business
Business Intelligence(BI)
C#
C# Corner
C# Strings
C, C++, MFC
Career Advice
Careers and Jobs
Chapters
ChatGPT
Cloud
Coding Best Practices
Cognitive Services
COM Interop
Compact Framework
Copilot
Cortana Development
Cosmos DB
Cryptocurrency
Cryptography
Crystal Reports
CSS
Current Affairs
Custom Controls
Cyber Security
Data Mining
Data Science
Databases & DBA
Databricks
Design Patterns & Practices
DevExpress
DevOps
DirectX
Dynamics CRM
Enterprise Development
Entity Framework
Error Zone
Exception Handling
F#
Files, Directory, IO
Flutter
Games Programming
GDI+
General
Generative AI
GO
Google Cloud
Google Development
Graphics Design
Graphite Studio
Hardware
Hiring and Recruitment
HoloLens
How do I
HTML 5
Infragistics
Internet & Web
Internet of Things
Ionic
Java
Java and .NET
JavaScript
JQuery
JSON
JSP
Knockout
Kotlin
Langchain
Leadership
Learn .NET
Learn iOS Programming
LINQ
Machine Learning
Metaverse
Microsoft 365
Microsoft Fabric
Microsoft Office
Microsoft Phone
Microsoft Teams
Mobile Development
MongoDB
MuleSoft
MySQL
NEAR
NetBeans
Networking
NFT
NoCode LowCode
Node.js
Office Development
OOP/OOD
Open Source
Operating Systems
Oracle
Outsourcing
Philosophy
PHP
Polygon
PostgreSQL
Power Apps
Power Automate
Power BI
Power Pages
Printing in C#
Products
Progress
Progressive Web Apps
Project Management
Public Speaking
Python
Q#
QlikView
Quantum Computing
R
React
React Native
Reports using C#
Robotics & Hardware
RPA
Ruby on Rails
RUST
Salesforce
Security
Servers
ServiceNow
SharePoint
Sharp Economy
SignalR
Smart Devices
Snowflake
Software Architecture/Engineering
Software Testing
Solana
Solidity
Sports
SQL
SQL Server
Startups
Stratis Blockchain
Swift
SyncFusion
Threading
Tools
TypeScript
Unity
UWP
Visual Basic .NET
Visual Studio
Vue.js
WCF
Wearables
Web API
Web Design
Web Development
Web3
Windows
Windows Controls
Windows Forms
Windows PowerShell
Windows Services
Workflow Foundation
WPF
Xamarin
XAML
XML
XNA
XSharp
Register
Login
0
Answer
collision detection xna
Tilo Jung
7y
2.4k
1
Reply
Hello to all,
I made a simple program, like described here:
https://jamessadlier.wordpress.com/tutorials/xna-4-0-collision-detection/
to detect a collision in XNA and to bounce the ball off the block and of the wall.
(I have a "pics" Folder where I have the both pictures: the ball and the block.) But nothing happens. The ball doesn't move at all. What am I doing wrong?
What I have tried:
I tried this code and read related literature
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
Microsoft.Xna.Framework;
using
Microsoft.Xna.Framework.Audio;
using
Microsoft.Xna.Framework.Content;
using
Microsoft.Xna.Framework.GamerServices;
using
Microsoft.Xna.Framework.Graphics;
using
Microsoft.Xna.Framework.Input;
using
Microsoft.Xna.Framework.Media;
namespace
game19Addition
{
// This is the main type for your game
public
class
Game1 : Microsoft.Xna.Framework.Game
{
//this class has a property: GraphicsDevice that represents the actual graphics device on your PC.
//everything you do on screen in your XNA games will run through this object
GraphicsDeviceManager graphics;
//this is the core object to to draw sprites(2d or 3d image inegrated into a large scene)
SpriteBatch spriteBatch;
Texture2D spriteTexture1;
Rectangle ballBounds;
Vector2 ballPosition;
Vector2 ballVelocity;
Texture2D spriteTexture2;
Rectangle blockBounds;
Vector2 blockPosition;
public
Game1()
{
graphics =
new
GraphicsDeviceManager(
this
);
Content.RootDirectory =
"Content"
;
}
/// <summary>
/// Allows the game to perform any initialization it needs to before starting to run.
/// This is where it can query for any required services and load any non-graphic
/// related content. Calling base.Initialize will enumerate through any components
/// and initialize them as well.
/// </summary>
protected
override
void
Initialize()
{
// TODO: Add your initialization logic here
base
.Initialize();
}
/// <summary>
/// LoadContent will be called once per game and is the place to load
/// all of your content.
/// </summary>
protected
override
void
LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch =
new
SpriteBatch(GraphicsDevice);
// TODO: use this.Content to load your game content here
ballPosition =
new
Vector2(
this
.GraphicsDevice.Viewport.Width / 2,
this
.GraphicsDevice.Viewport.Height * 0.25f);
ballVelocity =
new
Vector2(0, 1);
spriteTexture1 = Content.Load<Texture2D>(@
"pics/ball"
);
ballBounds =
new
Rectangle((
int
)(ballPosition.X - spriteTexture1.Width / 2),
(
int
)(ballPosition.Y - spriteTexture1.Height / 2),
spriteTexture1.Width,
spriteTexture1.Height);
blockPosition =
new
Vector2(
this
.GraphicsDevice.Viewport.Width / 2,
this
.GraphicsDevice.Viewport.Height * 0.75f);
spriteTexture2 = Content.Load<Texture2D>(@
"pics/block"
);
//create rectangles based off the size of the textures
blockBounds =
new
Rectangle((
int
)(blockPosition.X - spriteTexture2.Width / 2),
(
int
)(blockPosition.Y - spriteTexture2.Height / 2),
spriteTexture2.Width,
spriteTexture2.Height);
}
/// <summary>
/// UnloadContent will be called once per game and is the place to unload
/// all content.
/// </summary>
protected
override
void
UnloadContent()
{
// TODO: Unload any non ContentManager content here
}
/// <summary>
/// Allows the game to run logic such as updating the world,
/// checking for collisions, gathering input, and playing audio.
/// </summary>
/// <param name="gameTime">Provides a snapshot of timing values.</param>
protected
override
void
Update(GameTime gameTime)
{
// Allows the game to exit
if
(Keyboard.GetState().IsKeyDown(Keys.F12))
this
.Exit();
// TODO: Add your update logic here
if
(ballBounds.Intersects(blockBounds) || !GraphicsDevice.Viewport.Bounds.Contains(ballBounds))
{
ballVelocity = -ballVelocity;
ballPosition += ballVelocity;
}
else
{
ballPosition += ballVelocity;
}
//update boundig boxes
ballBounds.X = (
int
)ballPosition.X;
blockBounds.Y = (
int
)ballPosition.Y;
blockPosition.X = (
int
)blockPosition.X;
blockPosition.Y = (
int
)blockPosition.Y;
base
.Update(gameTime);
}
/// <summary>
/// This is called when the game should draw itself.
/// </summary>
/// <param name="gameTime">Provides a snapshot of timing values.</param>
protected
override
void
Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
spriteBatch.Draw(spriteTexture1, ballPosition, Color.White);
spriteBatch.Draw(spriteTexture2, blockPosition, Color.White);
spriteBatch.End();
base
.Draw(gameTime);
}
}
}
Post
Reset
Cancel
Answers (
0
)
Next Recommended Forum
Open source game development engine
`Instantiate' does not exist in current context.